Clipper On Line • Ver Tópico - ACBrLib

ACBrLib

Discussão sobre desenvolvimento de software para atender as exigências da legislação fiscal e tributária (ECF, TEF, SINTEGRA, NF-e, ECD, EFD, etc.)

Moderador: Moderadores

 

ACBrLib

Mensagempor Itamar M. Lins Jr. » 29 Jun 2020 13:30

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.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

ACBrLib

Mensagempor JoséQuintas » 29 Jun 2020 13:52

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

ACBrLib

Mensagempor JoséQuintas » 29 Jun 2020 13:59

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

ACBrLib

Mensagempor JoséQuintas » 29 Jun 2020 14:12

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

ACBrLib

Mensagempor Itamar M. Lins Jr. » 29 Jun 2020 14:18

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.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

ACBrLib

Mensagempor JoséQuintas » 29 Jun 2020 14:22

Chamou atenção no fonte VB de exemplo

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/trunk2/Projetos/ACBrLib/Demos/VB6/NFe/Imports/ACBrNFe.cls
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

ACBrLib

Mensagempor JoséQuintas » 29 Jun 2020 14:26

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

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/trunk2/Projetos/ACBrLib/Demos/Harbour/NFe/ACBrNFe.prg
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

ACBrLib

Mensagempor JoséQuintas » 29 Jun 2020 14:39

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.

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

ACBrLib

Mensagempor JoséQuintas » 29 Jun 2020 14:50

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

ACBrLib

Mensagempor Itamar M. Lins Jr. » 29 Jun 2020 15:05

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.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

ACBrLib

Mensagempor AutomoSistema » 29 Jun 2020 22:00

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!!!
AutomoSistema
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 87
Data de registro: 27 Nov 2015 21:09
Cidade/Estado: Jardim-MS
Curtiu: 0 vez
Mens.Curtidas: 4 vezes

ACBrLib

Mensagempor JoséQuintas » 29 Jun 2020 22:26

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

ACBrLib

Mensagempor oribeiro » 27 Out 2020 10:07

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.

#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 de usuário

oribeiro
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 30
Data de registro: 15 Fev 2013 06:35
Cidade/Estado: Itu/SP
Curtiu: 0 vez
Mens.Curtidas: 1 vez

ACBrLib

Mensagempor oribeiro » 27 Out 2020 10:11

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
Avatar de usuário

oribeiro
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 30
Data de registro: 15 Fev 2013 06:35
Cidade/Estado: Itu/SP
Curtiu: 0 vez
Mens.Curtidas: 1 vez

ACBrLib

Mensagempor pauloa1 » 27 Out 2020 14:54

Olá!

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

Paulo
pauloa1
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 223
Data de registro: 25 Jun 2008 14:57
Cidade/Estado: Augusto Pestana-RS
Curtiu: 2 vezes
Mens.Curtidas: 11 vezes

Anterior Próximo



Retornar para Legislação Fiscal e Tributária

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 2 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro