Clipper On Line • Ver Tópico - ACBr LIB

ACBr LIB

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

 

ACBr LIB

Mensagempor Nascimento » 22 Out 2019 21:52

"Fernando queiroz" escreveu :Uso a SEFAZCLASS , inclusive já fiz alterações nela para ajustes junto com o Quintas, hoje acho super simples usar


isso é ótimo , é admirável o trabalho do nosso amigo Quintas isso é inquestionável, eu até tentei usa-la até porque sou um defensor ferrenho do harbour/clipper
enquanto alguns amigos falam de migrar eu penso vou migrar porque se o harbour até agora vem suprindo minhas necessidades?
mais eu tentei, usar a sefazclass, como não consegui usala satisfatoriamente, voltei ao acbr, que não é essas maravilhas o monitor, mais ta funcionando
*
me anima mais um pouco o amigo fernando falando sobre, da mais ênfase de eu tentar novamente a usar ela!, que pra mim seria o ideal, não depender se soft de terceiros
usar uma ferramenta que eu conheço, "não tão bem quanto o amigo Quintas " que eu fico meio perdido nas classes e Methodos, mais ainda arranho rsrs
*
outro tempo eu até falei de juntar as forças, para ideias implementações duvidas sobre a sefazclass, porque as vezes é como falei anteriormente, tem a função mais o programador
não sabe que tem mais em fim , vou olhar alguns post´s , ver se acho aqui no fórum alguns exemplos práticos da sefazclass, e vamos que vamos!
*
se for possível o amigo Fernando queiroz postar alguns exemplos práticos de uso , seria muito enriquecedor para este fórum
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina :) clipper 5.3 /harbour/minigui
Avatar de usuário

Nascimento
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 711
Data de registro: 19 Jul 2008 12:11
Cidade/Estado: OLINDA-PE
Curtiu: 110 vezes
Mens.Curtidas: 76 vezes

ACBr LIB

Mensagempor JoséQuintas » 22 Out 2019 22:24

Nascimento escreveu:se for possível o amigo Fernando queiroz postar alguns exemplos práticos de uso , seria muito enriquecedor para este fórum


Quer testar, vamos lá um passo a passo rápido:

Na pasta de DLLs vém capicom.dll e msxml5.dll
- instale as DLLs
- instale o certificado
Compile o test.exe, e faça os testes, sem precisar nem mexer em programa nenhum.
Deu certo... aí olha as rotinas e faz igual no seu aplicativo.

Acho o melhor ponto de partida, assim começa confirmando se o ambiente está ok, e só depois mexe com programação.

Importante no teste: a primeira coisa é selecionar o certificado, que é base pra todo restante
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: 18008
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

ACBr LIB

Mensagempor fladimir » 23 Out 2019 01:36

No SVN já tem as classes em Harbour pra uso com a DLL

As classes q tem em Harbour são pra Boleto, NFE/NFCe e SAT

Com relação a bancos e carteiras já tem vários e o q é interessante é q mudei do CobrebemX para o ACBr a cerca de 1 ano e meio e qdo eu comecei no ACBr com bancos só tinha uns 6, agora da uma olhada

BancoDoBrasil
Santander
CaixaEconomica|
CaixaSicob|
Bradesco|
Itau|
BancoMercantil|
Sicred|
Bancoob|
Banrisul|
Banestes|
HSBC|
BancoDoNordeste|
BRB|
BicBanco|
BradescoSICOOB|
BancoSafra|
SafraBradesco|
BancoCECRED|
BancoDaAmazonia|
BancoDoBrasilSICOOB

Acredito q por ser um projeto aberto cresce vertiginosamente, o q é bom pra todos.
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar de usuário

fladimir
Colaborador

Colaborador
 
Mensagens: 2434
Data de registro: 15 Nov 2006 19:21
Curtiu: 28 vezes
Mens.Curtidas: 157 vezes

ACBr LIB

Mensagempor rubens » 12 Nov 2019 11:38

Bom dia..

Alguém tem um exemplo de uso prático com a ACBRLIB?
tipo imprimir uma NFE? já seria um começo..
lá no ACBR tem uns exemplos em harbour mas ainda é muito vago...
o ideal seria um tutorialzinho...

