// ### Create report ###
procedure TForm1.ReportsTabSheetShow(Sender: TObject);
var
i:integer;
ReportResStream: TResourceStream;
Report: TfrReport;
begin
// Resfresh data in SQLQuery
DataModule1.GeneralStatsSQLQuery.Active:=False;
DataModule1.GeneralStatsSQLQuery.Active:=true;
DataModule1.SourcesStatsSQLQuery.Active:=False;
DataModule1.SourcesStatsSQLQuery.Active:=true;
DataModule1.MonthlyStatsSQLQuery.Active:=False;
DataModule1.MonthlyStatsSQLQuery.Active:=true;
DataModule1.YearlyStatsSQLQuery.Active:=False;
DataModule1.YearlyStatsSQLQuery.Active:=true;
// Make report
frCompositeReport1.Reports.Clear;
for i := 1 to 2 do
begin
// Load report contents from resource
ReportResStream := TResourceStream.Create(HINSTANCE, 'REPORT_' + IntToStr(i), RT_RCDATA);
try
Report := (FindComponent('frReport' + IntToStr(i))) as TfrReport;
Report.LoadFromXMLStream(ReportResStream);
frCompositeReport1.Reports.Add(Report);
finally
ReportResStream.Free;
end;
end;
frCompositeReport1.ShowReport;
end;
// ### Save to pdf ###
procedure TForm1.SavePDFButtonClick(Sender: TObject);
var
SaveDlg: TSaveDialog;
begin
SaveDlg:=TSaveDialog.Create(nil);
try
SaveDlg.FileName:=Format('report %s %s.pdf', [DateToStr(Now),
StringReplace(TimeToStr(Now), ':', '-', [rfReplaceAll])]);
SaveDlg.Filter:='PDF|*.pdf';
SaveDlg.DefaultExt:='pdf';
if SaveDlg.Execute and frCompositeReport1.PrepareReport then
begin
frCompositeReport1.ExportTo(TlrPdfExportFilter, SaveDlg.FileName);
end;
finally
SaveDlg.Free;
end;
end;
// ### Set several variables to report ###
procedure TForm1.frReport1GetValue(const ParName: String; var ParValue: Variant
);
begin
case ParName of
'Кол-во бронирований', 'Кол-во дней', 'Общий доход', 'Общая комиссия',
'Средняя продолжительность', 'Кол-во продлений':
ParValue := DataModule1.GeneralStatsSQLQuery.FieldByName(ParName){.AsString}.Value;
end;
end;