МОЖЕТ КТО_НИБУДЬ СТАЛКИВАЛСЯ!
имеется такой код для создания отчётов чисто по таблице!
а как сделать универсальный (ЕСЛИ ЭТО ВООБЩЕ ВОЗМОЖНО) экспорт отчётов по ЗАПРОСАМ ADOQuery
ВОТ САМ КОД
Код:
procedure TfMain.Button9Click(Sender: TObject);
Var
XLApp,Sheet,Colum:Variant;
index,i:integer;
begin
XLApp:=CreateOLEObject('Excel.Application'); //Строка создаёт объект Excel и записывает его в переменную
XLApp.Visible:=true; //объект видимый EXcel
XLApp.Workbooks.Add(-4167); //Excel состоит из книг (страниц), которые мы добавляем.
//Число - константа, менять нельзя
//Функция, которая создаёт OLE-объекты позволяет наладить связь с другим приложением
XLApp.Workbooks[1].WorkSheets[1].Name:='Отчёт';
Colum:=XLApp.Workbooks[1].WorkSheets['Отчёт'].Columns;
//Ширина столбцов
Colum.Columns[2].ColumnWidth:=30;
Colum.Columns[3].ColumnWidth:=20;
Colum.Columns[4].ColumnWidth:=20;
Colum.Columns[5].ColumnWidth:=20;
Colum.Columns[6].ColumnWidth:=20;
Colum:=XLApp.Workbooks[1].WorkSheets['Отчёт'].Rows; //Переносим указатель на строки
Colum.Rows[2].Font.Bold:=true; //Меняется шрифт
Colum.Rows[1].Font.Bold:=true;
Colum.Rows[1].Font.Color:=clRed; //Цвет строки
Colum.Rows[1].Font.Size:=14; //Размер шрифта
Sheet:=XLApp.Workbooks[1].WorkSheets['Отчёт']; //Указатель на лист
Sheet.Cells[1,2]:='Заказы'; // Название таблицы
Sheet.Cells[2,1]:='ИдКлиента';
Sheet.Cells[2,2]:='ИдТовара'; //Шапка таблицы
Sheet.Cells[2,3]:='ДатаЗаказа';
Sheet.Cells[2,4]:='Срочность';
Sheet.Cells[2,5]:='Колличество';
fDM.TZakaziData.First;
index:=3;
//Цикл для вывода данных таблицы
for i:=0 to fDM.TZakaziData.RecordCount do begin
//Наполнение таблицы
sheet.Cells[index,1]:=fDM.TZakaziData.Fields.Fields[1].AsString;
sheet.Cells[index,2]:=fDM.TZakaziData.Fields.Fields[2].AsString;
sheet.Cells[index,3]:=fDM.TZakaziData.Fields.Fields[3].AsString;
sheet.Cells[index,4]:=fDM.TZakaziData.Fields.Fields[4].AsString;
sheet.Cells[index,5]:=fDM.TZakaziData.Fields.Fields[5].AsString;
Inc(index);
fDM.TZakaziData.Next; //Переход на следующую строку
end; end;