jaguiar Posted September 14, 2009 Report Share Posted September 14, 2009 Olá pessoal. Tenho o sistema em harbour 7.01 e devido a nfe tive que compilar em xharbour. A partir daà começou a dar um erro a cada boleto impresso. Sgue o erro Called from: source\rtl\win32ole.prg => TOLEAUTO:END(0) Called from: IMPBOLL.prg => IMPRIME(398) Alguem tem esta hbole.lib? Grato joão Freire de Aguair joaosiscom@hotmail.com Quote Link to comment Share on other sites More sharing options...
jaguiar Posted September 14, 2009 Author Report Share Posted September 14, 2009 Olá pessoal. Tenho o sistema em harbour 7.01 e devido a nfe tive que compilar em xharbour. A partir daà começou a dar um erro a cada boleto impresso. Sgue o erro Called from: source\rtl\win32ole.prg => TOLEAUTO:END(0) Called from: IMPBOLL.prg => IMPRIME(398) Alguem tem esta hbole.lib? Grato joão Freire de Aguair joaosiscom@hotmail.com Quote Link to comment Share on other sites More sharing options...
Guest n/a Posted September 14, 2009 Report Share Posted September 14, 2009 mostre o codigo p/ q possamos analisar. vendo assim o erro esta na chamada do method END() tente trocar por Ole:RELEASE() ou simplesmente Ole:=nil se postar o codigo poderemos ajudar melhor. xHarbour1.1.0|Fwh9.2|Bcc55|Ribbonbar.lib|Pelles|MySQL|PostgreSQL http://www.redstarsoft.net Quote Link to comment Share on other sites More sharing options...
jaguiar Posted September 16, 2009 Author Report Share Posted September 16, 2009 Olá Lailton. Segue o código amigo... STATIC FUNCTION Imprime(cWILCOND) LOCAL oCBX, oBoleto LOCAL nJURODIA := ARQPARAM->JURODIA LOCAL nVALDESC,nVALTIT,nVALMULT LOCAL cINST01,cINST02,cINST03,cINST04,cINST05 PRIVATE cARQCONF,cARQLOGO,cAGENCIA,cCONTA // Necessrio efetuar download da lib TOleAuto em ftp://ftp.harbour-project.org/contrib/hbole.zip // // Exemplo dado pelo evandro@skillnet.com.br // dllatual:= loadlibrary("Cobrebemx.dll") SET RESOURCES TO dllatual // // SET RESOURCES TO "H:\SISCOM\cobrebem\Cobrebemx.dll" // "C:\cobrebemx\Cobrebemx.dll" // dllatual // SET RESOURCES TO "Cobrebemx.dll" // oCBX := TOleAuto():New("CobreBemX.ContaCorrente") // Monta arquivo de licena de teste para banco 001 carteira 18 cARQCONF := ARQPARBL->ARQCONF oCBX:ArquivoLicenca := "&cDRIVE\SISCOM\CobreBem\&cARQCONF" // TL356_42.conf" // oCBX:ArquivoLicenca := "H:\SISCOM\CobreBem\TL356_42.conf" // Monta dados da conta corrente cAGENCIA := STRZERO(ARQPARBL->AGENCIA,4) IF !EMPTY(ARQPARBL->DIGAGENC) cAGENCIA += "-"+ARQPARBL->DIGAGENC ENDIF oCBX:CodigoAgencia := cAGENCIA // STRZERO(ARQPARBL->AGENCIA,4) // "0200" cAGENCIA := STRZERO(ARQPARBL->AGENCIA,4) + ; IF( !EMPTY(ARQPARBL->DIGAGENC),"-"+ARQPARBL->DIGAGENC," ") cCONTA := TRIM(ARQPARBL->CONTA)+; IF(!EMPTY(ARQPARBL->DIGCONTA),"-"+ARQPARBL->DIGCONTA," " ) oCBX:NumeroContaCorrente := TRIM(cCONTA) //oCBX:NumeroContaCorrente := LEFT(ARQPARBL->CONTA,7) rem 03/07/09 oCBX:LocalPagamento := "Pagável em qualquer banco até o vencimento" // oCBX:CodigoCedente := LEFT(ARQPARBL->CONTA,7) // "0715383" IF ARQPARBL->NNUMERNF // Gera o n. número igual à nota fiscal no Bradesco é assim oCBX:InicioNossoNumero := "0000001" oCBX:FimNossoNumero := "0079999" nNOSSNUM := VAL( STR(TMPCREC->RECSEQ,6)+STR(TMPCREC->RECPARC,1) ) // Adi 22/07/09 oCBX:ProximoNossoNumero := STRZERO(nNOSSNUM-1,5) // adi em 03/07/09 //oCBX:ProximoNossoNumero := STRZERO(TMPCREC->RECSEQ-1,5) rem 22/07/09 ELSE // oCBX:InicioNossoNumero := "00001" rem 03/07/2009 // oCBX:FimNossoNumero := "79999" rem 03/07/2009 oCBX:InicioNossoNumero := STRZERO(ARQPARBL->NNUMEROI,7) // ad 03/07/2009 oCBX:FimNossoNumero := STRZERO(ARQPARBL->NNUMEROF,7) // ad 03/07/2009 oCBX:ProximoNossoNumero := STRZERO(ARQPARBL->NNUMERO-1,5) ENDIF nNOSSNUM := ARQPARBL->NNUMERO oCBX:PadroesBoleto:PadroesBoletoImpresso:CaminhoImagensCodigoBarras := "&cDRIVE\SISCOM\bitmaps\" // DbSelectArea("ARQPARBL") REGLOCK(0,.F.) DbSelectArea("TMPCREC") // cARQLOGO := LTRIM( STR(nCDBANC) ) + ".jpg" oCBX:PadroesBoleto:PadroesBoletoImpresso:ArquivoLogotipo := "&cDRIVE\SISCOM\bitmaps\&cARQLOGO" //oCBX:PadroesBoleto:PadroesBoletoImpresso:ArquivoLogotipo := "&cDRIVE\SISCOM\bitmaps\356.jpg" // MsgAlert("Erro "+oCBX:PadroesBoleto:UltimaMensagemErro) /* Caso queira emitir o boleto no formato Carnet, informe para a propriedade 'LayoutBoleto' do objeto 'IPadroesBoletoImpresso' o valor 'CarnetReciboLateralEsquerda' ou 'CarnetReciboLateralDireita' */ // // oCBX:PadroesBoleto:PadroesBoletoImpresso:LayoutBoleto := "CarnetReciboTopo" //oCBX:PadroesBoleto:PadroesBoletoImpresso:LayoutBoleto := "PadraoReciboTopo" While &cWILCOND // !eof() IF cWILCOND=="!EOF()" .AND. RECBCO # nCDBANC DbSkip() LOOP ENDIF nVALDESC:= 0 nVALTIT := TMPCREC->RECVAL - nVALDESC nVALMULT:= 2.00 IF !EMPTY(ARQPARBL->DIASPROT) // cINST01 := 'NAO DISPENSA MORA. COBRAR MORA DE '+TRIM(ARQPARAM->PMOEDA)+' '+LTRIM( TRANSF( (TMPCREC->RECVAL-nVALDESC) * nJURODIA/100,'@E 99,999.99') ) +' POR DIA DE ATRASO' cINST01 := ' ' cINST02 := 'APOS VENCIMENTO COBRAR MULTA DE '+TRIM(ARQPARAM->PMOEDA)+' '+LTRIM( TRANSF( (TMPCREC->RECVAL-nVALDESC) * 0.02,'@E 99,999.99')) cINST03 := 'PROTESTAR APOS '+LTRIM(ARQPARBL->DIASPROT) + ' DIAS UTEIS DO VENCIMENTO' ELSE cINST01 := ' ' cINST02 := ' ' cINST03 := ' ' ENDIF cINST04 := 'VALORES EXPRESSOS EM REAIS' cINST05 := 'NF '+STR(TMPCREC->RECSEQ,6) // // O bloco do IF abaixo não existe no programa da Distribegi. Verificar se é necessário // IF !ARQPARBL->NNUMERNF .AND. !EMPTY(TMPCREC->RECNNUM) // adi 03/07/09 //IF !EMPTY(TMPCREC->RECNNUM) rem 03/07/09 nNOSSNUM := VAL(TMPCREC->RECNNUM) - 1 oCBX:ProximoNossoNumero := STRZERO(nNOSSNUM,5) ++ nNOSSNUM ENDIF oBoleto := oCBX:DocumentosCobranca:Add() syswait(.5) // Tem no programa exemplo do chegado do forum // Monta dados do sacado cNOMSAC := TRIM(ARQCLI->CLIRAZAO) IF !LEFT(ARQCLI->CLIRAZAO,20) == ARQCLI->CLINOME cNOMSAC += " - "+ARQCLI->CLINOME ENDIF oBoleto:NomeSacado := cNOMSAC oBoleto:EnderecoSacado:= ARQCLI->CLIENDC oBoleto:BairroSacado := ARQCLI->CLIBAIC oBoleto:CidadeSacado := ARQCLI->CLICIDC oBoleto:EstadoSacado := ARQCLI->CLIUFC oBoleto:CEPSacado := ARQCLI->CLICEPC // Monta dados do documento de cobranca oBoleto:PadroesBoleto:InstrucoesCaixa := cINST01 + " " + cINST02 + " " + cINST03 + " " + cINST04 + " " + cINST05 oBoleto:PadroesBoleto:Demonstrativo := cINST01 + " " + cINST02 + " " + cINST03 + " " + cINST04 + " " + 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:= "DM" // 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 // // Pega o nosso numero igual a nf IF ARQPARBL->NNUMERNF // Bradesco //nNOSSNUM := TMPCREC->RECSEQ Rem em 22/07/09 nNOSSNUM := VAL( STR(TMPCREC->RECSEQ,6)+STR(TMPCREC->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(TMPCREC->RECNNUM) DbSelectArea("ARQCREC") GO TMPCREC->NRECNO REGLOCK(0,.F.) REPLACE RECNNUM WITH STRZERO(nNOSSNUM,5) DbUnlock() REPLACE TMPCREC->RECNNUM WITH STRZERO(nNOSSNUM,5) // DbSelectArea("TMPCREC") ++ nNOSSNUM REPLACE ARQPARBL->NNUMERO WITH nNOSSNUM // ta travado ELSE // Retorna o próximo n.número para os parâmetros nNOSSNUM := ARQPARBL->NNUMERO oCBX:ProximoNossoNumero := STRZERO(nNOSSNUM-1,5) ENDIF ENDIF syswait(.5) IF cWILCOND=="!EOF()" DbSkip() ELSE EXIT ENDIF SysRefresh() && aqui verifica numero do boleto 17/04/2007 retirar se der algo errado Enddo IF !"JOAO" $ cUSUARIO oCBX:ImprimeBoletosSemPreview() ELSE oCBX:ImprimeBoletos() ENDIF oCBX:End() // DbSelectArea("ARQPARBL") DbUnlock() // DbSelectArea("TMPCREC") 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.