obg..

Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Avatar de usuário

rubens
Colaborador

Colaborador
 
Mensagens: 1518
Data de registro: 16 Ago 2003 09:05
Cidade/Estado: Nova Xavantina - MT
Curtiu: 77 vezes
Mens.Curtidas: 104 vezes

ACBr LIB

Mensagempor Fernando queiroz » 12 Nov 2019 15:04

SEGUE exemplo de uso da SEFAZCLASS , partindo do principio que o XML esta tudo OK

***************************************************************************************
* MODULO DE ASSINATURA , TRANSMISSAO, AUTORIZACAO, RETORNO E IMPRESSAO
***************************************************************************************
      ThisNFE:oProgressbar1:Set(,60)
      ThisNFE:oLabel5:SetText("Assinando NF-e                                                    ")
********* ASSINATURA VIA SEFAZCLASS **********************************************************************************************************

      SELE CERTIFICADO
      IF !DBSEEK(rtrim(hwg_GetComputerName()))
         hwg_MsgInfo("Computador sem o CERTIFICADO DIGITAL instalado"+ HB_EOL()+"A Operação não poderá ser efetuada")
         SELE NOTAFE
         ThisNFE:oOwnerbutton4:DISABLE()
         RETURN NIL
      endif
      
      SELE NOTAFE

      cTxtXml:=M->cXml      
      oSefaz              := SefazClass():New()
      oSefaz:cUF          := FLAG->n_xUF
      oSefaz:cAmbiente    := FLAG->n_tpAmb      
      oSefaz:cCertificado := TRIM(CERTIFICADO->NOMCERT)
//      oSefaz:cVersao      := '3.10'
      ThisNFE:oProgressbar1:Set(,80)
      ThisNFE:oLabel5:SetText("Aguardando Retorno                                                ")

**********************************************************************************************************************************************   
        IF hlusuario( ) # "DEMONTRACAO"                                     
         oSefaz:NFEloteenvia( cTxtXml )
      ENDIF
      IF RDDSETDEFAULT() == "LETO"
         Leto_MemoWrite( cPrefixo + ".xml", oSefaz:cXmlDocumento )   
      ELSE
         hb_MemoWrit( cPrefixo + ".xml", oSefaz:cXmlDocumento )   
      ENDIF
      
//      hb_MemoWrit( cPrefixo + "_1_documento.xml", oSefaz:cXmlDocumento )
//      hb_MemoWrit( cPrefixo + "_2_Envio.xml", oSefaz:cXmlEnvio )
//      hb_MemoWrit( cPrefixo + "_3_Soap.xml", oSefaz:cXmlSoap  )
//      hb_MemoWrit( cPrefixo + "_4_Retorno.xml", oSefaz:cXmlRetorno  )
//      hb_MemoWrit( cPrefixo + "_5_Protocolo.xml", oSefaz:cXmlProtocolo   )
//      hb_MemoWrit( cPrefixo + "_6_Recibo.xml", oSefaz:cXmlRecibo  )
//      hb_MemoWrit( cPrefixo + "_7_Autorizado.xml", oSefaz:cXmlAutorizado )
//      hwg_MsgInfo( "Status: " + oSefaz:cStatus + hb_Eol() + oSefaz:cMotivo )

      IF ! oSefaz:cStatus $ "100,101,150,301,302"
         ThisNFE:oLabel5:SetText(oSefaz:cMotivo)
         hwg_MsgInfo(oSefaz:cStatus + oSefaz:cMotivo)
         
      ELSE
         ThisNFE:oLabel5:SetText(oSefaz:cStatus + oSefaz:cMotivo)
         SELE NOTAFE
         IF RLOCK()
            NOTAFE->FL_SITUAC := XmlNode(oSefaz:cXmlRetorno, "cStat")
            NOTAFE->FL_MOTIVO := XmlNode(oSefaz:cXmlRetorno, "xMotivo")
            NOTAFE->b_dhEmi     := XmlNode(M->cXml, "dhEmi")
            DBUNLOCK()
         ENDIF
         ThisNFE:oProgressbar1:Set(,90)
         ThisNFE:oLabel5:SetText("Gerando DANFE em PDF                                              ")   
          oSpedDa := hbNfeDaGeral():New()
         IF RDDSETDEFAULT() == "LETO"
            Leto_MemoWrite( cPrefixo + ".xml", oSefaz:cXmlAutorizado )
            oSpedDa:ToPdf( oSefaz:cXmlAutorizado, cPrefixo + ".PDF" )
         ELSE
            hb_MemoWrit( cPrefixo + ".xml", oSefaz:cXmlAutorizado )
            oSpedDa:ToPdf( oSefaz:cXmlAutorizado, cPrefixo + ".PDF" )         
         ENDIF
         ThisNFE:oProgressbar1:Set(,100)
         ThisNFE:oLabel5:SetText("NF-e Concluida com sucesso                                        ")
