Jump to content

Assista click.png tectoy.png

C6 chamada_c6.png botao.png

Erro Cc-E List Index Out Of Bounds


  • Este tópico foi criado há 3009 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro

Estou com a versao 2.00 do compontente CTe

 

e estou usando carta de correcao.

 

 

procedure TForm_CTe.Button1Click(Sender: TObject);
var
  chave:string;
begin
   //Testado


 ClientDataSet1.First;
 If ClientDataSet1Campo.Text='' then
 begin
   MessagemH(1,'Sem correções !');
   Abort;
 end;



 OpenDialog1.Title := 'Selecione o CTe';
 OpenDialog1.DefaultExt := '*-cte.xml';
 OpenDialog1.Filter := 'Arquivos CTe (*-cte.xml)|*-cte.xml|Arquivos XML (*.xml)|*.xml|Todos os Arquivos (*.*)|*.*';
 OpenDialog1.InitialDir := ACBrCTe1.Configuracoes.Geral.PathSalvar;

 if OpenDialog1.Execute then
  begin
   chave:= Copy(  ExtractFileName( OpenDialog1.FileName ) , 0 , 44);


      ACBrCTe1.EventoCTe.idLote := StrToInt( '1' );

      ACBrCTe1.EventoCTe.Evento.Clear;
      With ACBrCTe1.EventoCTe.Evento.Add Do
      Begin
         InfEvento.chCTe                 := chave;
         infEvento.cOrgao                := StrToInt( edtCodUF.Text );
         infEvento.CNPJ                  := edtEmitCNPJ.Text;
         infEvento.tpEvento              := teCCe;
         infEvento.nSeqEvento            := 1;
         infEvento.dhEvento              := Now;;
         infEvento.versaoEvento          := '1.00';
         infEvento.detEvento.xCondUso    := '';


         infEvento.detEvento.descEvento := 'Carta de Correcao';
         infEvento.detEvento.xCondUso   := 'A Carta de Correcao e disciplinada pelo Art. 58-B do CONVENIO/SINIEF 06/89: '+
         'Fica permitida a utilizacao de carta de correcao, para regularizacao de erro ocorrido na emissao de documentos '+
         'fiscais relativos a prestacao de servico de transporte, desde que o erro nao esteja relacionado com: I - as '+
         'variaveis que determinam o valor do imposto tais como: base de calculo, aliquota, diferenca de preco, quantidade,'+
         ' valor da prestacao;II - a correcao de dados cadastrais que implique mudança do emitente, tomador, remetente ou do'+
         ' destinatario;III - a data de emissao ou de saida.';


         infEvento.detEvento.infCorrecao.Clear;





         ClientDataSet1.First;
         while not ClientDataSet1.Eof do
         begin


             With infEvento.detEvento.infCorrecao.Add Do
             Begin
                //grupoAlterado := 'ide';
                //campoAlterado := 'CFOP';
                //valorAlterado := '5352';

                grupoAlterado := 'compl';
                campoAlterado := 'xObs';
                valorAlterado := 'TESNTANDO OBS';

                //grupoAlterado := CCeCampos(1, ClientDataSet1Campo.Text );
                //campoAlterado := CCeCampos(2, ClientDataSet1Campo.Text );
                //valorAlterado := ClientDataSet1Valor.Text;


             End;



            ClientDataSet1.Next;
         end;






      End;

      ACBrCTe1.EnviarEventoCTe( 1 );

  end;

end;

 

 

 

O Erro

sabendo que ja vi este post

e baixei

http://www.cte.fazenda.gov.br/listaConteudo.aspx?tipoConteudo=0xlG1bdBass=

Schemas XML CT-e - Pacote de Liberação 2.00 (ZIP) - (NT 2013.013) - CORREÇÃO

post-4970-0-85168500-1393348398_thumb.jp

Edited by hetoandrade
Link to comment
Share on other sites

  • Membros Pro

Na verdade os erros é porque

estavo tentando fazer a carta de correcao em um xml 1.04

atualizei acbr para cte 2.0

fis um cte com xml 2.0

 

blz fez certinho a carta e recebeu a resposta ok

 

so que agora é quando imprimir , que dizer imprimir evento.

 

da este erro (imagem)

 

e ai esta os xml,

 

 

tenei usar isso, mais de uma alteracao deu erro

List index out of bounds

, pode ter mais de uma alteracao

ou um di cada vez.

 

         ClientDataSet1.First;
         while not ClientDataSet1.Eof do
         begin


             With infEvento.detEvento.infCorrecao.Add Do
             Begin

                grupoAlterado := CCeCampos(1, ClientDataSet1Campo.Text );
                campoAlterado := CCeCampos(2, ClientDataSet1Campo.Text );
                valorAlterado := ClientDataSet1Valor.Text;


             End;



            ClientDataSet1.Next;
         end;

