Стандартного компонента для вывода на печать непосредственно данных TDBGrid в Delphi 10.4 нет. В данной статье будет приведен один из примеров такой реализации. Вот перечень необходимых действий:
Требования
- предварительно установленный пакет компонентов QuickReport 6 (см. здесь).
- предварительно установленная библиотека 'BDE Installer for RAD Studio 10.4 Sydney' (скачать).
Установка
1. Сперва скачаем пакет данного компонента Freeware component TPrintDBGrid – PrnDBGrid.zip.
2. Из .zip архива нам нужны следующие файлы:
PrintDBGrid.dpk,
PrintDBGrid.res,
PrnDBGrid.dcr,
PrnDBGrid.pas
3. Откроем Delphi и в ней откроем File > Open project > PrintDBGrid.dpk. В окне проекта PrintDBGrid.bpl, в разделе Requires, удалим все что там есть
После этого, щелкнем ПКМ на раздел 'Requires' и выберем 'Add reference'. В 'Package name:' вводим rtl > OK, designide > OK.
4. Скачаем отсюда архив 'TeeChartPro_8.06_Src_with_update_XE.zip'. Извлечем из него 2 файла: 'TeeChart Pro 8.06 Source\Sources\QrTee.pas; TeeDefs.inc' и поместим их в одну папку с dpk. (в QrTee.pas при компиляции могут возникать ошибки кода, но они легко устранимы).
5. Откроем в Блокноте поочередно исходники QrTee.pas и PrnDBGrid.pas, в секциях uses изменим объявления к:
TeeProcs > VclTee.TeeProcs,
TeEngine > VclTee.TeEngine,
Chart > VclTee.Chart,
TeCanvas > VclTee.TeCanvas,
DBChart > VclTee.DBChart,
TeeConst > VclTee.TeeConst
6. В поиск Delphi добавим пути. Выберем меню Tools-Options-Language-Delphi-Library > Library path > Обзор > Обзор:
C:\Program Files (x86)\Embarcadero\Studio\21.0\source\ToolsAPI
C:\Users\username\Documents\Embarcadero\Studio\21.0\MyComponents\prndbgrid (путь к папке с нашим компонентом).
7. Все готово. Теперь ПКМ на PrintDBGrid.bpl и выбрать 'Compile' затем 'Install'. В палитре компонентов в 'Data Controls' появится новый компонент TPrintDBGrid.
Использование
-На форму добавим объект PrintDBGrid1.
-В секцию uses добавим: PrnDBGrid, System.UITypes.
-Выберем меню 'Project – Options – Building – Delphi Compiler'.
-В 'Unit output directory' выберем 'Обзор' (…) и укажем папку '\Win32\Debug' нашего проекта, т.к. среда не может компилировать в Program Files (x86) файлы
В объектном инспекторе, в свойствах PrintDBGrid1 назначим:
DBGrid: DBGrid1
Setup: psPreview
В коде пишем:
procedure ...;
begin
PrintDBGrid1.Execute;
end;
Компилируем проект, если успешно, то мы все сделали правильно. На этом все, удачной работы. Вопросы оставляйте в комментариях.