Не могу разобраться с генерацией отчетов.
Допустим, есть запрос GetGamesReport_SQL — выборка из таблиц БД, например такой: "SELECT GUEST FROM GUESTS";
В отчете (BReport) созданы MasterHeader и MasterData.
MasterData содержит Memo-поле, в котором записано: [Guest].
Создан Dataset (BReport.DataSet := BonusDataSet), его функции реализованы след. образом:
procedure TReceptionData.BonusDatasetCheckEOF(Sender: TObject;
var Eof: Boolean);
begin
Eof := GetGamesReport_SQL.Eof;
if Eof then CommonData.Read_trans.Commit;
end;
procedure TReceptionData.BonusDatasetFirst(Sender: TObject);
begin
try
if not CommonData.Read_trans.InTransaction then CommonData.Read_trans.StartTransaction;
with GetGamesReport_SQL do
begin
if not Prepared then Prepare;
ExecQuery;
end;
except
Application.MessageBox('Запрос не выполнен.', CAPTION_MAIN);
if CommonData.Read_trans.InTransaction then CommonData.Read_trans.Rollback;
end;
end;
procedure TReceptionData.BonusDatasetNext(Sender: TObject);
begin
GetGamesReport_SQL.Next;
end;
Функция получения параметра:
procedure TReceptionData.BReportGetValue(const ParName: String; var ParValue: Variant);
begin
if (ParName = 'Guest') then ParValue := GetGamesReport_SQL.FieldByName('FULL_NAME').AsString;
end;
Вызов отчета:
procedure TReceptionData.CreateGameReport();
begin
if BReport.PrepareReport then BReport.ShowPreparedReport
else Application.MessageBox('Не удалось загрузить отчет', CAPTION_MAIN);
Выводится отчет без данных.
Как результаты запроса вывести в отчет?