Ir para conteúdo
  • Cadastre-se

dev botao

List Index out of bounds(0)


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

Recommended Posts

Bons dias, pessoal !

Estou desenvolvendo uma rotina para emissão de um relatorio, automaticamente, pelo meu aplicativo, com base nos arquivos XML, após uma consulta à base da SEFAZ. Já consegui fazer a maior parte, porem estou me esbarrando com um problema quando tento copiar os arquivos dentro de um determinado periodo para outro subdiretorio. Abaixo está a rotina que estou utilizando. O erro retornado é o citado no cabeçalho do tópico : ListIndex out of bounds (0).

Agradeço por qualquer sugestão que me enviarem.

procedure TFrmRelatorios.Button1Click(Sender: TObject);

var

Contador : Integer;

S, NomeArq, Destino : String;

begin

{ Rotina 1 - Copia todos os arquivos do diretorio/subdiretorios para

um diretorio unico }

ShowMessage ('Por favor aguarde, copiando os arquivos');

// CopiaSSub('C:\Repositorio\', 'D:\XMLs','-nfe.xml');

Application.ProcessMessages;

ShowMessage ('Arquivos copiados com sucesso');

// Essa parte acima está funcionando ok ///

{ Em seguida, verifica a data de criação (emissão da nota) de cada arquivo colocado num ClientDataSet }

///// Obs : o problema ocorre quando eu coloco valores

///// acima de 100 ou mesmo utilizando o .count ...

For Contador := 0 to 100 do // FileListBox1.Items.Count -1 do

begin

FileListBox1.Directory := 'D:\XMLS';

S := '';

S := S + FileListBox1.Items[Contador] ;

FileListBox1.Selected[Contador] := True;

ACBrNFe1.NotasFiscais.Clear;

ACBrNFe1.NotasFiscais.LoadFromFile(S);

ClientDataSet1.Active := True;

ClientDataSet1.Insert;

ClientDataSet1Numero.AsString :=

InttoStr(AcbrNfe1.NotasFiscais.Items[0].NFe.Ide.nNF);

ClientDataSet1Emissao.AsDateTime :=

AcbrNfe1.NotasFiscais.Items[0].NFe.Ide.dEmi;

{ Seleciona por período -- e faz a cópia }

if (ClientDataSet1Emissao.AsDateTime >= StrtoDate(MaskEdit1.Text)) and

(ClientDataSet1Emissao.AsDateTime <= StrtoDate(MaskEdit2.Text)) then

begin

NomeArq := 'D:\XMLs\Teste\' + S;

ACBrNFe1.NotasFiscais.Items[0].SaveToFile(NomeArq);

end;

{Esta rotina confere se todas as notas do intervalo (data inicial

e data final ) estão na pasta }

// ........ falta elaborar a rotina .......

end;

ClientDataSet1.Close;

ClientDataSet1.Active := True;

end;

Link para o comentário
Compartilhar em outros sites

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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.