procedure TMainForm.ReportButtonClick(Sender: TObject);
var
q: TSQLQuery;
rpt: TFPReport;
dat: TFPReportDatasetData;
p: TFPReportPage;
memo: TFPReportMemo;
title: TFPReportTitleBand;
data: TFPReportDataBand;
exporter: TFPReportExportPDF;
begin
PaperManager.RegisterStandardSizes;
rpt := TFPReport.Create(nil);
rpt.Author := 'Frank';
rpt.Title := 'Test';
q := TSQLQuery.Create(nil);
q.SQLConnection := LiteConnection;
q.SQL.Text := 'select * from TestTable';
q.Open;
dat := TFPReportDatasetData.Create(nil);
dat.DataSet := q;
p := TFPReportPage.Create(rpt);
p.Orientation := poPortrait;
p.PageSize.PaperName := 'A4';
p.Margins.Left := 30;
p.Margins.Top := 20;
p.Margins.Right := 30;
p.Margins.Bottom := 20;
p.Font.Name := 'LiberationSans';
p.Data := dat;
title := TFPReportTitleBand.Create(p);
title.Layout.Height := 40;
memo := TFPReportMemo.Create(title);
memo.Layout.Left := 5;
memo.Layout.Top := 0;
memo.Layout.Width := 140;
memo.Layout.Height := 15;
memo.Text := rpt.Title;
memo.TextAlignment.Vertical := tlCenter;
memo.TextAlignment.Horizontal := taCentered;
memo.UseParentFont := False;
memo.Font.Color := TFPReportColor($000080);
memo.Font.Size := 24;
data := TFPReportDataBand.Create(p);
data.Layout.Height := 30;
data.Data:= dat;
memo := TFPReportMemo.Create(data);
memo.Layout.Left := 30;
memo.Layout.Top := 0;
memo.Layout.Width := 150;
memo.Layout.Height := 50;
memo.Text := 'ID: [ID], Description: [Description], Comment: [Comment]';
gTTFontCache.SearchPath.Add('.\fonts\');
gTTFontCache.BuildFontCache;
rpt.RunReport;
exporter := TFPReportExportPDF.Create(nil);
rpt.RenderReport(exporter);
exporter.Free;
dat.Free;
rpt.Free;
q.Free;
end;