这是ProgrammerManual-en.pdf里的原文,还是要看帮助啊!!
Creating a report form from code
As a rule, you will create most reports using the designer. Nevertheless, in some
cases (for example, when the report’s form is unknown) it is necessary to create a report
manually, from code.
To create a report manually, one should perform the following steps in order:
- clear the report component
- add data sources
- add report’s page
- add bands on a page
- set bands’ properties, and then
connect them to the data
- add objects on each band
- set objects’ properties, and then
connect them to the data
Let us examine creation of a simple report of the «list»
type. Assume that we have
the following components: frxReport1: TfrxReport and frxDBDataSet1: TfrxDBDataSet
(the last one is connected to data from the DBDEMOS, the «Customer.db»
table). Our
report will contain one page with the «Report Title»
and «Master Data»
bands. On the
«Report Title»
band there will be an object with the "Hello FastReport!"
text, and the
«Master Data»
one will contain an object with a link to the "CustNo"
field.
var
Page: TfrxReportPage;
Band: TfrxBand;
DataBand: TfrxMasterData;
Memo: TfrxMemoView;
{ clear a report }
frxReport1.Clear;
{ add a dataset to the list of ones accessible for a report }
frxReport1.DataSets.Add(frxDBDataSet1);
{ add a page }
Page := TfrxReportPage.Create(frxReport1);
{ create a unique name }
Page.CreateUniqueName;
{ set sizes of fields, paper and orientation by default }
Page.SetDefaults;
{ modify paper’s orientation }
Page.Orientation := poLandscape;
{ add a report title band}
Band := TfrxReportTitle.Create(Page);
Band.CreateUniqueName;
{ it is sufficient to set the «Top»
coordinate and height for a band }
{ both coordinates are in pixels }
Band.Top := 0;
Band.Height := 20;
{ add an object to the report title band }
Memo := TfrxMemoView.Create(Band);
Memo.CreateUniqueName;
Memo.Text := 'Hello FastReport!';
Memo.Height := 20;
{ this object will be stretched according to band’s width }
Memo.Align := baWidth;
{ add the masterdata band }
DataBand := TfrxMasterData.Create(Page);
DataBand.CreateUniqueName;
DataBand.DataSet := frxDBDataSet1;
{ the Top coordinate should be greater than the previously added band’s
top + height}
DataBand.Top := 100;
DataBand.Height := 20;
{ add an object on master data }
Memo := TfrxMemoView.Create(DataBand);
Memo.CreateUniqueName;
{ connect to data }
Memo.DataSet := frxDBDataSet1;
Memo.DataField := 'CustNo';
Memo.SetBounds(0, 0, 100, 20);
{ adjust the text to the right object’s margin }
Memo.HAlign := haRight;
{ show the report }
frxReport1.ShowReport;