Jump to content
Fivewin Brasil

ACBRLIB ou melhor ACBRDLL


Jorge Andrade

Recommended Posts

As rotinas são as das DLLs correspondentes. Não faço nada de diferente. Se eu só imprimo SAT não dá erro. Se eu só imprimo NFe não dá erro. Mas se eu imprimo um e depois vou imprimir o outro dá erro -10 retorno do comando e não imprime.

Segue:

SAT

METHOD ImprimirExtratoVenda(eArqXMLVenda, eNomeImpressora) CLASS ACBrSat
    local hResult
    eNomeImpressora := if(eNomeImpressora=nil, "", eNomeImpressora)
    hResult := DllCall(::hHandle, DLL_STDCALL, "SAT_ImprimirExtratoVenda", hb_StrToUTF8(eArqXMLVenda), hb_StrToUTF8(eNomeImpressora))
    ::CheckResult(hResult)
    RETURN nil

NFE

METHOD Imprimir(cImpressora, nNumCopias, cProtocolo, bMostrarPreview, cMarcaDagua, bViaConsumidor, bSimplificado) CLASS ACBrNFe
    local hResult
    cImpressora     := if(cImpressora=nil, "", cImpressora)
    nNumCopias      := if(nNumCopias=nil, 1, nNumCopias)
    cProtocolo      := if(cProtocolo=nil, "", cProtocolo)
    bMostrarPreview := if(bMostrarPreview=nil, "True", bMostrarPreview)
    cMarcaDagua     := if(cMarcaDagua=nil, "", cMarcaDagua)
    bViaConsumidor  := if(bViaConsumidor=nil, "", bViaConsumidor)
    bSimplificado   := if(bSimplificado=nil, "", bSimplificado)
    hResult := DllCall(::hHandle, DLL_STDCALL, "NFE_Imprimir", hb_StrToUTF8(cImpressora), nNumCopias, hb_StrToUTF8(cProtocolo), hb_StrToUTF8(bMostrarPreview), hb_StrToUTF8(cMarcaDagua), hb_StrToUTF8(bViaConsumidor), hb_StrToUTF8(bSimplificado))
    ::CheckResult(hResult)
    RETURN nil

 

Link to comment
Share on other sites

2 horas atrás, oribeiro disse:

As rotinas são as das DLLs correspondentes. Não faço nada de diferente. Se eu só imprimo SAT não dá erro. Se eu só imprimo NFe não dá erro. Mas se eu imprimo um e depois vou imprimir o outro dá erro -10 retorno do comando e não imprime.

Segue:

SAT


METHOD ImprimirExtratoVenda(eArqXMLVenda, eNomeImpressora) CLASS ACBrSat
    local hResult
    eNomeImpressora := if(eNomeImpressora=nil, "", eNomeImpressora)
    hResult := DllCall(::hHandle, DLL_STDCALL, "SAT_ImprimirExtratoVenda", hb_StrToUTF8(eArqXMLVenda), hb_StrToUTF8(eNomeImpressora))
    ::CheckResult(hResult)
    RETURN nil

NFE


METHOD Imprimir(cImpressora, nNumCopias, cProtocolo, bMostrarPreview, cMarcaDagua, bViaConsumidor, bSimplificado) CLASS ACBrNFe
    local hResult
    cImpressora     := if(cImpressora=nil, "", cImpressora)
    nNumCopias      := if(nNumCopias=nil, 1, nNumCopias)
    cProtocolo      := if(cProtocolo=nil, "", cProtocolo)
    bMostrarPreview := if(bMostrarPreview=nil, "True", bMostrarPreview)
    cMarcaDagua     := if(cMarcaDagua=nil, "", cMarcaDagua)
    bViaConsumidor  := if(bViaConsumidor=nil, "", bViaConsumidor)
    bSimplificado   := if(bSimplificado=nil, "", bSimplificado)
    hResult := DllCall(::hHandle, DLL_STDCALL, "NFE_Imprimir", hb_StrToUTF8(cImpressora), nNumCopias, hb_StrToUTF8(cProtocolo), hb_StrToUTF8(bMostrarPreview), hb_StrToUTF8(cMarcaDagua), hb_StrToUTF8(bViaConsumidor), hb_StrToUTF8(bSimplificado))
    ::CheckResult(hResult)
    RETURN nil

