kapiaba Posted September 14, 2020 Report Share Posted September 14, 2020 Mostre como está fazendo. É difícil ajudar com coisa nova, sem se ver ou conhecer, né? Ainda não temos o dom de adivinhar, excepto o Vagner Wirts, os demais meros mortais, não conseguem. Quote Link to comment Share on other sites More sharing options...
oribeiro Posted September 14, 2020 Report Share Posted September 14, 2020 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 Quote Link to comment Share on other sites More sharing options...
Jorge Andrade Posted September 14, 2020 Author Report Share Posted September 14, 2020 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") Quote Link to comment Share on other sites More sharing options...
oribeiro Posted September 14, 2020 Report Share Posted September 14, 2020 O comando de limpar a memória é o SAT_Finalizar e NFE_Finalizar ? Quote Link to comment Share on other sites More sharing options...
Jorge Andrade Posted September 21, 2020 Author Report Share Posted September 21, 2020 Em 14/09/2020 at 13:24, oribeiro disse: O comando de limpar a memória é o SAT_Finalizar e NFE_Finalizar ? LimparMemória não é o mesmo finalizar. Quote Link to comment Share on other sites More sharing options...
oribeiro Posted September 21, 2020 Report Share Posted September 21, 2020 Obrigado. Qual é a sua sugestão? Se possível, me aceite no Skype Quote Link to comment Share on other sites More sharing options...
Jorge Andrade Posted September 22, 2020 Author Report Share Posted September 22, 2020 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. Quote Link to comment Share on other sites More sharing options...
oribeiro Posted September 22, 2020 Report Share Posted September 22, 2020 Jorge, tentei o nfe_limparlista e o nfe_limparlistaeventos mas o erro na impressão persiste. Algo fica configurado na memória depois da impressão da nota que impede a impressão do sat e vice-versa. Quote Link to comment Share on other sites More sharing options...
sygecom Posted October 5, 2020 Report Share Posted October 5, 2020 Pessoal, Alguem sabe se já tem NFSe no ACBRLIB / DLL ? Quote Link to comment Share on other sites More sharing options...
oribeiro Posted October 5, 2020 Report Share Posted October 5, 2020 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. Quote Link to comment Share on other sites More sharing options...
sygecom Posted October 5, 2020 Report Share Posted October 5, 2020 Obrigado Mestre, vou atrás da informação. Quote Link to comment Share on other sites More sharing options...
sygecom Posted October 6, 2020 Report Share Posted October 6, 2020 Em breve vai está disponível. https://www.projetoacbr.com.br/forum/topic/59698-usar-acbrnfse-com-acbrlib/ Quote Link to comment Share on other sites More sharing options...
oribeiro Posted October 26, 2020 Report Share Posted October 26, 2020 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 Quote Link to comment Share on other sites More sharing options...
oribeiro Posted November 18, 2020 Report Share Posted November 18, 2020 Pessoal, As bibliotecas do ACBr estão funcionando 100%. É tudo muito mais prático e rápido comparado ao ACBrMonitor. Estou rodando NF-e, SAT-e e CT-e com as DLLs. Se precisarem de ajuda é só avisar. Quote Link to comment Share on other sites More sharing options...
oribeiro Posted November 19, 2020 Report Share Posted November 19, 2020 Sim. Já tem. Se precisar, eu tenho. Quote Link to comment Share on other sites More sharing options...
vilian Posted December 17, 2020 Report Share Posted December 17, 2020 Bom dia Amigos, Estou querendo dar uma avaliada nas bibliotecas da ACBr, e gostaria de saber se no caso de utilizar a DLL precisa instalar algo mais no windows ou basta colocar a DLL na pasta do sistema mesmo ? Quote Link to comment Share on other sites More sharing options...
oribeiro Posted December 17, 2020 Report Share Posted December 17, 2020 Só precisa das DLLs e dos Schemas atualizados da NF-e Quote Link to comment Share on other sites More sharing options...
vilian Posted December 17, 2020 Report Share Posted December 17, 2020 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. Quote Link to comment Share on other sites More sharing options...
Jorge Andrade Posted December 17, 2020 Author Report Share Posted December 17, 2020 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, Quote Link to comment Share on other sites More sharing options...
vilian Posted December 17, 2020 Report Share Posted December 17, 2020 Boa Tarde, Depois de testar, se funcionar como esperado, certamente contrataremos. Quote Link to comment Share on other sites More sharing options...
rochinha Posted December 17, 2020 Report Share Posted December 17, 2020 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 Quote Link to comment Share on other sites More sharing options...
vilian Posted December 17, 2020 Report Share Posted December 17, 2020 Muito bom Rochinha! Não estava entendo pq os exemplos anteriores estavam tudo usando DllCall, é ótimo saber que vai funcionar tb com as declaração das funções da DLL. rochinha 1 Quote Link to comment Share on other sites More sharing options...
rochinha Posted December 17, 2020 Report Share Posted December 17, 2020 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. Quote Link to comment Share on other sites More sharing options...
oribeiro Posted December 18, 2020 Report Share Posted December 18, 2020 Configurei as três classes NF-e, SAT e CT-e para xHarbour seguindo o exemplo do site do ACBr. Está tudo rodando perfeitamente. É muito mais rápido e funcional que o ACBrMonitor por não haver troca de arquivos. rochinha 1 Quote Link to comment Share on other sites More sharing options...
rochinha Posted December 26, 2020 Report Share Posted December 26, 2020 Amiguinhos, Uma coisa que notei nos testes é que o preview é fixo para aparecer na Impressão do SAT? A opção de não-previzualizar deve estar somente na versão SAC. 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.