ACBr LIB

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
Nascimento
Usuário Nível 4
Usuário Nível 4
Mensagens: 763
Registrado em: 19 Jul 2008 12:11
Localização: OLINDA-PE

ACBr LIB

Mensagem por Nascimento »

"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 do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

ACBr LIB

Mensagem por JoséQuintas »

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 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
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

ACBr LIB

Mensagem por fladimir »

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 do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

ACBr LIB

Mensagem por rubens »

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ê ???"
Fernando queiroz
Usuário Nível 4
Usuário Nível 4
Mensagens: 779
Registrado em: 13 Nov 2014 00:41
Localização: Porto Alegre/RS

ACBr LIB

Mensagem por Fernando queiroz »

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

Código: Selecionar todos

***************************************************************************************
* 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

Código: Selecionar todos

		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

Código: Selecionar todos

*************************************
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
Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

ACBr LIB

Mensagem por rubens »

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 do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

ACBr LIB

Mensagem por fladimir »

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 do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

ACBr LIB

Mensagem por rubens »

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ê ???"
lucimauro
Usuário Nível 3
Usuário Nível 3
Mensagens: 465
Registrado em: 21 Set 2004 21:02
Localização: Sobral-CE

ACBr LIB

Mensagem por lucimauro »

@Rubens você usa harbour ?

Qual seu o erro na compilação?
Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

ACBr LIB

Mensagem por rubens »

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ê ???"
MSDN
Usuário Nível 4
Usuário Nível 4
Mensagens: 741
Registrado em: 28 Nov 2003 15:55
Localização: CWB
Contato:

ACBr LIB

Mensagem por MSDN »

Rubens,

De onde vc baixou os arquivos de exemplo ?
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

ACBr LIB

Mensagem por JoséQuintas »

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 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

ACBr LIB

Mensagem por JoséQuintas »

acbr.png
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
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

ACBr LIB

Mensagem por fladimir »

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 do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

ACBr LIB

Mensagem por JoséQuintas »

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 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/
Responder