Pitaco: Experimente limpar a mémoria com o comando do ACBRde limpar mémoria, porém, acredito que vc terá que recarregar o INI, ou utilizar  DLL direto pra ver se o erro, persiste fazendo o mesmo processo,  limpar memória, tentar imprimir novamente ou recarregar o INI e tentar novamente.

Complementando, tente usar isso: DllCall( "ACBrNFe32.dll",  "DC_CALL_STD" , "LimparLista")

 

Link to comment
Share on other sites

3 horas atrás, oribeiro disse:

Obrigado. Qual é a sua sugestão? 

Se possível, me aceite no Skype

Oscar não recebi o seu pedido no skype. Outra coisa, vc deve usar o:

NFE_LimparLista

 

Método usado para limpar a lista de notas no componente ACBrNFe.

 

Comando: NFE_LimparLista;

RETORNO

Valor

Descrição

0

Indica que o método foi inicializada corretamente.

-1

Indica que a biblioteca não foi inicializada

-10

Indica que houve erro ao limpar a lista.

Link to comment
Share on other sites

  • 2 weeks later...
8 horas atrás, sygecom disse:

Pessoal,

Alguem sabe se já tem NFSe no ACBRLIB / DLL ?

Lá no fórum esse assunto está em alta. Tem vários programadores usando e testando. Acho que em breve teremos uma LIB dessa função. Se você compilar os fontes acho que já dá para usar.

Link to comment
Share on other sites

  • 3 weeks later...

Pessoal,

Não consigo imprimir NFe e SAT dentro do mesmo programa usando as DLL.

Não sei se é um problema local ou se é na DLL.

É possível vocês testarem aí e me dizer se o problema acontece aí também?

Se possível, compilem o ACBrTest.prg no seu Fivewin para xHarbour e veja se consegue imprimir a NFe e o SAT sem fechar o programa.

Coloquem na mesma pasta o ACBrNFe32.dll e o ACBrS?AT32.dll.

Obrigado.

#include 'FIVEWIN.CH'
#define DLL_CDECL   0x08
#define DLL_STDCALL 0x20
#define DLL_SYSTEM  0x04
#define STR_LEN     256

function Main()
   local oWnd
   define window oWnd from 5,5 to 30,85 title "ACBrLib Teste"
   @ 3,10 BUTTON "Imprime NF-e" size 100,50 OF oWnd ACTION ImprimirNFE()
   @ 3,40 BUTTON "Imprime SAT"  size 100,50 OF oWnd ACTION ImprimirSAT()
   set message of oWnd to "Teste ACBrLib" date time noinset
   activate window oWnd centered
return nil

static function ImprimirNFE(eArquivoOuXml, cImpressora, nNumCopias, cProtocolo, bMostrarPreview, cMarcaDagua, bViaConsumidor, bSimplificado)
    local hResult, bufferLen, buffer, oErr
    local oDll := DllLoad( 'ACBrNFe32.dll' )
    eArquivoOuXml   := if(eArquivoOuXml=nil, "acbrnfe.xml", eArquivoOuXml)
    cImpressora     := if(cImpressora=nil, "", cImpressora)
    nNumCopias      := if(nNumCopias=nil, 1, nNumCopias)
    cProtocolo      := if(cProtocolo=nil, "", cProtocolo)
    bMostrarPreview := if(bMostrarPreview=nil, "True", bMostrarPreview)
    cMarcaDagua     := if(cMarcaDagua=nil, "", cMarcaDagua)
    bViaConsumidor  := if(bViaConsumidor=nil, "", bViaConsumidor)
    bSimplificado   := if(bSimplificado=nil, "", bSimplificado)
    hResult := DllCall(oDll, DLL_STDCALL, "NFE_Inicializar", hb_StrToUTF8("ACBrLib.Ini"), hb_StrToUTF8(""))
    hResult := DllCall(oDll, DLL_STDCALL, "NFE_CarregarXML", hb_StrToUTF8(eArquivoOuXml))
    hResult := DllCall(oDll, DLL_STDCALL, "NFE_Imprimir", hb_StrToUTF8(cImpressora), nNumCopias, hb_StrToUTF8(cProtocolo), hb_StrToUTF8(bMostrarPreview), hb_StrToUTF8(cMarcaDagua), hb_StrToUTF8(bViaConsumidor), hb_StrToUTF8(bSimplificado))
    if !Empty(hResult)
       bufferLen := STR_LEN
       buffer    := Space(bufferLen)
       oErr := DllCall(oDll, DLL_STDCALL, "NFE_UltimoRetorno", @buffer, @bufferLen)
       MsgStop(buffer, "Erro: "+Str(hResult))
    endif
    DllCall(oDll, DLL_STDCALL, "NFE_Finalizar")
    DllUnload(oDll)
