ACBrLib

Fórum sobre desenvolvimento de software para atender as exigências da legislação fiscal e tributária (NFe, NFCe, NFSe, SPEED, Projeto ACBr, TEF, ECD, EFD, etc.)

Moderador: Moderadores

Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

ACBrLib

Mensagem por Itamar M. Lins Jr. »

Ola!
Pois é, agora eles estão ficando igual a SefazClass de 10 anos atrás, que aliás, nem é DLL, é no próprio fonte.
Santo de casa não faz milagre. Só não usei pq na época bem antes já usava a AcbrMonitor.
Mas voltando ao assunto pq, estão achando que estou denegrindo a DLL ?
O objetivo do post não é esse. O objetivo é saber o que vamos fazer, adicionar mudar no sistema para usar a DLL.
Quais as vantagens de adicionar essa DLL ? Se compensa ressuscitar um modulo meu, de ECF de padaria/supermercado...
É o que estou tentando ver nessas minhas postagens.
Eu tenho 1 EXE sem DLL. Só vou tirar NFCe por 1 CPU, mas vou precisar mudar deixar isso aberto para vários emitir.
Interface de Programação de Aplicações ou Interface de Programação de Aplicação), cuja sigla API provém do Inglês Application Programming Interface, é um ...
Não enxergo a DLL como API, falta algumas características para ser API. No caso as telas que uma API faz e linguagem própria.
Quem disse que compensa não explicou como está fazendo.
Sim compensa usar a DLL é legal, pagam suporte etc... Mas cadê, tá fazendo como ?
Tem um sistema aparte ou apenas um módulo único EXE com tudo ? Usam DBF ou algum SGBD ?


Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

ACBrLib

Mensagem por JoséQuintas »

Postaram há tempos atrás, mas diferente daquele link que mostrei.
Como eu disse.... quando se trata de algo que se pode ganhar dinheiro, parece que a ajuda para.
Talvez porque pagam pra receber ajuda, acabam não ajudando.... rs
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

ACBrLib

Mensagem por JoséQuintas »

Usando as Classes de Alto Nível.
Para os usuários SAC existe um recurso ainda mais poderoso para se trabalhar com o ACBrLib, que seriam, as Classes de Alto Nível as quais farão a comunicação entre sua aplicação e as bibliotecas ACBr, com elas é possível utilizar os comandos de forma mais simples sem qualquer preocupação com as chamadas diretas das bibliotecas ACBr.
Pelo jeito, pagando, dá pra usar do jeito que foi mostrado.
Talvez parecido com o uso de ADO, com win_OleCreateObject() e usar a classe Delphi como se fosse parte do Harbour.
Mas se é comercial.... não pode ser distribuído.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

ACBrLib

Mensagem por JoséQuintas »

Se postarem o uso real, poderíamos criar as classes pra fazer exatamente igual, sem precisar pagar.
Até ajudo, mesmo sem usar, mas não vou ficar pesquisando isso, e muito menos ficar testando.

No ACBR com certeza não vão mostrar, porque isso tiraria a necessidade de pagar pela outra DLL.

Recapitulando:

Tem a DLL grátis, de livre distribuição.
Pode ser criada uma classe baseada nela, TALVEZ equivalente à DLL paga.
Podemos fazer isso juntos, com vantagem pra todos, ou cada um que se vire.

E aí? o fórum é uma comunidade, ou é cada um por si?
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

ACBrLib

Mensagem por Itamar M. Lins Jr. »

Ola!
que seriam, as Classes de Alto Nível as quais farão a comunicação entre sua aplicação e as bibliotecas ACBr,
Bem que gostaria de ver essa classe para Harbour, se é diferente do que usamos, se bem que a classe da ACBrLib para Harbour está no SVN, e é igual a todas as outras que já existem e usamos.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

ACBrLib

Mensagem por JoséQuintas »

Chamou atenção no fonte VB de exemplo

Código: Selecionar todos

Public Sub InicializarLib(Optional ByVal eArqConfig As String = "", _
                          Optional ByVal eChaveCrypt As String = "")

    SetLibPath
    Dim retorno As Long

    retorno = NFE_Inicializar(eArqConfig, eChaveCrypt)
    CheckResult retorno
End Sub
precisa chave criptográfica pra liberar o uso?

http://svn.code.sf.net/p/acbr/code/trun ... CBrNFe.cls
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

ACBrLib

Mensagem por JoséQuintas »

Em Harbour.... apesar de esquisito...

Código: Selecionar todos

METHOD New(eArqConfig, eChaveCrypt) CLASS ACBrNFe
    local hResult, buffer, bufferLen, oErr

    eArqConfig :=if(eArqConfig = nil, '', eArqConfig)
    eChaveCrypt:=if(eChaveCrypt = nil, '', eChaveCrypt)

    ::hHandle := DllLoad(ACBrLIB)
    if EMPTY(::hHandle) // Eric.Developer: xHarbour retorna 0x00000000
        oErr := ErrorNew()
        oErr:Severity := ES_ERROR        
        oErr:Description := "Erro a carregar a dll [" + ACBrLIB + "]"
        Throw(oErr)
    endif
    hResult := DllCall(::hHandle, DLL_OSAPI, "NFE_Inicializar", hb_StrToUTF8(eArqConfig), hb_StrToUTF8(eChaveCrypt))
    ::CheckResult(hResult) 
    RETURN Self
http://svn.code.sf.net/p/acbr/code/trun ... CBrNFe.prg
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

ACBrLib

