joao pinto Posted February 9, 2026 at 07:29 AM Report #635580 Posted February 9, 2026 at 07:29 AM (edited) Bom dia, Tenho um evento no ecrã sPR (Ao Gravar) que pretende gerar PDF do recibo de vencimento e enviar por email automaticamente, usando a função IduToPdf. No módulo BO (Encomendas a Fornecedor) funciona corretamente com: IduToPdf("BO", "BI", "BOCAMPOS", "BICAMPOS", "BOIDUC", "BOIDUL", 93, "Enc. Fornecedor", cDir, "", "NO", .F., "ONETOMANY") No módulo PR (Recibos de Vencimento) dá sempre erro: "A expressão do SELECT do IDU está incorrecta" "Error instantiating cursor object. Cannot find c:\phc202504.dbf" "File is in use" no Local: IDUTOPDF Já tentei várias combinações de parâmetros sem sucesso. Quais são os parâmetros correctos do IduToPdf para gerar PDF de recibos de vencimento (tabela PR)? Especificamente: tabela de detalhe, nomes dos cursores (campos, IDU cabeçalho, IDU linhas), número do IDU e título do template. PHC Evolution Premium, versão 202504. Obrigado Edited February 9, 2026 at 07:30 AM by joao pinto
joao pinto Posted February 9, 2026 at 03:45 PM Author Report #635581 Posted February 9, 2026 at 03:45 PM (edited) Em 09/02/2026 às 07:29, joao pinto disse: Bom dia, Tenho um evento no ecrã sPR (Ao Gravar) que pretende gerar PDF do recibo de vencimento e enviar por email automaticamente, usando a função IduToPdf. No módulo BO (Encomendas a Fornecedor) funciona corretamente com: IduToPdf("BO", "BI", "BOCAMPOS", "BICAMPOS", "BOIDUC", "BOIDUL", 93, "Enc. Fornecedor", cDir, "", "NO", .F., "ONETOMANY") No módulo PR (Recibos de Vencimento) dá sempre erro: "A expressão do SELECT do IDU está incorrecta" "Error instantiating cursor object. Cannot find c:\phc202504.dbf" "File is in use" no Local: IDUTOPDF Já tentei várias combinações de parâmetros sem sucesso. Quais são os parâmetros correctos do IduToPdf para gerar PDF de recibos de vencimento (tabela PR)? Especificamente: tabela de detalhe, nomes dos cursores (campos, IDU cabeçalho, IDU linhas), número do IDU e título do template. PHC Evolution Premium, versão 202504. Obrigado o código que estou a usar é o abaixo, mas não retorna as linhas: #Define MAILITEM 0 If (Pergunta("Pretende enviar o recibo por email?")) Local cTitIDU, cDir, cEmail, nNo, nRecibo, nAno, cStamp, nConn, nConn2 nNo = pr.no nRecibo = pr.recibo nAno = pr.ano cStamp = pr.prstamp * Criar cursor PRLINHAS via SQL nConn2 = SQLSTRINGCONNECT("Driver={SQL Server};Server=SRVSQL\PHC;Database=xxxx;Uid=sa;Pwd=AQUI_A_PASSWORD;") IF nConn2 > 0 SQLEXEC(nConn2, "SELECT r.rem, r.rqtt, r.ervu, r.ere, ISNULL(d.des,'') as des, ISNULL(d.dqtt,0) as dqtt, ISNULL(d.ede,0) as ede FROM (SELECT rem, rqtt, ervu, ere, ROW_NUMBER() OVER(ORDER BY prrestamp) as rn FROM prre (nolock) WHERE prstamp = '" + cStamp + "') r FULL OUTER JOIN (SELECT des, dqtt, ede, ROW_NUMBER() OVER(ORDER BY prdestamp) as rn FROM prde (nolock) WHERE prstamp = '" + cStamp + "') d ON r.rn = d.rn ORDER BY ISNULL(r.rn, d.rn)", "PRLINHAS") SQLDISCONNECT(nConn2) ENDIF SELECT pr cDir = "C:\PHC_RECIBOS\Recibo_" + ALLTRIM(STR(nRecibo)) + "_" + ALLTRIM(STR(nNo)) + ".pdf" IF !DIRECTORY("C:\PHC_RECIBOS") MKDIR("C:\PHC_RECIBOS") ENDIF IF FILE(cDir) DELETE FILE (cDir) ENDIF cTitIDU = "Recibo em Euros " IduToPdf("PR","PRRE","PRCAMPOS","PRRECAMPOS","PRIDUC","PRIDUL",0,cTitIDU,cDir,"","NO",.F.,"ONETOMANY") IF FILE(cDir) cEmail = "" nConn = SQLSTRINGCONNECT("Driver={SQL Server};Server=xxxxxxxxxxxx;") IF nConn > 0 SQLEXEC(nConn, "SELECT pe2.email FROM pe INNER JOIN pe2 ON pe2.pe2stamp = pe.pestamp WHERE pe.no = " + ALLTRIM(STR(nNo)), "crsEmail") IF USED("crsEmail") AND RECCOUNT("crsEmail") > 0 SELECT crsEmail cEmail = ALLTRIM(crsEmail.email) ENDIF SQLDISCONNECT(nConn) ENDIF SELECT pr Assunto acima resolvido, problema agora, Quais os parâmetros correctos para chamar IduToPdf no módulo PR (Recibos de Vencimento)? Estou a usar: IduToPdf("PR","PRRE","PRCAMPOS","PRRECAMPOS","PRIDUC","PRIDUL",0,"Recibo em Euros ",cDir,"","NO",.F.,"ONETOMANY") — gera PDF com cabeçalho completo mas as secções Remunerações e Descontos ficam vazias. O template internamente referencia o cursor PRLINHAS. Como preencher as linhas de detalhe Edited February 9, 2026 at 05:23 PM by joao pinto
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now