知方号

知方号

字段名、字段数不确定时,用 FastReport 动态生成报表

 放置有效地Table和DataSource,frxReport 和 frxDBDataSet,不需要再报表设计器内放置任何控件,直接由代码生成报表。

 但如果是交叉表,FastReport 也提供另外一种解决方案 TfrxCrossView 进行列表

 以下是全代码生成报表的简单例子。

 TfrxDataPage * DataPage;  TfrxReportPage * Page;  TfrxBand * Band;

 TfrxMasterData * DataBand;  TfrxMemoView * Memo;

 

 // 清除原报表内容  frxReport1->Clear();

 

 // 设置 Report 的 DataSet  frxReport1->DataSets->Add(frxDBDataset1);

 // 添加 Report 的 Data 页  DataPage = new TfrxDataPage(frxReport1);

 

 // 增加报表显示内容  Page = new TfrxReportPage(frxReport1);  Page->CreateUniqueName();

 // 设置 Fields 的默认尺寸  Page->SetDefaults();

 // 页面方向  Page->Orientation = poLandscape;

 // 页面边距

 Page->TopMargin = 20;  Page->LeftMargin = 20;  Page->TopMargin = 20;  Page->BottomMargin = 20;

 

 // 创建报表 Title Band  Band = new TfrxReportTitle(Page);  Band->CreateUniqueName();

 Band->Top = 0;  Band->Height = 20;

 

 // 创建显示 Field 的 Memo  Memo = new TfrxMemoView(Band);  Memo->CreateUniqueName();  Memo->Text = "Hello FastReport!";  Memo->Height = 20;

 // 风格  Memo->Align = baWidth;

 

 // 创建 DataBand  DataBand = new TfrxMasterData(Page);  DataBand->CreateUniqueName();  DataBand->DataSet = frxDBDataset1;

 DataBand->Top = 100;  DataBand->Height = 20;

 

 // 将 Memo 添加到 DataBand 上  Memo = new TfrxMemoView(DataBand);  Memo->CreateUniqueName();

 // 连接数据  Memo->DataSet = frxDBDataset1;

 // 显示 username 字段  Memo->DataField = "username";  Memo->SetBounds(0, 0, 100, 20);

 // memo 带边框

 Memo->Frame->Typ

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。