//         hwg_MsgInfo(cPrefixo + ".PDF")

*
*   ---> ENVIA EMAIL DA NOTA FISCAL AUTOMATICAMENTE SE TIVER EMAIL NO CADASTRO
*   
         IF EMAIL_VALIDO(LOWER(NOTAFE->e_eMAIL))
            IF .NOT. EMPTY(NOTAFE->e_eMAIL)
               
               cFrom        := "sgcnfe@gmail.com"
               cPassword   := "suasenha"
               cTo         := LOWER(NOTAFE->e_eMAIL)
               cHost       := "google"

               cSubject := "SGC - NOTA FISCAL ELETRONICA NF-E"
               cBody    := "emitida por: " + HB_EOL() +;
                                   FLAG->n_xFant+ HB_EOL() +;
                                   FLAG->n_xNome+ HB_EOL() +;
                                   "CPF/CNPJ: " + FLAG->n_CNPJ + HB_EOL() +;
                                   "NOTA FISCAL ELETRONICA Nr. " + NOTAFE->b_serie + "/" + NOTAFE->b_nNF + HB_EOL() + HB_EOL() +;
                        "para: " + HB_EOL() + ;
                                   RTRIM(NOTAFE->e_xNome) + HB_EOL() +;
                                   "CPF/CNPJ: " + RTRIM(NOTAFE->e_CNPJ) + HB_EOL() +;
                                   "VALOR: R$ " +  LTRIM(STR(NOTAFE->w_vNF,14,2)) + HB_EOL()+ HB_EOL() +;
                        "chave acesso: " + substr(NOTAFE->a_Id,4,44) + HB_EOL()+ HB_EOL() +;
                        "Obs: E-mail enviado automaticamente por SGC-SISTEMA DE GESTAO DE COMERCIO, nao responda."
               
               aFilesAttch := {cPrefixo + ".xml",cPrefixo + ".PDF"}
               
               Email_Envia( cFrom, cPassword, cTo, cHost, aFilesAttch, cBody, cSubject )         

            ENDIF
         ENDIF
*
*   ---> ABRE O PDF PARA IMPRESSAO ATRAVEZ DO PROGRAMA PADRAO
*

         WAPI_ShellExecute( NIL, "OPEN", cPrefixo + ".PDF" ,"",NIL,5 )

      ENDIF
//      NFEITENS->( DBCLOSEAREA() )
//      FILEDELETE(cArquivoNFEItem)

   
return nil


Acho que a maior dificuldade é criar o XML que nada mais é que uma tira de TAGs que vou montando
      M->cXml := '<NFe xmlns="http://www.portalfiscal.inf.br/nfe">'
      M->cXml += '<infNFe Id="'+ NOTAFE->a_Id + '" versao="4.00">'
      M->cXml += '<ide>'
      M->cXml += '<cUF>'      +NOTAFE->b_cUF                       +'</cUF>'
      M->cXml += '<cNF>'      +NOTAFE->b_cNF                       +'</cNF>'
      IF NOTAFE->b_finNFe = "4"
         M->cXml += '<natOp>DEVOLUCAO DE COMPRA P/ COMERCIALIZACAO</natOp>'
      ELSE
         M->cXml += '<natOp>'    +RTRIM(NOTAFE->b_natOp)              +'</natOp>'
      ENDIF
