Программно создаём отчёты через Rave Reports

В примере рассмотрим работу с базой ACCESS, используя техногологию ADO

1. Создаем новый проект Delphi Win32 application и сохраняем в папку проекта, к примеру в С:\RaveExample.
2. Рассмотрим пример работы с базой данных dbdemos.mdb, файл находится здесь: (C:\Program Files\Common Files\CodeGear Shared\Data\dbdemos.mdb). Копируем его в папку нашего проекта С:\RaveExample.

3. Далее создаем форму и помещаем на нее следующие компоненты:
TADOConnection (вкладка dbGo)
TADOTable (вкладка dbGo)
TDataSource (вкладка Data Access)
TDBGrid (вкладка Data Controls)
TRvSystem (вкладка Rave)
TRvDataSetConnection (вкладка Rave)

4. Устанавливаем следующие свойства для компонентов:
ADOConnection1
Свойство Provider – выбираем Microsoft.Jet.OLEDB.4.0
Свойство LoginPrompt – устанавливаем False
Свойство ConnectionString – выбираем Use connection string, нажимаем Build..,
выбираем провайдер Microsoft.Jet.OLEDB.4.0, нажимаем Далее, выбираем файл
базы данных dbdemos.mdb. Проверяем подключение и нажимаем Ok.

ADOTable1
Свойство Connection – выбираем ADOConnection1
Свойство TableName – из выпадающего списка выбираем “employee”

DataSource1
Свойство DataSet – выбираем ADOTable1

DBGrid1
Свойство DataSource – выбираем DataSource1
Делаем двойной щелчок на компоненте DBGrid1, в появившемся окне нажимаем
кнопку Add New. Выбираем 0-TColumn и устанавливаем свойство FieldName равным
EmpNo. Аналогично добавляем все колонки таблицы.

ADOTable1 Свойство Active – устанавливаем в True. Таблица отобразится следующим образом.

TRvDataSetConnection1
Свойство DataSet – выбираем ADOTable1

TRvSystem1
В обработчике событий OnPrint запишем следующий код:

procedure TForm1.RvSystem1Print(Sender: TObject);
begin
with Sender as TBaseReport do
begin
NewLine;
SetFont('Arial',18);
FontColor := clBlue;
Print(' Employee - Rave Report');
NewLine;
NewLine;
ClearTabs;

SetTab(0.5, pjLeft, 1.0, 0, 0, 0);
SetTab(1.0, pjLeft, 2.0, 0, 0, 0);
SetTab(2.0, pjLeft, 2.0, 0, 0, 0);
SetTab(3.0, pjLeft, 2.0, 0, 0, 0);
SetTab(4.0, pjLeft, 2.0, 0, 0, 0);
SetTab(5.0, pjLeft, 2.0, 0, 0, 0);

SetFont('Arial', 10);
Bold := True;

PrintTab('EmpNo');
PrintTab('FirstName');
PrintTab('HireDate');
PrintTab('LastName');
PrintTab('PhoneExt');
PrintTab('Salary');

Bold := False;
NewLine;
ADOTable1.Open;
ADOTable1.first;

while not ADOTable1.Eof do
begin
Printtab(ADOTable1.FieldByName('EmpNo').Text);
Printtab(ADOTable1.FieldByName('FirstName').Text);
Printtab(ADOTable1.FieldByName('HireDate').Text);
Printtab(ADOTable1.FieldByName('LastName').Text);
Printtab(ADOTable1.FieldByName('PhoneExt').Text);
Printtab(ADOTable1.FieldByName('Salary').Text);
newline;
ADOTable1.Next;
if (LinesLeft < 3) and (not ADOTable1.Eof) then
begin
NewPage;
end;
end;
end;
end;

Поместим на форму компонент TButton и в обработчике событий OnClick запишем:

RvSystem1.Execute;

Запускаем проект и нажимаем Button1. В результате выполнения появится следующее окно:

Нажимаем Ок для предпросмотра отчета:

В этом примере мы использовали метод SetTab.

SetTab(0.5, pjLeft, 1.0, 0, 0, 0);

0.5 – начальная позиция табa
pjLeft – выравнивание влево (pjLeft), вправо (pjRight) или по центру (pjCenter)
1.0 – ширина отображаемой области столбца
0 – расстояние между сторонами рамки таба и текстом

Скачать исходный код проекта Rave.zip (84 КБ)

Comments are closed.