Jump to content

dev botao

Dificuldades em Carregar componente ACBrCTE e gerar XML


Go to solution Solved by Italo Giurizzato Junior,
  • Este tópico foi criado há 347 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro
Posted

Boa noite,  sou bem limitado com programação, e tenho tido dificuldades em carregar os dados do componente  e gerar XML.

Estou tentando gerar o XML para poder validar, transmitir no sistema na receita (até que eu não termine o meu)

fiz esse procedimento:

 

procedure TFRM_CteNEW.exportar_txtClick(Sender: TObject);
begin


  F_DM.ACBrCTe1.Conhecimentos.Clear;

  F_DM.ACBrCTe1.Conhecimentos.Add.CTe.infCTe.versao := 4.0;
  F_DM.ACBrCTe1.Conhecimentos.Add.CTe.Ide.cUF    := 0125 ; // UFtoCUF(edtEmitUF.Text);
  F_DM.ACBrCTe1.Conhecimentos.Add.CTe.Ide.CFOP   := 6932;

  F_DM.ACBrCTe1.Conhecimentos.Add.CTe.Emit.CNPJ              := IBQ_EMIT.FieldByName('CNPJ').AsString; // Trim(edtEmitCNPJ.Text);
  F_DM.ACBrCTe1.Conhecimentos.Add.CTe.Emit.IE                := IBQ_EMIT.FieldByName('INSCRICAO').AsString; // Trim(edtEmitIE.Text);
  F_DM.ACBrCTe1.Conhecimentos.Add.CTe.Emit.xNome             := Trim( IBQ_EMIT.FieldByName('RAZAO_SOCIAL').AsString ) ; // Trim(edtEmitRazao.Text);
  F_DM.ACBrCTe1.Conhecimentos.Add.CTe.Emit.xFant             := Trim( IBQ_EMIT.FieldByName('RAZAO_SOCIAL').AsString ) ; // Trim(edtEmitFantasia.Text);
  F_DM.ACBrCTe1.Conhecimentos.Add.CTe.Emit.enderEmit.xLgr    := Trim( IBQ_EMIT.FieldByName('ENTR_END').AsString );
  F_DM.ACBrCTe1.Conhecimentos.Add.CTe.Emit.enderEmit.nro     := Trim( IBQ_EMIT.FieldByName('ENTR_NUM').AsString );
  F_DM.ACBrCTe1.Conhecimentos.Add.CTe.Emit.enderEmit.xCpl    := Trim( IBQ_EMIT.FieldByName('ENTR_COMPL').AsString );
  F_DM.ACBrCTe1.Conhecimentos.Add.CTe.Emit.enderEmit.xBairro := Trim( IBQ_EMIT.FieldByName('ENTR_BAIRRO').AsString );
  F_DM.ACBrCTe1.Conhecimentos.Add.CTe.Emit.enderEmit.cMun    := StrToInt( IBQ_EMIT.FieldByName('ENTR_CODMUN').AsString );
  F_DM.ACBrCTe1.Conhecimentos.Add.CTe.Emit.enderEmit.xMun    := Trim( IBQ_EMIT.FieldByName('ENTR_MUN').AsString );

    {Informações do Responsável Técnico pela emissão do DF-e}
    F_DM.ACBrCTe1.Conhecimentos.Add.CTe.infRespTec.xContato := '';
    F_DM.ACBrCTe1.Conhecimentos.Add.CTe.infRespTec.email    := '';
    F_DM.ACBrCTe1.Conhecimentos.Add.CTe.infRespTec.fone     := '';


    F_DM.ACBrCTe1.Conhecimentos.Items[0].GravarXML();

 

*** Carreguei todos os campos, só coloquei alguns aqui como exemplo para não ficar extenso.. mas em resumo:  

F_DM.ACBrCTe1.Conhecimentos.Clear;

F_DM.ACBrCTe1.Conhecimentos.Add.CTe. (todos os campos)

F_DM.ACBrCTe1.Conhecimentos.Items[0].GravarXML();

 

Porem, ele gera o XML conforme anexo (sem informações nenhumas)

 

podem me auxiliar e dizer se falta alguma informação??

 

 

obrigado

 

 

00991200000000000000570000000000001010196460-cte.xml 00991200000000000000570000000000001098568326-cte.xml

  • Consultores
  • Solution
Posted

Bom dia @PHCASTANHO,

Isso aqui esta errado:

  F_DM.ACBrCTe1.Conhecimentos.Add.CTe.infCTe.versao := 4.0;
  F_DM.ACBrCTe1.Conhecimentos.Add.CTe.Ide.cUF    := 0125 ; // UFtoCUF(edtEmitUF.Text);
  F_DM.ACBrCTe1.Conhecimentos.Add.CTe.Ide.CFOP   := 6932;
  (...)

 

O correto é:

With F_DM.ACBrCTe1.Conhecimentos.Add.CTe do
begin
  infCTe.versao := 4.0;
  Ide.cUF    := 0125 ; // UFtoCUF(edtEmitUF.Text);
  Ide.CFOP   := 6932;
  (...)