//      M->cXml += '<indPag>'   +Mb_indPag                        +'</indPag>'                                           && 0-A VISTA 1-A PRAZO 2-OUTROS
      M->cXml += '<mod>'      +NOTAFE->b_mod                       +'</mod>'
      M->cXml += '<serie>'    +ALLTRIM(STR(VAL(NOTAFE->b_serie)))  +'</serie>'
      M->cXml += '<nNF>'      +ALLTRIM(STR(VAL(NOTAFE->b_nNF)))    +'</nNF>'
      M->cXml += '<dhEmi>'    +DateTimeXml(M->DAT_HOJE,TIME() ,FLAG->n_xUF,.T. ) +'</dhEmi>'
      M->cXml += '<tpNF>'     +NOTAFE->b_tpNF                      +'</tpNF>'                                      && 0-ENTRADA 1-SAIDA
      M->cXml += '<idDest>'   +NOTAFE->b_idDest                    +'</idDest>'                                           && id de destino da operacao 1=interna 2=interestadual 3=exterior
      M->cXml += '<cMunFG>'   +NOTAFE->b_cMunFG                    +'</cMunFG>'
      M->cXml += '<tpImp>'    +NOTAFE->b_tpImp                     +'</tpImp>'                                             && formato impressao 1-normal retrato 2-normal paisagem
      M->cXml += '<tpEmis>'   +NOTAFE->b_tpEmis                    +'</tpEmis>'                                           && tipo emissao 1-emissao normal
      M->cXml += '<cDV>'      +NOTAFE->b_cDV                       +'</cDV>'
      M->cXml += '<tpAmb>'    +NOTAFE->b_tpAmb                     +'</tpAmb>'                                   && TIPO DE AMBIENTE 1-PRODUCAO 2-DESENVOLVIMENTO
      M->cXml += '<finNFe>'   +NOTAFE->b_finNFe                    +'</finNFe>'                                           && finalidade da emissao 1-normal 2-complementar 3-ajuste 4-devolucao
      M->cXml += '<indFinal>' +NOTAFE->b_indFinal                  +'</indFinal>'                                       && operacao com consumidor final 0-normal 1-consumidor final
      M->cXml += '<indPres>'  +SUBSTR(aINDPRES[nCombo1],1,1)       +'</indPres>'                                         && indicador de presenca do comprador 1-operacao presencial
      M->cXml += '<procEmi>'  +NOTAFE->b_procEmi                   +'</procEmi>'                                         && processo de emissao da NFe 3-app fornecido pelo fisco
      M->cXml += '<verProc>'  +ALLTRIM(NOTAFE->b_verProc)          +'</verProc>'
      
      IF NOTAFE->b_finNFe = "4"
         M->cXml += '<NFref>'
            M->cXml += '<refNFe>'   +CHAVE_refNFe                +'</refNFe>'
         M->cXml += '</NFref>'
      ENDIF
      M->cXml += '</ide>'
*************************************************************************************************************************      
      M->cXml += '<emit>'
        IF LEN(NOTAFE->c_CNPJ) > 11
         M->cXml += '<CNPJ>'     +ALLTRIM(NOTAFE->c_CNPJ)                      +'</CNPJ>'
      ELSE
         M->cXml += '<CPF>'     +ALLTRIM(NOTAFE->c_CNPJ)              +'</CPF>'
      ENDIF
      M->cXml += '<xNome>'    +rtrim(TIRACENTO(NOTAFE->c_xNome))   +'</xNome>'
      M->cXml += '<xFant>'    +RTRIM(TIRACENTO(NOTAFE->c_xFant))   +'</xFant>'
      M->cXml += '<enderEmit>'
      M->cXml += '<xLgr>'     +rtrim(TIRACENTO(NOTAFE->c_xLgr))    +'</xLgr>'
      M->cXml += '<nro>'      +rtrim(NOTAFE->c_nro)                +'</nro>'
      if NOTAFE->c_xCpl <> space(60)
         M->cXml += '<xCpl>'     +rtrim(NOTAFE->c_xCpl)           +'</xCpl>'
      endif
      M->cXml += '<xBairro>'  +rtrim(NOTAFE->c_xBairro)            +'</xBairro>'
      M->cXml += '<cMun>'     +NOTAFE->c_cMun                      +'</cMun>'
      M->cXml += '<xMun>'     +rtrim(NOTAFE->c_xMun)               +'</xMun>'
      M->cXml += '<UF>'       +NOTAFE->c_UF                        +'</UF>'
      M->cXml += '<CEP>'      +NOTAFE->c_CEP                       +'</CEP>'
      M->cXml += '<cPais>'    +NOTAFE->c_cPais                     +'</cPais>'
      M->cXml += '<xPais>'    +rtrim(NOTAFE->c_xPais)              +'</xPais>'
      M->cXml += '<fone>'     +rtrim(NOTAFE->c_fone)               +'</fone>'
      M->cXml += '</enderEmit>'
      IF FLAG->n_IE <> SPACE(14)
         M->cXml += '<IE>'   +rtrim(NOTAFE->c_IE)                 +'</IE>'
      ENDIF
