![]() |
|
#1
|
|||
|
|||
![]() Народ! делаю отчет с интервалом времени. при выводе в эксель выходят только названия столбцов. сама таблица пустая. В чем может быть проблема?
Код:
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, данные выводятся |