Если на компьютере установлена программа Microsoft Excel, то отчет может быть легко выведен в окно этой программы.
Положите на форму кнопку и дайте ее свойству Caption значение Вывод отчета в Excel. Ниже положите 3 метки Label и дайте им имена TitleFont, HeaderFont, DataFont. Первый из них потребуется для задания шрифта заголовка отчета, второй - шрифта наименований колонок, третий - шрифта данных таблицы. Установите в них желаемые параметры свойства Font.
Рядом с ними положите два компонента CheckBox (закладка Standard) и дайте им имена Framed и OutDataTime, соответственно. Если в первом из них установлена галочка (свойство Checked), то в отчете данные будут окаймлены рамками. Если во втором будет установлена галочка, то после вывода данных будет указано время создания отчета.
Новый вид формы показан на рис. 7.13.
Рис. 7.13. Форма с элементами создания отчета в Microsoft Excel
Необходимый программный код для работы в Delphi с программой Excel находится в файле KdnExcel. pas, который лежит в папке KdnLib (код разработан автором этого методического материала). Включите KdnExcel в список uses, который содержится в верхней части текста модуля QueryRep. Теперь разрабатываемая программа будет видеть код файла KdnExcel. pas.
Нам потребуется из этого файла одна процедура. Она имеет имя OutReportToExcel (вывести отчет в Excel). Ее заголовок имеет следующий вид
procedure OutReportToExcel (Title: String;
DataSet: TDataSet;
TitleFont,
HeaderFont,DataFont: TFont;
Framed,OutDataTime: boolean);
Здесь
Title - строка заголовка отчета,
DataSet - множество данных для вывода в отчет,
TitleFont - шрифт заголовка отчета,
HeaderFont - шрифт заголовков колонок,
DataFont - шрифт данных,
Framed - следует ли заключать данные в рамки,
OutDataTime: - следует ли выводить время создания отчета.
Создайте для новой кнопки событие OnClick и вставьте в него оператор запуска процедуры вывода отчета в Excel
procedure TfQueryRep.bOutToExcelClick(Sender: TObject);
begin
// если Excel открыт, то закрываем, иначе открываем его и выводим отчет
if ExApp <> Nil then ExcelClose (0) else
// вывод таблицы в Excel
OutReportToExcel ('Пример отчета по запросу',
QuRep, // таблица для вывода в Excel
TitleFont.Font, // шрифт заголовка
HeaderFont.Font, // шрифт заголовков стобцов
DataFont.Font, // шрифт данных
Framed.Checked, // заключать данные в рамки
OutDataTime.Checked // выводить время создания отчета
);
end;
При щелчке на кнопке код работает следующим образом: если окно Excel активно, то оно будет закрыто. Если же оно закрыто, то произойдет вызов процедуры OutReportToExcel с указанными параметрами (назначение каждого параметра содержится в соответствующем комментарии).
Запустите программу, создайте запрос, затем щелкните на новой кнопке. Программа вызовет Excel и выведет туда отчет. Примеры таких отчетов приведены на рис. 7.14. и 7.15.
Рис. 7.14. Фрагмент окно Microsoft Excel после вывода в него отчета по запросу | Рис. 7.15. Фрагмент окна Microsoft Excel с выведенным в него отчетом. Данные заключены в рамки |
Полный программный код модуля QueryRep. pas можно найти здесь.
unit QueryRep;