Exportando relatorios para o Excel com delphi

Delphi

28/04/2012

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

Curtidas 0

Respostas

Bruno Leandro

Bruno Leandro

28/04/2012

voce precisa debugar o codigo, mas parece ser no J + 2
GOSTEI 0
Carlos Faria

Carlos Faria

28/04/2012

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
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

28/04/2012

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.
GOSTEI 0
POSTAR