return nil

static function ImprimirSAT(eArquivoOuXml, cImpressora)
    local hResult, bufferLen, buffer, oErr
    local oDll := DllLoad( 'ACBrSat32.dll' )
    eArquivoOuXml   := if(eArquivoOuXml=nil, "acbrsat.xml", eArquivoOuXml)
    cImpressora     := if(cImpressora=nil, "", cImpressora)
    hResult := DllCall(oDll, DLL_STDCALL, "SAT_Inicializar", hb_StrToUTF8("ACBrLib.Ini"), hb_StrToUTF8(""))
    hResult := DllCall(oDll, DLL_STDCALL, "SAT_ImprimirExtratoVenda", hb_StrToUTF8(eArquivoOuXml), hb_StrToUTF8(cImpressora))
    if !Empty(hResult)
       bufferLen := STR_LEN
       buffer    := Space(bufferLen)
       oErr := DllCall(oDll, DLL_STDCALL, "SAT_UltimoRetorno", @buffer, @bufferLen)
       MsgStop(buffer, "Erro: "+Str(hResult))
    endif
    DllCall(oDll, DLL_STDCALL, "SAT_Finalizar")
    DllUnload(oDll)
return nil

 

ACBrTest.zip

Link to comment
Share on other sites

  • 4 weeks later...
  • 4 weeks later...
2 minutos atrás, vilian disse:

Obrigado Ribeiro,
Fiz o cadastro para o período de 15 dias grátis ontem, mas até agora ainda não liberaram o meu acesso... estou aguardando essa liberação para iniciar os testes.

Amigo, não sei a sua situação, mas vc pode se registrar por 1 mês e até anual e sempre que precisar renovar. No meu caso eu faço anual, pago 1.200,00 pelo ano, ou seja, 100,00 à cada mês e vale cada centavo investido. O Acbr é de vanguarda,  meses antes de entrar em produção qualquer coisa relativas ao seu alcance e desde de que tenha como testar oficialmente, eles já disponibilizam para testes, inclusive, com muitos de nós testando e informando supostos bugs, portanto, faça uma adesão mensal, e baixe td o que precisar e atualizado até o momento.

O Oscar implementou muita coisa usando as dll's, então ele está com know how no assunto.

[]s,

 

Link to comment
Share on other sites

Meu teste A lA Fivewin:

 

#include "fivewin.ch"
#include "dll.ch"

#define DLL_CDECL   0x08
#define DLL_STDCALL 0x20
#define DLL_SYSTEM  0x04
#define STR_LEN     256

function main(_tipo_,_xml_)
   local oWnd
   public oACBrNFe32 := LoadLibrary( 'ACBrNFe32.dll' )
   public oACBrSat32 := LoadLibrary( 'ACBrSat32.dll' )
   if _tipo_ = NIL
      DEFINE WINDOW oWnd TITLE "ACBrLib Teste" FROM 5,5 TO 30,85
          @ 3,10 BUTTON "Imprime NF-e"  size 100,50 OF oWnd ACTION ImprimirNFE()
          @ 3,30 BUTTON "Imprime SAT"   size 100,50 OF oWnd ACTION ImprimirSAT()
          @ 3,50 BUTTON "Fim-A-Fim NFe" size 100,50 OF oWnd ACTION FimAFimNFe()
          SET MESSAGE OF oWnd TO "Teste ACBrLib" date time noinset
      ACTIVATE WINDOW oWnd // CENTERED
   else
      do case
         case upper(_tipo_)="NFE"
              ImprimirNFE(_xml_)
         case upper(_tipo_)="CFE"
              ImprimirCFE(_xml_)
         case upper(_tipo_)="SAT"
              ImprimirSAT(_xml_)
      endcase
   endif
return nil

