Fórum Exportando relatorios para o Excel com delphi #415994

28/04/2012

0

Ola Galera
Alguem poderia me ajudar.
O que ha de errado no codigo abaixo , se no meu select eu trouxer somente 3 registros da tudo certo se for mais de 3 list index out of bounds (3)
Desde já agradeço



procedure TForm1.ExportaExcel(dataset: tdataset);
var
J, I: Integer;
MsExcel: Variant;
begin
MsExcel := CreateOleObject(Excel.Application);
MsExcel.workbooks.add;

for I := 0 to dataset.Fields.Count - 1 do
begin
MsExcel.Activesheet.cells[1, I + 1].value := dataset.Fields[I].DisplayLabel;
MsExcel.Activesheet.cells[1, I + 1].font.bold := true;
MsExcel.Activesheet.cells[1, I + 1].interior.color := ColorToRGB(clYellow);
MsExcel.Activesheet.cells[1, I + 1].borders.linestyle := 1;

end;
dataset.First;
for J := 0 to dataset.RecordCount - 1 do
begin
for I := 0 to dataset.RecordCount - 1 do
begin
MsExcel.Activesheet.cells[j + 2, i + 1].value := dataset.Fields[I].AsString;
MsExcel.Activesheet.cells[j + 2, i + 1].interior.color := ColorToRGB(clInfoBk);

end;
dataset.Next;

end;

MsExcel.Visible := true;

end;
Carlos Faria

Carlos Faria

Responder

Posts

28/04/2012

Bruno Leandro

voce precisa debugar o codigo, mas parece ser no J + 2
Responder

Gostei + 0

14/05/2012

Carlos Faria

Olá amigo esse erro eu já corrigi agora ficou pior se a data e menor que 14/05/2012 exemplo o formato muda para mm/dd/yyyy se é igual ou maior que 14/05/2012 ai sim vem no padrão de data português do brasil
Responder

Gostei + 0

14/05/2012

Joel Rodrigues

Esse segundo loop está certo? Você está lendo duas vezes a quantidade de registros. Nâo seria a quantidade de colunas no loop interno?
for I := 0 to dataset.ColumnCount do


Veja se é possível já trazer a data do banco no formato desejado. Deve haver alguma função no banco para isso.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar