Rave Reports – отчёт из DBGrid в PDF-формат

Для начала несколько слов для тех, кто с генератором отчетов Rave Reports работает впервые. Расшифровывается RAVE как (Report Authoring Visual Environment). Это отдельный от Delphi программный продукт, разработанный Nevrona Designs

Для того, чтобы была возможность генерировать отчет во время выполнения программы, один из вариантов – необходимо предварительно создать структуру (проект) отчета и сохранить ее в файл формата .rav. Далее, в процессе работы вся информация, которую вы вносите в базу данных (удаляете, редактируете) легко может быть представлена в форматах (PDF, HTML, RTF, TEXT) при использовании уже созданного проекта отчетов.
В нашем примере мы рассмотрим последовательность действий, необходимых для создания проекта отчета и последующего вывода данных из базы .xml, отображаемых в DBGrid в формате PDF.

1. Создаем new Delphi Win32 application и сохраняем в папку проекта, к примеру в С:\RaveExample.
2. Рассмотрим пример работы с базой данных EMPLOYEE.XML, файл находится здесь: (C:\Program Files\Common Files\CodeGear Shared\Data\EMPLOYEE.XML). Копируем его в папку нашего проекта С:\RaveExample.
3. Помещаем на форму компонент tClientDataSet (вкладка Data Access)
4. Устанавливаем значение FileName – С:\RaveExample\Employee.xml
5. Помещаем на форму компонент tDataSource (вкладка Data Access) и устанавливаем свойство DataSet равным ClientDataSet1.
6. Помещаем на форму компонент tDbGrid (вкладка Data Controls) и устанавливаем свойство DataSource равным DataSource1.
7. Устанавливаем свойство Active компонента tClientDataSet в True. В DBGrid отображается база Employee.xml.
8. Помещаем на форму компонент tRvProject (вкладка Rave).

9. Помещаем на форму компонент tRvDatasetConnection (вкладка Rave) и устанавливаем значение DataSet равным ClientDataset1.
Для создания отчета будем использовать Rave Designer. Для запуска сделаем двойной щелчок на компоненте tRvProject. Откроется окно Rave Designer.
10. Выбираем “File | New Data Object”

11. В появившемся окне выбираем “Direct Data View” и нажимаем “Next“.
12. Далее появляется окно с RvDatasetConnection1, выбираем и нажимаем “Finish“.
13. Делаем двойной щелчок на “DataViewDictionary” (панель справа). Открывается DataVeiw1, в котором описаны все поля базы.

Теперь займемся построением отчета.
1. В RaveReports на верхней панели выберем вкладку Report и поместим компонент Region Component по центру планируемого отчета (растянем его по ширине листа, именно в нем будут отображаться данные базы).
2. Выбираем компонент DataBand (вкладка Report) и помещаем его на
компонент Region1.
3. В Инспекторе объектов устанавливаем:
DataView – DataView1
BandStyle – в открывшемся окне устанавливаем флажок на Detail и
нажимаем Ok.
4. На панели справа щелкаем на DataView1 (чтобы открыть список полей).
5. При зажатой кнопке CTRL переносим поля на узкую белую полоску DataBand.
Вкладка PageDesigner должна выглядеть следующим образом:

6. Нажимаем F9 для просмотра. Открывается окно “Output Options“, выбираем “Preview” и щелкаем Ok

7. Закрываем окно просмотра, заходим в меню File и сохраняем наш отчет в .Rav файл. В папку нашего проекта С:\RaveExample. Назовем файл Employee.rav.

Теперь мы можем закрыть программу Rave Reports.
Создаем отчет в формате PDF
1. Помещаем на форму компонент tRvSystem (вкладка Rave)
2. Устанавливаем свойство DefaultDest в rdFile.
3. В свойстве SystemSetups, ssAlowSetup установим в False.
4. В RvProject1 свойство Engine устанавливаем в RvSystem1.
5. В ProjectFile выбираем Employee.rav.
6. Помещаем на форму компонент tRvRenderPDF.
7. Помещаем на форму компонент TButton и в обработчике событий OnClick записываем следующий код:

procedure TForm1.Button1Click(Sender: TObject);
begin
// сохраняем Employee_report.pdf в текущую папку
with RvSystem1 do
begin
DoNativeOutput:= False;
RenderObject:= RvRenderPDF1;
OutputFileName:= 'Employee_report.pdf';
end;
RvProject1.Execute;

// Открываем Employee_report.pdf
begin
ShellExecute(Handle, 'open', 'c:\RaveExample\Employee_report.pdf', nil,
nil, SW_SHOWNORMAL);
end;
end;

Файл ‘Employee_report.pdf’ будет сохранен в текущую папку проекта. Не забудьте добавить в Uses модуль ShellApi

Скачать проект RaveExample.zip

Первоисточник: DelphiCode 07.09.2008 – Miyusov Sergey

Comments are closed.