static function FimAFimNFe(eArquivoOuXml, cImpressora, nNumCopias, cProtocolo, bMostrarPreview, cMarcaDagua, bViaConsumidor, bSimplificado)
    local hResult, bufferLen, buffer, oErr
    local oDll := oACBrNFe32 // DllLoad( 'ACBrNFe32.dll' )
    eArquivoOuXml   := if(eArquivoOuXml=nil, "acbrnfe.xml", eArquivoOuXml)
    cImpressora     := if(cImpressora=nil, "", cImpressora)
    nNumCopias      := if(nNumCopias=nil, 1, nNumCopias)
    cProtocolo      := if(cProtocolo=nil, "", cProtocolo)
    bMostrarPreview := if(bMostrarPreview=nil, "True", bMostrarPreview )
    cMarcaDagua     := if(cMarcaDagua=nil, "", cMarcaDagua)
    bViaConsumidor  := if(bViaConsumidor=nil, "", bViaConsumidor)
    bSimplificado   := if(bSimplificado=nil, "", bSimplificado)
    hResult := NFE_Inicializar( hb_StrToUTF8("ACBrLib.Ini"), hb_StrToUTF8("") )
    hResult := NFE_CarregarXML( hb_StrToUTF8(eArquivoOuXml) )

    hResult := NFE_Assinar()
	?"hResult := NFE_Assinar()",hResult,,iif(hResult=-1,"Indica que a biblioteca não foi inicializada",iif(hResult=-10,"Indica que houve erro ao enviar o lote.",""))
    if !Empty(hResult)
       bufferLen := STR_LEN
       buffer    := Space(bufferLen)
       oErr := NFE_UltimoRetorno( @buffer, @bufferLen)
       MsgStop(buffer, "NFE_Assinar-Erro: "+iif(hResult=-1,"Indica que a biblioteca não foi inicializada",iif(hResult=-10,"Indica que houve erro ao enviar o lote.","")))
    endif

    hResult := NFE_Validar()
	?"hResult := NFE_Validar()",hResult,,iif(hResult=-1,"Indica que a biblioteca não foi inicializada",iif(hResult=-10,"Indica que houve erro ao enviar o lote.",""))
    if !Empty(hResult)
       bufferLen := STR_LEN
       buffer    := Space(bufferLen)
       oErr := NFE_UltimoRetorno( @buffer, @bufferLen)
       MsgStop(buffer, "NFE_Validar-Erro: "+iif(hResult=-1,"Indica que a biblioteca não foi inicializada",iif(hResult=-10,"Indica que houve erro ao enviar o lote.","")))
    endif

	AIndex       := 0                           // Posição da NFe na lista, a lista inicia em 0
	eNomeArquivo := hb_StrToUTF8(eArquivoOuXml) // Nome do arquivo xml a ser salvo.
	ePathArquivo := "c:\temp"                   // Local onde será salvo o xml
    hResult := NFE_GravarXml( AIndex, eNomeArquivo, ePathArquivo )
    if !Empty(hResult)
       bufferLen := STR_LEN
       buffer    := Space(bufferLen)
       oErr := NFE_UltimoRetorno( @buffer, @bufferLen)
       MsgStop(buffer, "NFE_GravarXml-Erro: "+iif(hResult=-1,"Indica que a biblioteca não foi inicializada",iif(hResult=-10,"Indica que houve erro ao enviar o lote.","")))
    endif

	ALote     := nRandom( 99999 ) // Numero do Lote a ser enviado
	AImprimir := "True"           // Se True imprime o DANFe caso o NF-e for autorizado
	ASincrono := "True"           // Se True imprime o envia em modo sincrono
	AZipado   := "True"           // Se True imprime o envia o arquivo zipado
	sResposta := ""               // Usado pelo retorno, contem as informações retornadas pela consulta.
	esTamanho := ""               // Usado pelo retorno, contem o tamanho da string (sResposta).
    hResult := NFE_Enviar( ALote, AImprimir, ASincrono, AZipado, @sResposta, @esTamanho )
    if !Empty(hResult)
       bufferLen := STR_LEN
       buffer    := Space(bufferLen)
       oErr := NFE_UltimoRetorno( @buffer, @bufferLen)
       MsgStop(buffer, "NFE_Enviar-Erro: "+iif(hResult=-1,"Indica que a biblioteca não foi inicializada",iif(hResult=-10,"Indica que houve erro ao enviar o lote.","")))
    endif

    hResult := NFE_Imprimir( hb_StrToUTF8(cImpressora), nNumCopias, hb_StrToUTF8(cProtocolo), hb_StrToUTF8(bMostrarPreview), hb_StrToUTF8(cMarcaDagua), hb_StrToUTF8(bViaConsumidor), hb_StrToUTF8(bSimplificado) )
	hResult := NFE_ImprimirPDF("acbrnfe.xml")
    return nil