***      IF FLAG->n_IM <> SPACE(15)
***         M->cXml += '<IM>'   +rtrim(NOTAFE->c_IM)                 +'</IM>'
***         M->cXml += '<CNAE>' +NOTAFE->c_CNAE                      +'</CNAE>'
***      ENDIF
      M->cXml += '<CRT>'      +NOTAFE->c_CRT                       +'</CRT>'
      M->cXml += '</emit>'            
*************************************************************************************************************************

      M->cXml += '<dest>'
      IF LEN(ALLTRIM(NOTAFE->e_CNPJ)) > 11
         M->cXml += '<CNPJ>'      +ALLTRIM(NOTAFE->e_CNPJ)            +'</CNPJ>'
      ELSE
         M->cXml += '<CPF>'      +ALLTRIM(NOTAFE->e_CNPJ)            +'</CPF>'      
      ENDIF
      M->cXml += '<xNome>'     +rtrim(TIRACENTO(NOTAFE->e_xNome))  +'</xNome>'
      M->cXml += '<enderDest>'
      M->cXml += '<xLgr>'     +rtrim(TIRACENTO(NOTAFE->e_xLgr))    +'</xLgr>'
      M->cXml += '<nro>'      +rtrim(NOTAFE->e_nro)                +'</nro>'
      IF NOTAFE->e_xCpl # SPACE(60)
         M->cXml += '<xCpl>' +rtrim(NOTAFE->e_xCpl)           +'</xCpl>'            
      ENDIF            
      M->cXml += '<xBairro>'  +rtrim(NOTAFE->e_xBairr)             +'</xBairro>'
      M->cXml += '<cMun>'     +rtrim(NOTAFE->e_cMun)               +'</cMun>'
      M->cXml += '<xMun>'     +rtrim(NOTAFE->e_xMun)               +'</xMun>'
      M->cXml += '<UF>'       +NOTAFE->e_UF                        +'</UF>'
      M->cXml += '<CEP>'      +NOTAFE->e_CEP                       +'</CEP>'
      M->cXml += '<cPais>'    +NOTAFE->e_cPais                     +'</cPais>'
      M->cXml += '<xPais>'    +rtrim(NOTAFE->e_xPais)              +'</xPais>'
      IF NOTAFE->e_fone <> SPACE(14)
         M->cXml += '<fone>'     +rtrim(NOTAFE->e_fone)           +'</fone>'
      ENDIF
      M->cXml += '</enderDest>'
      M->cXml += '<indIEDest>'+NOTAFE->e_indIE                     +'</indIEDest>'
      IF NOTAFE->e_indIE = "1"
         M->cXml += '<IE>'       +rtrim(NOTAFE->e_IE)             +'</IE>'
      endif
      if NOTAFE->e_ISUF <> space(9)
         M->cXml += '<ISUF>'     +rtrim(NOTAFE->e_ISUF)           +'</ISUF>'
      endif
      if NOTAFE->e_IM <> space(15)
         M->cXml += '<IM>'       +rtrim(NOTAFE->e_IM)             +'</IM>'
      endif
      if NOTAFE->e_eMAIL <> space(60)
         M->cXml += '<email>'    +rtrim(NOTAFE->e_eMAIL)          +'</email>'
      endif

      M->cXml += '</dest>'


