Jump to content

chamada diadoacbr

Assista tectoy.png

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


AJC_SISTEMAS
Go to solution Solved by memarques,
  • Este tópico foi criado há 841 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • 3 months later...
  • Membros Pro
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...

Link to comment
Share on other sites

  • Solution

* 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 

Edited by memarques
  • Like 1
Link to comment
Share on other sites

  • 1 month later...

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.

  • Like 1

Cleiton Fidelis

Divinópolis MG 

[email protected]

Link to comment
Share on other sites

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.

  • Like 1
Consultor SAC ACBr Rafael Dias
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Desenvolvedor ACBrLib.

 

Link to comment
Share on other sites

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

  • Like 2
Link to comment
Share on other sites

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

Cleiton Fidelis

Divinópolis MG 

[email protected]

Link to comment
Share on other sites

  • Este tópico foi criado há 841 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.