static function ImprimirCFE(eArquivoOuXml, cImpressora, nNumCopias, cProtocolo, bMostrarPreview, cMarcaDagua, bViaConsumidor, bSimplificado)
    return nil
static function ImprimirNFE(eArquivoOuXml, cImpressora, nNumCopias, cProtocolo, bMostrarPreview, cMarcaDagua, bViaConsumidor, bSimplificado)
    local hResult, bufferLen, buffer, oErr
    local oDll := oACBrNFe32 // DllLoad( 'ACBrNFe32.dll' )
    eArquivoOuXml   := if(eArquivoOuXml=nil, "acbrnfe.xml", eArquivoOuXml)
    cImpressora     := if(cImpressora=nil, "", cImpressora)
    nNumCopias      := if(nNumCopias=nil, 1, nNumCopias)
    cProtocolo      := if(cProtocolo=nil, "", cProtocolo)
    bMostrarPreview := if(bMostrarPreview=nil, "True", bMostrarPreview )
    cMarcaDagua     := if(cMarcaDagua=nil, "", cMarcaDagua)
    bViaConsumidor  := if(bViaConsumidor=nil, "", bViaConsumidor)
    bSimplificado   := if(bSimplificado=nil, "", bSimplificado)
    hResult := NFE_Inicializar( hb_StrToUTF8("ACBrLib.Ini"), hb_StrToUTF8("") )
    hResult := NFE_CarregarXML( hb_StrToUTF8(eArquivoOuXml) )
    hResult := NFE_Imprimir( hb_StrToUTF8(cImpressora), nNumCopias, hb_StrToUTF8(cProtocolo), hb_StrToUTF8(bMostrarPreview), hb_StrToUTF8(cMarcaDagua), hb_StrToUTF8(bViaConsumidor), hb_StrToUTF8(bSimplificado) )
	//hResult := NFE_ImprimirPDF("acbrnfe.xml")
    if !Empty(hResult)
       bufferLen := STR_LEN
       buffer    := Space(bufferLen)
       oErr := NFE_UltimoRetorno( @buffer, @bufferLen)
       MsgStop(buffer, "Erro: "+Str(hResult))
    endif
    NFE_Finalizar()
    //DllUnload(oDll)
    return nil

static function ImprimirSAT(eArquivoOuXml, cImpressora)
    local hResult, bufferLen, buffer, oErr
    local oDll := oACBrSat32 // DllLoad( 'ACBrSat32.dll' )
    eArquivoOuXml   := if(eArquivoOuXml=nil, "acbrsat.xml", eArquivoOuXml)
    cImpressora     := if(cImpressora=nil, "", cImpressora)
    hResult := SAT_Inicializar( hb_StrToUTF8("ACBrLib.Ini"), hb_StrToUTF8("") )
    hResult := SAT_ImprimirExtratoVenda( hb_StrToUTF8(eArquivoOuXml), hb_StrToUTF8(cImpressora) )
    if !Empty(hResult)
       bufferLen := STR_LEN
       buffer    := Space(bufferLen)
       oErr := SAT_UltimoRetorno( @buffer, @bufferLen )
       MsgStop(buffer, "Erro: "+Str(hResult))
    endif
    SAT_Finalizar()
    //DllUnload(oDll)
    return nil

/* OK */ DLL32 FUNCTION NFE_Inicializar( param1 AS STRING, param2 AS STRING ) AS LONG PASCAL FROM "NFE_Inicializar" LIB oACBrNFe32
/* OK */ DLL32 FUNCTION NFE_CarregarXML( param1 AS STRING ) AS LONG PASCAL FROM "NFE_CarregarXML" LIB oACBrNFe32
/* OK */ DLL32 FUNCTION NFE_Imprimir( param1 AS STRING, param2 AS LONG, param3 AS STRING, param4 AS STRING, param5 AS STRING, param6 AS STRING, param7 AS STRING  ) AS LONG PASCAL FROM "NFE_Imprimir" LIB oACBrNFe32
/* OK */ DLL32 FUNCTION NFE_UltimoRetorno( param1 AS STRING, param2 AS LONG ) AS LONG PASCAL FROM "NFE_UltimoRetorno" LIB oACBrNFe32
/* OK */ DLL32 FUNCTION NFE_Finalizar() AS LONG PASCAL FROM "NFE_Finalizar" LIB oACBrNFe32
/* OK */ DLL32 FUNCTION NFE_ImprimirPDF() AS LONG PASCAL FROM "NFE_ImprimirPDF" LIB oACBrNFe32