ou tem uma forma de fazer bem mais pratica usando o XMLTAG() da SEFAZCLASS

*************************************
STATIC FUNCTION IDENTIFICACAO(  )
*************************************
      MEMVAR->b_cUF      :=FLAG->n_cUF
      MEMVAR->b_dhEmi      :=substr(strzero(YEAR(M->DAT_HOJE),4,0),3,2)+strzero(MONTH(M->DAT_HOJE),2,0)
      MEMVAR->c_CNPJ      :=FLAG->n_CNPJ
      MEMVAR->b_mod      :='99'
      MEMVAR->b_serie      :=FLAG->n_serie
      MEMVAR->b_nNF      :=FLAG->n_serie + PEDIDOS->NUMNOT
      MEMVAR->b_tpEmis   :='1'
      MEMVAR->b_cNF      :=FLAG->n_cNF

      MEMVAR->a_Id       := MEMVAR->b_cUF+MEMVAR->b_dhEmi+MEMVAR->c_CNPJ+MEMVAR->b_mod+MEMVAR->b_serie+MEMVAR->b_nNF+MEMVAR->b_tpEmis+MEMVAR->b_cNF

      MEMVAR->b_cDV       :=CalculaDigito( MEMVAR->a_Id, "11" )
      MEMVAR->a_Id       +=MEMVAR->b_cDV

      M->cXml := '<NFe xmlns="http://www.portalfiscal.inf.br/nfe">'
      M->cXml += '<infNFe versao="4.00" Id="NFe'+ MEMVAR->a_Id + '">'
      M->cXml += '<ide>'
      M->cXml += XmlTag( 'cUF', FLAG->n_cUF )
      M->cXml += XmlTag( 'cNF', FLAG->n_cNF )      
      M->cXml += XmlTag( 'natOp', 'TRANSFERENCIA PARA FILIAL' )         
      M->cXml += XmlTag( 'mod', '55' )      
      M->cXml += XmlTag( 'serie', ALLTRIM(STR(VAL(FLAG->n_serie))) )   
      M->cXml += XmlTag( 'nNF', ALLTRIM(STR(VAL(MEMVAR->b_nNF ))) )
      M->cXml += XmlTag( 'dhEmi', DateTimeXml(M->DAT_HOJE,TIME() ,FLAG->n_xUF,.T. ) )      
      M->cXml += XmlTag( 'tpNF', '1' )      
      M->cXml += XmlTag( 'idDest', '1' )         
      M->cXml += XmlTag( 'cMunFG', FLAG->n_cMun )      
      M->cXml += XmlTag( 'tpImp', '1' )
      M->cXml += XmlTag( 'tpEmis', '1' )
      M->cXml += XmlTag( 'cDV', MEMVAR->b_cDV )
      M->cXml += XmlTag( 'tpAmb', FLAG->n_tpAmb )
      M->cXml += XmlTag( 'finNFe', '1' )
      M->cXml += XmlTag( 'indFinal', '1' )   
      M->cXml += XmlTag( 'indPres', '1' )
      M->cXml += XmlTag( 'procEmi', '0' )
      M->cXml += XmlTag( 'verProc', 'SGC 4.00' )      
      M->cXml += '</ide>'

RETURN M->cXml

