Ir para conteúdo
  • Cadastre-se

dev botao

EXEMPLO DE USO DA DLL ACBR NFE PARA IMPRESSÃO DO DANFE NO VISUAL FOXPRO


Ver Solução Respondido por memarques,
  • Este tópico foi criado há 808 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • 3 meses depois ...
  • Membros Pro
Postado
Em 07/10/2019 at 09:48, AJC_SISTEMAS disse:

Pessoal sou novo no uso dos componentes da ACbr, gostaria de saber como faço para acionar a dll da ACbr para imprimir danfe no visual foxpro.

Antonio

Você conseguiu usar a DLL em VFP? Eu também tenho essa necessidade, se conseguiu, poderia me mostrar como fez? Obrigado...

  • Solution
Postado (editado)

* Comando:NFE_ImprimirPDF;
* Atenção ao arquivo *.ini
* Configura-se nele um monte de coisas
* Inclusive onde será gerado o PDF

* Esse foi um teste que fiz

DECLARE INTEGER NFE_ImprimirPDF IN StdCall_ACBrNFe32.dll 

? NFE_Inicializar("","")
? NFE_ConfigLer (".\1conf.ini")
? NFE_ConfigGravar (".\xconf.ini")
? NFE_CarregarXML ("Arquivo_da_Nota.xml")
? NFE_ImprimirPDF ()
? NFE_Finalizar()

CLEAR DLLS 

Editado por memarques
  • Curtir 2
  • 1 mês depois ...
Postado

Bom dia,

Retomando o assunto:
Como você declarou as variaveis de resposta e tamanho ,para passar como parametros nos Métodos , @memarques ?
Sao passadas como referencia tb, correto ?

DECLARE INTEGER NFE_StatusServico IN ACBrNFe32.DLL STRING @Resposta , INTEGER @iTamanho

//como declarar sResposta e niTamanho aqui ?

? NFE_StatusServico(@sResposta,@niTamanho)

Obrigado.

  • Curtir 2

Cleiton Fidelis

Divinópolis MG 

[email protected]

Postado

sResposta tem que ser uma string já pronto de tamanho predefinido,
Ex.: 

bufferLen := 256
buffer := Space(bufferLen)
? NFE_StatusServico(@buffer, @bufferLen)
? buffer

Se da uma olhada no exemplo em [x]Harbour é bem parecido com VFP.

  • Curtir 2

 

Postado

Caros

Segue um exemplo mais explicações:

Vamos supor que vc tenha renomeado a LIB para GeraDANFe.dll
No caso do VFP, lembre-se de usar a LIB 32 bits StdCall_ACBrNFe32

primeiro, além das declarações (abaixo) vc precisa copiar as DLLs usadas  para o mesmo local (Diretório) da GeraDANFe.dll

libeay32.dll
libexslt.dll
libiconv.dll
libxml2.dll
libxslt.dll

a DLL faz uso do arquivo INI. Na primeira vez que vc executar o programa abaixo ele vai gerar o INI indicado "teste.ini", mas não vai gerar o PDF pq o "path" caminho do PDF não está definido no arquivo INI.

então crie um programa tste.prg contendo:

*******************************************************************
*******************************************************************
********* Gerar PDF a partir de um arquivo de NFe (XML) *********
*******************************************************************
*******************************************************************
DECLARE INTEGER NFE_Inicializar IN GeraDANFe.dll STRING eArqConfig , STRING eChaveCrypt 
DECLARE INTEGER NFE_Finalizar  IN GeraDANFe.dll 
DECLARE INTEGER NFE_CarregarXML IN GeraDANFe.dll STRING eArquivoOuXML 
DECLARE INTEGER NFE_ImprimirPDF IN GeraDANFe.dll 

? NFE_Inicializar (".\teste.ini","")
? NFE_CarregarXML (".\arquivoNFe.xml")
? NFE_ImprimirPDF ()
? NFE_Finalizar   ()

CLEAR DLLS NFE_Inicializar 
CLEAR DLLS NFE_Finalizar  
CLEAR DLLS NFE_CarregarXML 
CLEAR DLLS NFE_ImprimirPDF 
   
RETURN 
*******************************************************************
*******************************************************************
*******************************************************************
*******************************************************************

