-
Total de ítens
6 -
Registro em
-
Última visita
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Posts postados por Silva José
-
-
7 horas atrás, Silva José disse:
Sim, na Classe ACBrBoleto, o Método :New(), resolve mas o o método :SetDiretorioArquivo(eDir, eArq) não, porque precisa de intervenção no arquivo ACBrBoleto32.dll (DllCall), para descobrir a causa do travamento, a alteração esta postada acima!
Aproveitando o Método :ConfigGravar(eArq) também não funciona, e o problema também esta na DLL. Interessante que Log registra que tudo correu sem problemas. kkk . vaje log abaixo
Obs: Testei com e sem a path do arquivo de destino.
22/10/19 08:53:42:519 - TLibBoletoConfig.Gravar: c:\correio\log\Zeka.ini //registra que criou mas não cria o arquivo
22/10/19 08:53:42:532 - TLibBoletoConfig.Gravar - FeitoSugestão: Sugiro verificar na DLL o método :ConfigLer(), Porque ele grava o arquivo corretamente, porém pelo nome deveria apenas ler.
Segue o arquivo alterado, mas precisa ajustar a DLL.
JMSilva
No prg acima coloquei uma instrução para teste e esqueci de retirar, method IncluirTitulos(), hResult := 0.
METHOD IncluirTitulos(eArquivoIni, eTpSaida) CLASS ACBrBoleto local hResult, buffer, bufferLen bufferLen := STR_LEN buffer := Space(bufferLen) hResult := DllCall(::hHandle, DLL_OSAPI, "Boleto_IncluirTitulos", hb_StrToUTF8(eArquivoIni), hb_StrToUTF8(eTpSaida), @buffer, @bufferLen) ::CheckResult(hResult) //hResult := 0 //não existe RETURN ::ProcessResult(buffer, bufferLen)
ok
-
15 horas atrás, Daniel Simoes disse:
Essas modificações são nos fontes em Harbour, correto ?
Se SIM, você consegue corrigir e enviar os arquivos modificados ?
Sim, na Classe ACBrBoleto, o Método :New(), resolve mas o o método :SetDiretorioArquivo(eDir, eArq) não, porque precisa de intervenção no arquivo ACBrBoleto32.dll (DllCall), para descobrir a causa do travamento, a alteração esta postada acima!
Aproveitando o Método :ConfigGravar(eArq) também não funciona, e o problema também esta na DLL. Interessante que Log registra que tudo correu sem problemas. kkk . vaje log abaixo
Obs: Testei com e sem a path do arquivo de destino.
22/10/19 08:53:42:519 - TLibBoletoConfig.Gravar: c:\correio\log\Zeka.ini //registra que criou mas não cria o arquivo
22/10/19 08:53:42:532 - TLibBoletoConfig.Gravar - FeitoSugestão: Sugiro verificar na DLL o método :ConfigLer(), Porque ele grava o arquivo corretamente, porém pelo nome deveria apenas ler.
Segue o arquivo alterado, mas precisa ajustar a DLL.
JMSilva
-
4 horas atrás, José M. S. Junior disse:
Bom dia
Para passar os dados do cedente utilize o método ConfigurarDados, passando o arquivo .ini como parâmetro:
https://acbr.sourceforge.io/ACBrLib/BOLETO_ConfigurarDados.html
Para passar os dados do Título utilize o método:
https://acbr.sourceforge.io/ACBrLib/BOLETO_IncluirTitulos.html
Olá com base nas informações acima, consegui gerar um boleto de teste pela ACBr, porém só foi possível na opção Imprimir, as opções de GerarHTML e GerarPDF estão com problemas, possivelmente causado pelo método SetDiretorioArquivo.
Encontrei dois Bugs, que gostaria que fosse analisado pela equipe técnica ACBr:
Primeiro:
METHOD New(eArqConfig, eChaveCrypt) CLASS ACBrBoleto
local hResult, buffer, bufferLen, oErr::hHandle := DllLoad(ACBrLIB)
if Empty(::hHandle) // = nil
oErr := ErrorNew()
oErr:Severity := ES_ERROR
oErr:Description := "Erro a carregar a dll [" + ACBrLIB + "]"
Throw(oErr)
endif
hResult := DllCall(::hHandle, DLL_OSAPI, "Boleto_Inicializar", hb_StrToUTF8(eArqConfig), hb_StrToUTF8(eChaveCrypt))
::CheckResult(hResult)
RETURN SelfEste erro só acontece se não encontrar a DLL, o retorno da variável e um valor nulo mas não é "nil" , por isso acredito que uso da função EMPTY() se faz necessária ao invés de if ::hHandle = nil
Segundo:
METHOD SetDiretorioArquivo(eDir, eArq) CLASS ACBrBoleto
local hResult, buffer, bufferLen
bufferLen := STR_LEN
buffer := Space(bufferLen)
hResult := DllCall(::hHandle, DLL_OSAPI, "Boleto_SetDiretorioArquivo", @buffer, @bufferLen)
::CheckResult(hResult)
RETURN ::ProcessResult(buffer, bufferLen)Observa-se que este método recebe Diretório e nome do arquivo, eDir e eArq respectivamente, porém é ignorado pelo método causa erro -6 e travamento da aplicação
Acredito que certo seria,
hResult := DllCall(::hHandle, DLL_OSAPI, "Boleto_SetDiretorioArquivo", hb_StrToUTF8(eDir), hb_StrToUTF8(eArq)) //@buffer, @bufferLen)
Desta forma resolve o erro, mas nos métodos GravaHTML() e GravaPDF() TRAVA A APLICAÇÃO, Veja os arquivos anexo.
att
José M. Silva
-
Seguem os arquivos....
-
Olá estou fazendo um teste para gerar uma html de boletos, apresenta a seguinte mensagem:
"|Error /0 Nome do cedente não informado (Quit) |
|Error /0 Nome do cedente não informado "Gostaria de saber como resolver no boleto.ini esta assim:
[Cedente]
Nome=Empresa teste
CNPJCPF=99.999.999/9999-99
Logradouro=Rua Evaristo MendesObrigado JMSilva
Exemplo Harbour Acbrlib Boleto
em ACBrLIB
Postado
Show, Funcionou corretamente!