*************************************
STATIC FUNCTION EMITENTE(  )
*************************************
      M->cXml := '<emit>'
      M->cXml += XmlTag( 'CNPJ', ALLTRIM(FLAG->n_CNPJ) )
      M->cXml += XmlTag( 'xNome', rtrim(TIRACENTO(FLAG->n_xNome)) )      
      M->cXml += XmlTag( 'xFant', RTRIM(TIRACENTO(FLAG->n_xFant)) )      
      M->cXml += '<enderEmit>'
      M->cXml += XmlTag( 'xLgr', rtrim(TIRACENTO(FLAG->n_xLgr)) )
      M->cXml += XmlTag( 'nro', rtrim(FLAG->n_nro) )      
      M->cXml += XmlTag( 'xCpl', rtrim(FLAG->n_xCpl) )         
      M->cXml += XmlTag( 'xBairro', rtrim(FLAG->n_xBairro) )
      M->cXml += XmlTag( 'cMun', FLAG->n_cMun )      
      M->cXml += XmlTag( 'xMun', rtrim(FLAG->n_xMun) )   
      M->cXml += XmlTag( 'UF', FLAG->n_xUF )
      M->cXml += XmlTag( 'CEP', FLAG->n_CEP )
      M->cXml += XmlTag( 'cPais', FLAG->n_cPais )
      M->cXml += XmlTag( 'xPais', rtrim(FLAG->n_xPais) )
      M->cXml += XmlTag( 'fone', rtrim(FLAG->n_fone) )
      M->cXml += '</enderEmit>'
      M->cXml += XmlTag( 'IE', rtrim(FLAG->n_IE) )
      M->cXml += XmlTag( 'CRT', FLAG->n_CRT )
      M->cXml += '</emit>'      

RETURN    M->cXml

*************************************
STATIC FUNCTION DESTINATARIO(  )
*************************************
      DBSELECTAREA("CLIENTES")
      Ordsetfocus(1)
      M->cXml := ''
      IF DBSEEK(PEDIDOS->UCLIENTE)
         M->cXml := '<dest>'   
         M->cXml += XmlTag( 'CNPJ', ALLTRIM(CLIENTES->CPFCGC) )
         M->cXml += XmlTag( 'xNome', rtrim(TIRACENTO(CLIENTES->NRAZ_SOC)) )
         M->cXml += '<enderDest>'
         M->cXml += XmlTag( 'xLgr', rtrim(TIRACENTO(CLIENTES->ENDER)) )
         M->cXml += XmlTag( 'nro', rtrim(STR(CLIENTES->NUMERO,9,0)) )
         M->cXml += XmlTag( 'xCpl', rtrim(CLIENTES->COMPLEM) )
         M->cXml += XmlTag( 'xBairro', rtrim(CLIENTES->BAIR) )
         M->cXml += XmlTag( 'cMun', rtrim(CLIENTES->CODMUN) )
         M->cXml += XmlTag( 'xMun', rtrim(CLIENTES->CIDADE) )
         M->cXml += XmlTag( 'UF', CLIENTES->UF )
         M->cXml += XmlTag( 'CEP', SoNumeros( CLIENTES->CEP ) )
         M->cXml += XmlTag( 'cPais', CLIENTES->CODPAIS )            
         M->cXml += XmlTag( 'xPais', rtrim(CLIENTES->PAIS) )
         M->cXml += XmlTag( 'fone', rtrim(CLIENTES->FONE) )
         M->cXml += '</enderDest>'
         M->cXml += XmlTag( 'indIEDest', CLIENTES->ISENTO  )
         M->cXml += XmlTag( 'IE', rtrim(CLIENTES->INSEST)  )
         M->cXml += XmlTag( 'ISUF', rtrim(CLIENTES->SUFRAMA)  )      
         M->cXml += XmlTag( 'IM', rtrim(CLIENTES->INSMUN)  )         
         M->cXml += XmlTag( 'email', rtrim(CLIENTES->EMAIL)  )         
         M->cXml += '</dest>'
      ENDIF
      DBSELECTAREA("PEDIDOS")
RETURN M->cXml
HARBOUR 3.2, HWGUI 2.23 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart
Fernando queiroz
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 737
Data de registro: 12 Nov 2014 23:41
Cidade/Estado: Porto Alegre/RS
Curtiu: 12 vezes
Mens.Curtidas: 58 vezes

ACBr LIB

Mensagempor rubens » 12 Nov 2019 16:07

Obrigado Fernando...
Já uso alguma coisa da SefazClass... tb..
mas gostaria mesmo era ver o uso da ACBR LIB, visto que quase todo o meu fiscal está voltado para ACBRMonitor..

att..

Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Avatar de usuário

rubens
Colaborador

Colaborador
 
Mensagens: 1518
Data de registro: 16 Ago 2003 09:05
Cidade/Estado: Nova Xavantina - MT
Curtiu: 77 vezes
Mens.Curtidas: 104 vezes