Notas: 
Cada chamada retorna um número, se 0 (zero) => foi ok, no exemplo coloquei um "?" para ver o resultado
Na primeira vez que vc rodar o programa o arquivo INI será criado mas o PDF não
Edite o arquivo teste.ini criado no exemplo acima e procure a sessão "[DANFE]"
altere o caminho onde o PDF será gerado, por exemplo:
PathPDF=.\ (no caso, o diretório atual)
se não quiser q apareça um tela de status enquanto o PDF estiver sendo gerado mude também:
MostraStatus=0

aconselho a usar sempre o caminho inteiro do arquivo (ex) ... c:\teste\arquivo.ini c:\saidaPDF

Uma vez alterado o INI, da próxima vez que executar ele vai gerar o PDF no mesmo diretório (.\) nesse exemplo

Ate

Mauro

  • Curtir 3
Postado

image.png.4d0b3f3dae12edbe310c9542981d907d.png

Segue a  titulo de ajuda:

DECLARE INTEGER NFE_Inicializar IN ACBrNFe32.dll string,string
DECLARE INTEGER NFE_StatusServico IN ACBrNFe32.DLL STRING @Resposta , INTEGER @Tamanho
 

sResposta = space(1024)
niTamanho = 1024

? NFE_Inicializar("pasta\Xacbrlib.ini","")
? NFE_StatusServico(@sResposta,@niTamanho)

messagebox(sResposta,0,"ACBRlib32 - Visual Foxpro 9")

? NFE_Finalizar()

CLEAR DLLS 


Obrigado

  • Curtir 1

Cleiton Fidelis

Divinópolis MG 

[email protected]

  • 2 anos depois...
Postado
Em 09/03/2020 at 13:18, memarques disse:

Caros

Segue um exemplo mais explicações:

Vamos supor que vc tenha renomeado a LIB para GeraDANFe.dll
No caso do VFP, lembre-se de usar a LIB 32 bits StdCall_ACBrNFe32

primeiro, além das declarações (abaixo) vc precisa copiar as DLLs usadas  para o mesmo local (Diretório) da GeraDANFe.dll

libeay32.dll
libexslt.dll
libiconv.dll
libxml2.dll
libxslt.dll

a DLL faz uso do arquivo INI. Na primeira vez que vc executar o programa abaixo ele vai gerar o INI indicado "teste.ini", mas não vai gerar o PDF pq o "path" caminho do PDF não está definido no arquivo INI.

então crie um programa tste.prg contendo:

*******************************************************************
*******************************************************************
********* Gerar PDF a partir de um arquivo de NFe (XML) *********
*******************************************************************
*******************************************************************
DECLARE INTEGER NFE_Inicializar IN GeraDANFe.dll STRING eArqConfig , STRING eChaveCrypt 
DECLARE INTEGER NFE_Finalizar  IN GeraDANFe.dll 
DECLARE INTEGER NFE_CarregarXML IN GeraDANFe.dll STRING eArquivoOuXML 
DECLARE INTEGER NFE_ImprimirPDF IN GeraDANFe.dll 

? NFE_Inicializar (".\teste.ini","")
? NFE_CarregarXML (".\arquivoNFe.xml")
? NFE_ImprimirPDF ()
? NFE_Finalizar   ()

CLEAR DLLS NFE_Inicializar 
CLEAR DLLS NFE_Finalizar  
CLEAR DLLS NFE_CarregarXML 
CLEAR DLLS NFE_ImprimirPDF 
   
RETURN 
*******************************************************************
*******************************************************************
*******************************************************************
*******************************************************************

Notas: 
Cada chamada retorna um número, se 0 (zero) => foi ok, no exemplo coloquei um "?" para ver o resultado
Na primeira vez que vc rodar o programa o arquivo INI será criado mas o PDF não
Edite o arquivo teste.ini criado no exemplo acima e procure a sessão "[DANFE]"
altere o caminho onde o PDF será gerado, por exemplo:
PathPDF=.\ (no caso, o diretório atual)
se não quiser q apareça um tela de status enquanto o PDF estiver sendo gerado mude também:
MostraStatus=0

aconselho a usar sempre o caminho inteiro do arquivo (ex) ... c:\teste\arquivo.ini c:\saidaPDF

Uma vez alterado o INI, da próxima vez que executar ele vai gerar o PDF no mesmo diretório (.\) nesse exemplo

Ate

Mauro

Olá, onde encontro dlls ?:
 libeay32.dll
libexslt.dll
libiconv.dll
libxml2.dll
libxslt.dll
  • Curtir 1
  • 3 semanas depois ...
  • Este tópico foi criado há 808 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.