Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 22.10.2015, 00:09
kucher kucher вне форума
Прохожий
 
Регистрация: 16.09.2015
Сообщения: 15
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Экспорт Отчётов в Excel из ADOQuery

МОЖЕТ КТО_НИБУДЬ СТАЛКИВАЛСЯ!
имеется такой код для создания отчётов чисто по таблице!
а как сделать универсальный (ЕСЛИ ЭТО ВООБЩЕ ВОЗМОЖНО) экспорт отчётов по ЗАПРОСАМ 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;
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 21:11.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter