Показать сообщение отдельно
  #1  
Старый 07.10.2013, 15:39
Kis Kis вне форума
Новичок
 
Регистрация: 02.09.2011
Сообщения: 76
Репутация: 11
По умолчанию Отчет по датам

Народ! делаю отчет с интервалом времени. при выводе в эксель выходят только названия столбцов. сама таблица пустая. В чем может быть проблема?

Код:
procedure TDateform.FormShow(Sender: TObject);
begin
adoquery1.Prepared:=true;
adoquery1.Parameters.ParamByName('StartDate').Value:=datetimepicker1.DateTime;
adoquery1.Parameters.ParamByName('enddate').Value:=datetimepicker2.DateTime;
adoquery1.SQL.Add('SELECT * FROM zhalob WHERE date between :startdate AND :enddate ');
adoquery1.Open;
end;

procedure TDateform.BitBtn1Click(Sender: TObject);
begin
   Excel:= CreateOleObject('Excel.Application');
   Excel.Workbooks.Add;
   FData:=VarArrayCreate([1,ADOQuery1.RecordCount+1,1,ADOQuery1.Fields.Count],varVariant);

   for j:=1 to ADOQuery1.Fields.Count do
      FData[1,j]:=ADOQuery1.Fields[j-1].DisplayName;

   ADOQuery1.First;i:=2;
   while not ADOQuery1.Eof do
      begin
         for j:=1 to ADOQuery1.Fields.Count do
            FData[i,j]:=ADOQuery1.Fields[j-1].Value;
         ADOQuery1.Next;i:=i+1;
      end;

   Excel.Range[Excel.Cells[1, 1], Excel.Cells[ADOQuery1.RecordCount+1, ADOQuery1.Fields.Count]].Value:=FData;

   Excel.Range[Excel.Cells[1, 1], Excel.Cells[ADOQuery1.RecordCount+1, ADOQuery1.Fields.Count]].Select;
   Excel.Selection.Borders.LineStyle := 1;
   Excel.Selection.Borders.Weight := 2;
   Excel.Range[Excel.Cells[1, 1], Excel.Cells[1, 1]].Select;


   Excel.Range[Excel.Cells[1, 1], Excel.Cells[1, ADOQuery1.Fields.Count]].Interior.ColorIndex:=16;


   Excel.Columns.AutoFit;
   Excel.Visible:=True;
end;

делаю просто select from szalob, данные выводятся
Ответить с цитированием