Mensagem por JoséQuintas »

Sei lá...
Não gostei, mas vai ficar mais rápido que EXE separado.
E com certeza os fontes são direcionados pra Xharbour, e poderiam ser muito melhores.
Não só em fonte Harbour, mas na DLL, que talvez aqui seja o uso da grátis, e não da versão paga.

Código: Selecionar todos

Function Main ()
   local nfe
   
   nfe := ACBrNFe():New()

   nfe:ConfigGravarValor("Principal", "LogNivel", "4") // logParanoico     
   nfe:ConfigGravarValor("Principal", "LogPath", hb_dirBase() + "Logs")
   nfe:ConfigGravar()
   
   nfe:CarregarXML(hb_dirBase() + "nfe.xml")

   nfe:Imprimir("", 1, "", "True", hb_dirBase() + "rftd.jpg", "", "")
   
   ?nfe:Nome
   ?nfe:Versao
   
return NIL
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

ACBrLib

Mensagem por JoséQuintas »

teste rápido: coisa de principiante.

declarou #include com nome de pasta
ACBrNFe.prg:1: error F0029 Can't open #include file '..\Comum\acbrlib.ch'

variáveis pra nada
ACBrNFe.prg:93: warning W0003 Variable 'BUFFER' declared but not used in function '77:ACBRNFE_NEW'
ACBrNFe.prg:93: warning W0003 Variable 'BUFFERLEN' declared but not used in function '77:ACBRNFE_NEW'

Além da LIB de compatibilidade XHarbour, que já é problema, ainda tem a lib de compatibilidade xbase++

c:/temp/ACBrNFe.o:ACBrNFe.c:(.data+0x3e8): undefined reference to `HB_FUN_DLLLOAD'
c:/temp/ACBrNFe.o:ACBrNFe.c:(.data+0x448): undefined reference to `HB_FUN_THROW'
c:/temp/ACBrNFe.o:ACBrNFe.c:(.data+0x458): undefined reference to `HB_FUN_DLLCALL'
c:/temp/ACBrNFe.o:ACBrNFe.c:(.data+0x488): undefined reference to `HB_FUN_DLLUNLOAD'
hbmk2: Hint: Add input file 'hbxpp.hbc' for missing Harbour function(s):
DllUnload(), DllCall(), DllLoad()
hbmk2: Hint: Add input file 'xhb.hbc' for missing Harbour function(s): Throw()

compilando com compatibilidade xharbour, xbase++ e desativando checagens do Harbour, compilou o exemplo.

Provavelmente vai gerar problemas com outras coisas, mas compilou.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

ACBrLib

Mensagem por Itamar M. Lins Jr. »

Ola!
Isso eu já tinha visto... Tô levantado a questão aqui no grupo...
Pq estão usando a contrib do Pritpal Bedi para isso ?

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
AutomoSistema
Usuário Nível 2
Usuário Nível 2
Mensagens: 87
Registrado em: 27 Nov 2015 22:09
Localização: Jardim-MS

ACBrLib

Mensagem por AutomoSistema »

Boa noite, acredito que no tempo em que vivemos tecnologicamente as SoftHouse estão começando ou já começamos a enfrentar um problema em que palavras não vou conseguir explicar para os senhores porem vou colocar um link de uma palestra da Gertech onde perto do final o palestrante vai clarear o que já vem acontecendo e a importância da nossa soberania na cadeia da automação comercial. https://www.youtube.com/watch?v=WAYhjxNUgqo , neste link os senhores vão ver o que vem acontecendo nas falsas promessas destas empresas grandes com soluções milagrosas para emissão de documentos eletrônicos para SoftHouse!!!
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

ACBrLib

Mensagem por JoséQuintas »

Itamar M. Lins Jr. escreveu:Isso eu já tinha visto... Tô levantado a questão aqui no grupo...
Pq estão usando a contrib do Pritpal Bedi para isso ?
Suposição apenas:
Infelizmente, para quem olha o Harbour, a versão oficial é 3.0
Provavelmente por isso acaba ficando com fonte problemático.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
oribeiro
Usuário Nível 1
Usuário Nível 1
Mensagens: 30
Registrado em: 15 Fev 2013 07:35
Localização: Itu/SP
Contato:

ACBrLib

Mensagem por oribeiro »

Pessoal,
Espero que todos estejam bem.
Estou migrando do ACBrMonitor para o ACBrLib e estou com um sério problema.
Não consigo imprimir NFe e SAT sem antes sair da aplicação.
Por favor, deem uma olhada onde estou errando.

Código: Selecionar todos

#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


Oscar Ribeiro
xHarbour+Fwh+WorkShop
Avatar do usuário
oribeiro
Usuário Nível 1
Usuário Nível 1
Mensagens: 30
Registrado em: 15 Fev 2013 07:35
Localização: Itu/SP
Contato:

ACBrLib

Mensagem por oribeiro »

Ahh, utilizo o FHW + xHarbour.

Segue o programa teste compilado.

Ao executar, tente imprimir NFe e depois SAT ou vice-versa sem sair do programa.
Oscar Ribeiro
xHarbour+Fwh+WorkShop
pauloa1
Usuário Nível 3
Usuário Nível 3
Mensagens: 227
Registrado em: 25 Jun 2008 14:57
Localização: Augusto Pestana-RS

ACBrLib

Mensagem por pauloa1 »

Olá!

vc está usando isso nfe:LimparLista()
antes de enviar o camando pra imprimir ?

Paulo
Responder