ACBr LIB

Mensagempor fladimir » 12 Nov 2019 17:53

Rubens no SVN do ACBr tem 3 classes completas em PRG e tb cada um com um exemplo já funcionando.

Já tem para NFe, NFCe, SAT e Boleto e não olhei hj mas parece q já ia sair tb de CTe e MDFe
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar de usuário

fladimir
Colaborador

Colaborador
 
Mensagens: 2434
Data de registro: 15 Nov 2006 19:21
Curtiu: 28 vezes
Mens.Curtidas: 157 vezes

ACBr LIB

Mensagempor rubens » 12 Nov 2019 18:31

Boa tarde..

Tem sim Fladimir... até do boleto já tem...
Mas foi eu mesmo que não consegui compilar por isso tô atrás d um exemplo mais simples...
Mas vou tentando... com a LIB vira outra coisa né... porque não precisa instalar acbrmonitor... não limita a máquina que o ACBR tá instalado e rodando...

vlw..

Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Avatar de usuário

rubens
Colaborador

Colaborador
 
Mensagens: 1518
Data de registro: 16 Ago 2003 09:05
Cidade/Estado: Nova Xavantina - MT
Curtiu: 77 vezes
Mens.Curtidas: 104 vezes

ACBr LIB

Mensagempor lucimauro » 24 Nov 2019 10:59

@Rubens você usa harbour ?

Qual seu o erro na compilação?
lucimauro
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 448
Data de registro: 21 Set 2004 21:02
Cidade/Estado: Sobral-CE
Curtiu: 15 vezes
Mens.Curtidas: 19 vezes

ACBr LIB

Mensagempor rubens » 25 Nov 2019 10:26

Bom dia @Lucimauro,

Consegui compilar o exemplo que vem junto. Gerou o executável ACBRNFEDEMO.EXE
Mas quando tento executar retorna o erro da imagem em anexo.
Erro acbrdll.PNG

A DLL está na pasta do executável. Daí como é classe, é praticamente impossível descobrir o erro.
O Ideal seria um programa simples, tipo imprimenfe, daí se der erro fica mais fácil de descobrir e mais fácil de estudar, uma coisa de cada vez.

Att,

Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Avatar de usuário

rubens
Colaborador

Colaborador
 
Mensagens: 1518
Data de registro: 16 Ago 2003 09:05
Cidade/Estado: Nova Xavantina - MT
Curtiu: 77 vezes
Mens.Curtidas: 104 vezes

ACBr LIB

Mensagempor MSDN » 25 Nov 2019 11:26

Rubens,

De onde vc baixou os arquivos de exemplo ?
MSDN
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 741
Data de registro: 28 Nov 2003 14:55
Cidade/Estado: CWB
Curtiu: 178 vezes
Mens.Curtidas: 123 vezes

ACBr LIB

Mensagempor JoséQuintas » 25 Nov 2019 11:28

rubens escreveu:A DLL está na pasta do executável. Daí como é classe, é praticamente impossível descobrir o erro.


Não é impossível.
Provavelmente só tem um único lugar aonde carrega a DLL.
E tenho quase certeza de que precisa ter outras DLLs instaladas pra essa funcionar.
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: 18008
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

ACBr LIB

Mensagempor JoséQuintas » 25 Nov 2019 11:37

acbr.png
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: 18008
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

ACBr LIB

Mensagempor fladimir » 25 Nov 2019 11:40

Como o Quintas mostrou, tem q ver se as dependencias da DLL (na pasta do projeto tem) estão na pasta do EXE e tem 2 tipos de Dlls, se não der com 1 tenta com a outra.
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar de usuário

fladimir
Colaborador

Colaborador
 
Mensagens: 2434
Data de registro: 15 Nov 2006 19:21
Curtiu: 28 vezes
Mens.Curtidas: 157 vezes

ACBr LIB

Mensagempor JoséQuintas » 25 Nov 2019 11:47

O que mata o ACBR é isto: deveriam acabar com tudo isso na versão LIB.

acbr2.png
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: 18008
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 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 8 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