51140209911489000128570010000011591000011597-cte.xml

5114020991148900012857001000001159100001159711011001-procEventoCTe.xml

post-4970-0-10614300-1393451372_thumb.jp

post-4970-0-64123700-1393452094_thumb.jp

Edited by hetoandrade
Link to comment
Share on other sites

  • Consultores

Boa noite HetoAndrade,

 

Utilizei os seus XML no programa exemplo que utiliza o Quick Report para impressão do DACTE e de Eventos.

 

E o evento foi impresso sem nenhum problema.

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Link to comment
Share on other sites

  • Membros Pro

Oi italo estavo errado ,

na pressa de da certo a carta eletrônica,

quando clicava em Imprimir evento eu mirava pro 2 xml da cte

e nao 1 do cte e outra do xml do evento. foi mal.

 

mais so pra fica louco, hoje de manha to tentando fazer outra carta de correcao em outra cte que fis hoje,

e por incrível que pareca deu esse erro, sabendo que nao mudei nada e ontem a noite eu fis carta correcao .

 

 

Esse é o codigo que usei ontem

 

 

 

 

 

procedure TForm_CTe.Button1Click(Sender: TObject);
var
  chave:string;
  numero:Integer;
begin
 //Testado


 ClientDataSet1.First;
 If ClientDataSet1Campo.Text='' then
 begin
   MessagemH(1,'Sem correções !');
   Abort;
 end;



 OpenDialog1.Title := 'Selecione o CTe';
 OpenDialog1.DefaultExt := '*-cte.xml';
 OpenDialog1.Filter := 'Arquivos CTe (*-cte.xml)|*-cte.xml|Arquivos XML (*.xml)|*.xml|Todos os Arquivos (*.*)|*.*';
 OpenDialog1.InitialDir := ACBrCTe1.Configuracoes.Geral.PathSalvar;

 if OpenDialog1.Execute then
  begin
   chave:= Copy(  ExtractFileName( OpenDialog1.FileName ) , 0 , 44);


      ACBrCTe1.EventoCTe.idLote := StrToInt( '1' );

      ACBrCTe1.EventoCTe.Evento.Clear;
      With ACBrCTe1.EventoCTe.Evento.Add Do
      Begin
         InfEvento.chCTe                 := chave;
         infEvento.cOrgao                := StrToInt( edtCodUF.Text );
         infEvento.CNPJ                  := edtEmitCNPJ.Text;
         infEvento.tpEvento              := teCCe;
         infEvento.nSeqEvento            := 1;
         infEvento.dhEvento              := Now;;


         numero:=0;

         infEvento.detEvento.infCorrecao.Clear;

         ClientDataSet1.First;
         while not ClientDataSet1.Eof do
         begin


             With infEvento.detEvento.infCorrecao.Add Do
             Begin

                numero:= numero + 1;

                grupoAlterado := 'compl';
                campoAlterado := 'xObs';
                valorAlterado := 'TESTANDO CAMPO ALTERADO OBS';
                nroItemAlterado := numero;


             End;



            ClientDataSet1.Next;
         end;



      End;


      memoLog.Text:='';

      IF MessagemSimouNao(4,'Confirma ( '+chave+' ) ?')=True then
      ACBrCTe1.EnviarEventoCTe( 1 );

  end;

end;
 

post-4970-0-64241700-1393506647_thumb.jp

post-4970-0-76861700-1393506650_thumb.jp

Edited by hetoandrade
Link to comment
Share on other sites

  • Membros Pro

Estou criando outro post para fica bem diferenciado,

nao fis nada ate agora esperando uma posição sua , nada mesmo,

nao mudei schelmas nem executavel,

 

o caso é neste estante as 15:53 em MT,

fis uma carta de correcao e tudo ok, (vou fica louco)

 

sabendo que onte a noite tambem consegui fazer,

ja hoje de manha tava dando este erro acima no post anteriro.

 

e agora ja fis mais de 6 cc-e e tudo ok.

 

acho que ta tudo ok agora vou testa mais a tarde  e a noite.

Link to comment
Share on other sites

  • Consultores

Boa noite HetoAndrade,

 

Lembre-se que a versão 2.00 do CT-e, bem como o WebService de recepcioar eventos é novo, logo é de se esperar instabilidade por parte das SEFAZ.

 

Se você emite uma CC-e e funciona e no dia seguinte não, sendo que não houve alteração no seu código e nem no código do compoenente, conclui-se que o problema é a SEFAZ.

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Link to comment
Share on other sites

×
×
  • 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.