/*    */ DLL32 FUNCTION NFE_CarregarINI( param1 AS STRING ) AS LONG PASCAL FROM "NFE_CarregarINI" LIB oACBrNFe32

/* 	Nome				Tipo	Opcional	Descricao
	01	AIndex			Integer	Não			Posição da NFe na lista, a lista inicia em 0.
	02	sResposta		String	Não			Usado pelo retorno, contem as informações retornadas.
	03	esTamanho		Integer	Não			Usado pelo retorno, contem o tamanho da string (sResposta).
*//* */  DLL32 FUNCTION NFE_ObterXml( param1 AS LONG, param2 AS STRING, param3 AS LONG ) AS LONG PASCAL FROM "NFE_ObterXml" LIB oACBrNFe32

/*  Nome				Tipo	Opcional	Descricao
	01	AIndex			Integer	Não			Posição da NFe na lista, a lista inicia em 0.
	02	eNomeArquivo	String	Sim			Nome do arquivo xml a ser salvo.
	03	ePathArquivo	String	Sim			Local onde será salvo o xml
*//* */  DLL32 FUNCTION NFE_GravarXml( param1 AS LONG, param2 AS STRING, param3 AS STRING ) AS LONG PASCAL FROM "NFE_GravarXml" LIB oACBrNFe32

/*	Nenhum parametro
*//* */  DLL32 FUNCTION NFE_Assinar() AS LONG PASCAL FROM "NFE_Assinar" LIB oACBrNFe32

/*	Nenhum parametro
*//* */  DLL32 FUNCTION NFE_Validar() AS LONG PASCAL FROM "NFE_Validar" LIB oACBrNFe32

/*	Nome				Tipo	Opcional	Descricao
	01	eChaveOuNFe		String	Não			Path com o nome do arquivo XML a ser consultado ou o conteúdo do XML.
	02	AExtrairEventos	Boolean	Não			Informe se deve ou não extrair os eventos, se houver os mesmos na reposta.
	03	sResposta		String	Não			Usado pelo retorno, contem as informações retornadas pela consulta.
	04	esTamanho		Integer	Não			Usado pelo retorno, contem o tamanho da string (sResposta).
*//* */  DLL32 FUNCTION NFE_Consultar( param1 AS STRING, param2 AS BOOL, param3 AS STRING, param4 AS LONG ) AS LONG PASCAL FROM "NFE_Consultar" LIB oACBrNFe32

/*	Nome				Tipo	Opcional	Descricao
	01	ACNPJ			String	Não			CNPJ do emitente
	02	AJustificativa	String	Não			Motivo por estar solicitando a Inutilização
	03	Ano				Integer	Não			Ano
	04	Modelo			Integer	Não			Modelo deve ser informado 55 para NF-e ou 65 para NFC-e
	05	Serie			Integer	Não			Serie do Documento Fiscal
	06	NumeroInicial	Integer	Não			Numero Inicial a que se deseja Inutilizar
	07	NumeroFinal		Integer	Não			Numero Final a se se deseja Inutilizar
	08	sResposta		String	Não			Usado pelo retorno, contem as informações retornadas pela consulta.
	09	esTamanho		Integer	Não			Usado pelo retorno, contem o tamanho da string (sResposta).
*//* */  DLL32 FUNCTION NFE_Inutilizar( param1 AS STRING, param2 AS STRING, param3 AS LONG, param4 AS LONG, param5 AS LONG, param6 AS LONG, param7 AS LONG, param8 AS STRING, param9 AS LONG ) AS LONG PASCAL FROM "NFE_Inutilizar" LIB oACBrNFe32

/*	Nome				Tipo	Opcional	Descricao
	01	ALote			Integer	Não			Numero do Lote a ser enviado
	02	AImprimir		Boolean	Não			Se True imprime o DANFe caso o NF-e for autorizado
	03	ASincrono		Boolean	Não			Se True imprime o envia em modo sincrono
	04	AZipado			Boolean	Não			Se True imprime o envia o arquivo zipado
	05	sResposta		String	Não			Usado pelo retorno, contem as informações retornadas pela consulta.
	06	esTamanho		Integer	Não			Usado pelo retorno, contem o tamanho da string (sResposta).
*//* */  DLL32 FUNCTION NFE_Enviar( param1 AS LONG, param2 AS BOOL, param3 AS BOOL, param4 AS BOOL, param5 AS STRING, param6 AS LONG ) AS LONG PASCAL FROM "NFE_Enviar" LIB oACBrNFe32

