jfaguiar Posted September 25, 2014 Report Share Posted September 25, 2014 Olá Amigos. Alguém sabe como criar um pdf do boleto com a dll da cobrebemx, sem a utilização da pdfcreator? Estou utilizando xharbour 13.07 que tem aquela opção fantástica de desviar um relatório para pdf. Obrigado Quote Link to comment Share on other sites More sharing options...
wanderso Posted September 25, 2014 Report Share Posted September 25, 2014 FrPrn := frReportManager():new() FrPrn:SetTitle("Dacte") FrPrn:SetWorkArea("ARQCTO", Select("ARQCTO")) FrPrn:SetResyncPair("ARQCTO") FrPrn:LoadFromFile("xDacte.FR3") DirWin := GetWinDir() DirWin := DirWin + "\TEMP" If ! LIsDir(DirWin) LMkDir(DirWin) Endif DirWin := DirWin+"\"+"BOLETO.PDF" FrPrn:SetProperty("PDFExport", "FileName", DirWin) FrPrn:SetProperty("PDFExport", "OpenAfterExport", .f.) FrPrn:SetProperty("PDFExport", "ShowDialog",.f.) FrPrn:PrepareReport() FrPrn:DoExport("PDFExport") Quote Link to comment Share on other sites More sharing options...
jfaguiar Posted September 29, 2014 Author Report Share Posted September 29, 2014 Olá Wanderso. Você poderia dar um exemplo juntos com os comandos da dll? Utilizo esta function para imprimir: STATIC FUNCTION ImprimeBoleto() LOCAL oDlg,oCBX, oBoleto LOCAL nJURODIA := ARQPARAM->JURODIA LOCAL nVALDESC,nVALTIT,nVALMULT LOCAL cINST01,cINST02,cINST03,cINST04,cINST05 PRIVATE cARQCONF,cARQLOGO,cAGENCIA,cCONTA cAGCONTA := LTRIM( STR(TBCCOR->AGENCIA,6) )+"/"+TRIM(TBCCOR->CONTA)+"-"+LEFT(TBCCOR->DIGCONTA,1) // dllatual:= loadlibrary("Cobrebemx.dll") SET RESOURCES TO dllatual // oCBX := TOleAuto():New("CobreBemX.ContaCorrente") // Monta arquivo de licena de teste para banco 001 carteira 18 cARQCONF := TBCCOR->ARQCONF oCBX:ArquivoLicenca := "H:\SISCOM\CobreBem\&cARQCONF" // TL356_42.conf" // Monta dados da conta corrente cAGENCIA := STRZERO(TBCCOR->AGENCIA,4) IF !EMPTY(TBCCOR->DIGAGENC) cAGENCIA += "-"+TBCCOR->DIGAGENC ENDIF oCBX:CodigoAgencia := cAGENCIA // STRZERO(TBCCOR->AGENCIA,4) // "0200" cCONTA := TRIM(TBCCOR->CONTA)+; IF(!EMPTY(TBCCOR->DIGCONTA),"-"+LEFT(TBCCOR->DIGCONTA,1)," " ) oCBX:NumeroContaCorrente := TRIM(cCONTA) oCBX:LocalPagamento := "Pagável em qualquer banco até o vencimento" // IF !"033" $ TBCCOR->BANCO // nCDBCOAG oCBX:CodigoCedente := LEFT(TBCCOR->CONTA,7) // "0715383" ELSE oCBX:CodigoCedente := SUBSTR(TBCCOR->CODEMPR,6,6)+"-"+SUBSTR(TBCCOR->CODEMPR,12,1) // No Santander 32000324553501300016 ENDIF // 12345678901234567890 IF TBCCOR->NNUMERNF // Gera o n. número igual à nota fiscal no Bradesco é assim /* oCBX:InicioNossoNumero := "0000001" oCBX:FimNossoNumero := "0079999" nNOSSNUM := VAL( STR(ARQCREC->RECSEQ,6)+STR(ARQCREC->RECPARC,1) ) // Adi 22/07/09 oCBX:ProximoNossoNumero := STRZERO(nNOSSNUM-1,7) // adi em 03/07/09 */ ELSE // Real oCBX:InicioNossoNumero := STRZERO(TBCCOR->NNUMEROI,7) // ad 03/07/2009 oCBX:FimNossoNumero := STRZERO(TBCCOR->NNUMEROF,7) // ad 03/07/2009 oCBX:ProximoNossoNumero := STRZERO(TBCCOR->NNUMERO-1,5) nNOSSNUM := TBCCOR->NNUMERO ENDIF // Observação: oCBX:PadroesBoleto:PadroesBoletoImpresso:CaminhoImagensCodigoBarras := "&cDRIVE\SISCOM\bitmaps\" // DbSelectArea("TBCCOR") IF !REGLOCK(20,.F.) DbSelectArea("TBFATURA") RETURN Nil ENDIF DbSelectArea("ARQCREC") // lBOLETOOK := .T. IF "356" $ TBCCOR->BANCO // nCDBCOAG // IF nCDBCOAG = 356 cARQLOGO := LEFT(TBCCOR->BANCO,3) + "N.jpg" ELSE cARQLOGO := LEFT(TBCCOR->BANCO,3) + ".jpg" ENDIF // O logo da parte superior é carregado através da seguinte propriedade ArquivoLogotipo abaixo oCBX:PadroesBoleto:PadroesBoletoImpresso:ArquivoLogotipo := "&cDRIVE\SISCOM\bitmaps\&cARQLOGO" // nVALDESC:= 0 nVALTIT := ARQCREC->RECVAL - nVALDESC IF !"033" $ TBCCOR->BANCO nVALMULT := 2.00 ELSE nVALMULT := (ARQCREC->RECVAL-nVALDESC) * nJURODIA/100 ENDIF cINST01 := 'NAO DISPENSA MORA. COBRAR MORA DE '+TRIM(ARQPARAM->PMOEDA)+' '+LTRIM( TRANSF( (ARQCREC->RECVAL-nVALDESC) * nJURODIA/100,'@E 99,999.99') ) +' POR DIA DE ATRASO' cINST02 := 'APOS VENCIMENTO COBRAR MULTA DE '+TRIM(ARQPARAM->PMOEDA)+' '+LTRIM( TRANSF(nVALMULT,'@E 99,999.99')) cINST03 := 'PROTESTAR APOS '+LTRIM(ARQPARAM->PDIAPROT) + ' DIAS UTEIS DO VENCIMENTO' cINST04 := 'VALORES EXPRESSOS EM REAIS' cINST05 := 'NF '+STR(ARQCREC->RECSEQ,6) // oBoleto := oCBX:DocumentosCobranca:Add() syswait(.5) // Tem no programa exemplo do chegado do forum // Monta dados do sacado oBoleto:NomeSacado := ARQCLI->CLIRAZAO oBoleto:EnderecoSacado:= ARQCLI->CLIENDC oBoleto:BairroSacado := ARQCLI->CLIBAIC oBoleto:CidadeSacado := ARQCLI->CLICIDC oBoleto:EstadoSacado := ARQCLI->CLIUFC oBoleto:CEPSacado := ARQCLI->CLICEPC + IF("ARQTLCDX" $ cPATH," - A/C: "+ARQCLI->CLICONT2," ") oBoleto:cnpjsacado := ARQCLI->CLICGC // Monta dados do documento de cobranca oBoleto:PadroesBoleto:InstrucoesCaixa := cINST01 + "<br>" + cINST02 + "<br>" + cINST03 + "<br>" + cINST04 + "<br>" + cINST05 oBoleto:PadroesBoleto:Demonstrativo := cINST01 + "<br>" + cINST02 + "<br>" + cINST03 + "<br>" + cINST04 + "<br>" + cINST05 oBoleto:DataDocumento := DTOC(RECDEMI) oBoleto:DataProcessamento:= DTOC(RECDEMI) oBoleto:DataVencimento := DTOC(RECDVEN) oBoleto:NumeroDocumento := STRZERO(RECSEQ,6)+STR(RECPARC,1) oBoleto:ValorDocumento := nVALTIT oBoleto:TipoDocumentoCobranca:= "DS" // IF TBCCOR->NNUMERNF // Pega o nosso numero igual a nf oBoleto:NossoNumero := STRZERO(RECSEQ,6)+STR(RECPARC,1) ELSE IF !EMPTY(ARQCREC->RECNNUM) nNOSSNUM := VAL(ARQCREC->RECNNUM) - 1 oCBX:ProximoNossoNumero := STRZERO(nNOSSNUM,5) ++ nNOSSNUM ENDIF ENDIF oCBX:calcularDadosBoletos() linhadigi := oBoleto:LinhaDigitavel // pega linha digitável codildigi := oBoleto:CodigoBarras // codigo utilizado para gerar o código de barras // // nNossoCob := oBoleto:NossoNumero && pega nosso número // VARAUX1 := " " IF TBCCOR->NNUMERNF // Bradesco //nNOSSNUM := VAL( STR(ARQCREC->RECSEQ,6)+STR(ARQCREC->RECPARC,1) ) // AD em 22/07/09 //oCBX:ProximoNossoNumero := STRZERO(nNOSSNUM-1,10) // STRZERO(nNOSSNUM,8) Sem o digito conf contato c/Cobrebem ELSE // Real // Pega o nosso numero pelo contador de auto-incremento - Real IF EMPTY(ARQCREC->RECNNUM) DbSelectArea("ARQCREC") IF REGLOCK(100,.F.) REPLACE RECNNUM WITH STRZERO(nNOSSNUM,5) REPLACE RECTITU WITH cAGCONTA IF !RECIMPB == "N" REPLACE RECIMPB WITH "I" ENDIF DbUnlock() ENDIF // ++ nNOSSNUM VARAUX1 := "GRAVOU AGENCIA" REPLACE TBCCOR->NNUMERO WITH nNOSSNUM // ta travado ELSE // Retorna o próximo n.número para os parâmetros nNOSSNUM := TBCCOR->NNUMERO oCBX:ProximoNossoNumero := STRZERO(nNOSSNUM-1,5) ENDIF ENDIF IF EMPTY(VARAUX1) // Se não gravou agencia e conta no bloco anterior DbSelectArea("ARQCREC") IF REGLOCK(20,.F.) REPLACE RECTITU WITH cAGCONTA IF !RECIMPB == "N" REPLACE RECIMPB WITH "I" ENDIF DbUnlock() ENDIF ENDIF SysRefresh() // oCBX:ImprimeBoletosSemPreview() TBCCOR->( DbUnlock() ) RETURN( NIL ) *********************************************************************************************** Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.