end;

Cada ADD executado o componente entende que você deseja adicionar mais um item (CT-e) a lista.

Outra coisa de onde você tirou o código 0125 ?

Todas as UF possuem um código IBGE formado por 2 dígitos.

Por favor estude o programa exemplo do componente, tenha em mãos os manuais do CT-e, caso contrario você não vai sair do lugar.

  • Like 1
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

  • Membros Pro
Posted (edited)

Italo, bom dia, 

 

Obrigado pelo rápido retorno;

Este código já estava no exemplo, e não alterei para primeiro testar a alimentação do componente.

Com sua orientação o XML já foi carregado com as informações;

 

Se puder me auxiliar em mais uma orientação;  todos os campos que tem esses nomes estão dando como não declarada:  

tiRetrato;
teNormal;
taHomologacao;

mdRodoviario;
tsTranspValores;
inContribuinte;
 

 

Eu preciso aplicar algum comando para criar essas variaveis, ou carregar de algum lugar??

o restante está ficando bala.... segue novo XML

 

 

image.thumb.png.a7204a71fb2edfd4876c2d9669e9faba.png

25240215005858000116570010000000011000000016-cte.xml

eu acredito que preciso puxar do meu banco de dados, e estes sejam apenas nomes de exemplo; mas antes de alterar tudo, achei melhor perguntar :)

Edited by PHCASTANHO
  • Moderadores
Posted
4 horas atrás, PHCASTANHO disse:

Italo, bom dia, 

 

Obrigado pelo rápido retorno;

Este código já estava no exemplo, e não alterei para primeiro testar a alimentação do componente.

Com sua orientação o XML já foi carregado com as informações;

 

Se puder me auxiliar em mais uma orientação;  todos os campos que tem esses nomes estão dando como não declarada:  

tiRetrato;
teNormal;
taHomologacao;

mdRodoviario;
tsTranspValores;
inContribuinte;
 

 

Eu preciso aplicar algum comando para criar essas variaveis, ou carregar de algum lugar??

o restante está ficando bala.... segue novo XML

 

 

image.thumb.png.a7204a71fb2edfd4876c2d9669e9faba.png

25240215005858000116570010000000011000000016-cte.xml 3.84 kB · 1 download

eu acredito que preciso puxar do meu banco de dados, e estes sejam apenas nomes de exemplo; mas antes de alterar tudo, achei melhor perguntar :)

sim são enumeradores. que tu deve guardar no seu banco quando fizer o cadastro do conhecimento

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

  • Membros Pro
Posted

Juliomar, obrgiado pelo retorno, aos poucos consegui me identificar aqui.  porém, travaram algumas informações:

a chave está dando como nao identificada.

 

e alguns campos que vou te relatar aqui com erro semelhante:

infCTeNorm.infCarga.InfQ.cUnid := uKg;
infCTeNorm.infCarga.InfQ.tpMed  := 'Kg';

infCTeNorm.infDoc.InfNFE.chave := ''     ( deixei com aspas, mas vou puxar ela do meu banco de dados)

    with vPrest.comp.New do
    begin
      vPrest.xNome := 'DFRNER KRTJ';     -> estes dois, mesmo erro...
      vPrest.vComp := 100.00;
    end;

 

Se puder me direcionar sobre estas falhas, eu agradeço.

 

 

 

image.thumb.png.1861174380dc43a2b0225274b35bcbd9.png

  • Membros Pro
Posted

completo não, muita coisa tenho dificuldade de interpretar, com o exemplo tive mais facilidade de adequar. mas de qualquer forma, eu vou ler novamente e tentar encontrar esses erros no manual.

  • Consultores
Posted

Bom dia @PHCASTANHO,

Complementando o que o @Juliomar Marchetti já lhe passou.

Você deve ter notado que alguns campos ao serem alimentados eles não são alimentados com um numero ou um string e sim com algo que chamamos de enumerados.

Exemplos:

tiRetrato;
teNormal;
taHomologacao;

mdRodoviario;
tsTranspValores;
inContribuinte;

Na unit que você tem a rotina que alimenta o componente com os dados do CTe, em uses devemos declarar a unit que contem a definição desses enumerados.

Exemplo:

uses
  pcnConversao, pcnConversaoCTe;

Alguns enumerados estão definidos na unit pcnConversao e outros em pcnConversaoCTe.

Como você esta usando o componente ACBrCTe tente informar somente o pcnConversaoCTe, se o Delphi reclamar a ausência de definição de mais algum enumerado, você declara também o pcnConversao.

  • Like 1
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

  • Membros Pro
Posted

Bom dia amigo… obrigado pelo retorno … depois de ler exemplos, pouco do manual, etc, notei e consegui gerar o xml… obrigado por enquanto !! 

  • Este tópico foi criado há 347 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.

The popup will be closed in 10 seconds...