/*	Nome				Tipo	Opcional	Descricao
	01	eChave			String	Não			Chave de acesso do XML a ser cancelado.
	02	AJustificativa	String	Não			Motivo do cancelamento
	03	eCNPJ			String	Não			CNPJ do emitente
	04	ALote			Integer	Não			Numero do Lote do evento de cancelamento
	05	sResposta		String	Não			Usado pelo retorno, contem as informações retornadas pela consulta.
	06	esTamanho		Integer	Não			Usado pelo retorno, contem o tamanho da string (sResposta)
*//* */  DLL32 FUNCTION NFE_Cancelar( param1 AS STRING, param2 AS STRING, param3 AS STRING, param4 AS LONG, param5 AS STRING, param6 AS LONG ) AS LONG PASCAL FROM "NFE_Cancelar" LIB oACBrNFe32

/*	Nome				Tipo	Opcional	Descricao
	01	sResposta		String	Não			Usado pelo retorno, contem as informações retornadas pela consulta.
	02	esTamanho		Integer	Não			Usado pelo retorno, contem o tamanho da string (sResposta).
*//* */  DLL32 FUNCTION NFE_StatusServico( param1 AS STRING, param2 AS LONG ) AS LONG PASCAL FROM "NFE_StatusServico" LIB oACBrNFe32

/*	Nome				Tipo	Opcional	Descricao
	01	ePara			String	Não			Destinatário
	02	eChaveNFe		String	Não			Path com o nome do arquivo XML a ser anexado ao e-mail
	03	AEnviaPDF		Boolean	Não			Se True gera o PDF do DANFe e anexa ao e-mail
	04	eAssunto		String	Não			Texto contendo o assunto do e-mail
	05	eCC				String	Não			endereços separados por ponto e vírgula que receberão uma cópia do e-mail
	06	eAnexos			String	Não			Path com o nome de arquivos separados por ponto e vírgula a serem anexados ao e-mail
	07	eMensagem		String	Não			Texto referente a mensagem do e-mail
*//* */  DLL32 FUNCTION NFE_EnviarEmail( param1 AS STRING, param2 AS STRING, param3 AS BOOL, param4 AS STRING, param5 AS STRING, param6 AS STRING, param7 AS STRING ) AS LONG PASCAL FROM "NFE_EnviarEmail" LIB oACBrNFe32

/* OK */ DLL32 FUNCTION SAT_Inicializar( param1 AS STRING, param2 AS STRING ) AS LONG PASCAL FROM "SAT_Inicializar" LIB oACBrSat32
/* OK */ DLL32 FUNCTION SAT_ImprimirExtratoVenda( param1 AS STRING, param2 AS STRING ) AS LONG PASCAL FROM "SAT_ImprimirExtratoVenda" LIB oACBrSat32
/* OK */ DLL32 FUNCTION SAT_ImprimirExtratoCancelamento( param1 AS STRING, param2 AS STRING ) AS LONG PASCAL FROM "SAT_ImprimirExtratoCancelamento" LIB oACBrSat32
/* OK */ DLL32 FUNCTION SAT_UltimoRetorno( param1 AS STRING, param2 AS LONG ) AS LONG PASCAL FROM "SAT_UltimoRetorno" LIB oACBrSat32
/* OK */ DLL32 FUNCTION SAT_Finalizar() AS LONG PASCAL FROM "SAT_Finalizar" LIB oACBrNFe32

FUNCTION hb_StrToUTF8( param1 ) // Dummy Function
    return param1

 

Link to comment
Share on other sites

Amiguinhos,

Vilian como ainda uso uma versão de Harbour antiga(da minha infância) não tem a função DllCall(própria do xHarbour) mas tem a CallDll(para Harbour), mas fica mais lindo com DLL32 FUNCTION.

As linhas que contém /* OK */ são as quais eu fiz uso sem erros as outras só traduzi mas ainda nem testei.

 

Link to comment
Share on other sites

  • 2 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...