FastReport for.Net开发指南-主从表(Master/Detail)报表设计详解

下面介绍主从表(Master/Detail Report)报表:


报表设计 (Report Designer)



è´´å¾å¾ç


Group Header/Group Footer (主/从表组定义)

主/从表报表必须增加一组Group及至少两个DataBand(Data1,Data2),Group的条件设置为主/从表的主外键关联字段名,如单据号码SONO,在GroupHeader绿色区域双击打开窗体如下:


贴图图片

Group Condition区域设置为[tb_SO.SONO], tb_SO是表名,SONO是销售订单的单号, FastReport引擎是跟据组的条件和Band.Relation定义的关联实现主从报表的。

增加主/从表的两个DataBand

主菜单: Report/Configure Bands…


贴图图片

在Configure Bands窗体内定义DataBand主从关系,如下图:


贴图图片


贴图图片


绑定数据字段 (Binding Data Field)


在Data1(主表)内拖放TextObject组件,设置Text的属性对应字段名,如[tb_SO.SONO]
在Data2(从表)内拖放TextObject组件,设置Text的属性对应字段名,如[tb_SOs.StockCode]


拖放的TextObject组件可以对其绑定字段,具体作法是给Text属性赋值,比如:
[tb_SO.SONO] ,tb_SO是DataTable的名称(DataTable.Name),SONO是字段名,绑定的字段必须加中括号!(重要)


网上有很多复杂的做法,比如:写代码给TextObject .DataBindings属性增加一个DataBinding对象,其实不必要这样做,在Designer内给Text属性指定一个字符串就可以了。

报表金额或数量汇总


报表内会有金额汇总,数量汇总等数据汇总要求,在Report内增加一个Report Summary , 然后
在Data 操作面板内选择Σ Total ,右键New Total.



贴图图片



贴图图片

Edit Total 窗体:
Total Name: 汇总名称定义。
Function: 函数类型,有Sum/Min/Max/Average/Count函数可选。
Data Column or Expression: 字段名或表达式。(重要)
Evaluate on each row of the band: 用于统计计算指定Band的记录。(重要)
Evaluate if the following condition is met: 仅统计计算符合以下条件的记录。
Print on the band: 在指定的Band上放置Total对象。(重要)
Options , 只勾选Reset after print选项即可。


贴图图片


金额或数量小计 (Group Footer , SubTotoal)

用户可能按日期范围一次性查询多张单据,这时需要对每张业务单据的金额或数量分别进行汇总作为小计,
只要在Group Footer区域内拖放一个刚定义的Σ Total 组件就行了。

金额或数量汇总 (Report Summary, Grant Total)

对多张单据的总金额汇总,只要在Report Summary区域内拖放一个刚定义的Σ Total 组件就行了。

系统变量/系统函数 System Variables


贴图图片






设计好报表,然后动态加载数据源

代码设计

主/从报表需要定义一组Group及两个DataBand,然后给DataBand绑定数据源。(重要)
更重要是给明细表设置主外键关系。(重要)

代码如下:


 

C# Code:

private void button4_Click(object sender, EventArgs e)
{
   //打印主从表数据
   string file = Application.StartupPath @"\MasterDetail.frx";
   rptMasterDetail.Load(file);//加载报表模板文件
   
   DataSet ds = DAL.GetMasterDetailData();//取报表数据
   
   rptMasterDetail.RegisterData(ds.Tables[0], "tb_SO"); //注册数据源,主表
   rptMasterDetail.RegisterData(ds.Tables[1], "tb_SOs"); //注册数据源,从表
   
   //
   //直接注册DataSet也行,但必须对DataSet.Tables指定表名!
   //FastReport是跟据表名取DataTable对象的。
   //
   //rptMasterDetail.RegisterData(ds);
   //
   
   //给DataBand(主表数据)绑定数据源
   DataBand masterBand = rptMasterDetail.FindObject("Data1") as DataBand;
   masterBand.DataSource = rptMasterDetail.GetDataSource("tb_SO"); //主表
   
   //给DataBand(明细数据)绑定数据源
   DataBand detailBand = rptMasterDetail.FindObject("Data2") as DataBand;
   detailBand.DataSource = rptMasterDetail.GetDataSource("tb_SOs"); //明细表
   
   //重要!!给明细表设置主外键关系!
   detailBand.Relation = new Relation();
   detailBand.Relation.ParentColumns = new string[] { "SONO" };
   detailBand.Relation.ParentDataSource = rptMasterDetail.GetDataSource("tb_SO"); //主表
   detailBand.Relation.ChildColumns = new string[] { "SONO" };
   detailBand.Relation.ChildDataSource = rptMasterDetail.GetDataSource("tb_SOs"); //明细表
   
   //准备工作,显示报表预览窗体
   rptMasterDetail.Prepare();
   rptMasterDetail.ShowPrepared(true, this);
   
}


//来源:C/S框架网(www.csframework.com) QQ:1980854898
 




具体步骤:

1. 加载报表模板文件,Load()。
2. 通过DAL层获取报表数据,返回DataSet类型,包含两张数据表(主表tb_SO, 明细表tb_SOs)。
3. RegisterData,注册数据源。(重要)
4. 给DataBand对象绑定数据源,名为Data1绑定主表,Data2绑定明细表。(重要)
5. 给明细表DataBand设置主外键关系。 (重要)
6. 准备报表,显示预览窗体。


总结:

主/从表报表比较复杂,主要是两方面:报表设计和编写源码,但通过本文的详细介绍我相信您完全可以开发一份简单的主从报表了。





FastReport for .Net 报表开发实例(C#源码下载)

http://www.csframework.com/archive/1/arc-1-20110610-1532.htm

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: fastreport.net是一种强大的报表生成工具,用于快速和灵活地创建各种类型的报表。它提供了丰富的功能和易于使用的接口,使开发人员能够轻松地生成高质量的报告。 fastreport.net开发手册是一个详细的指南,旨在帮助开发人员学习和理解该工具的使用。手册提供了关于fastreport.net的完整文档和示例代码,涵盖了各种报表生成和编辑的方面。 手册首先介绍了fastreport.net的基础知识和概念,包括报表对象、数据源、报表模板和操作等。然后,它逐步介绍了报表设计和布局,包括页面设置、页眉页脚、格、图和文本等元素的使用。 接下来,手册深入介绍了报表中的数据源和数据集,讲解了如何连接数据库、查询数据和绑定数据到报表中。它还介绍了如何使用参数和过滤器来自定义报表的数据展示和筛选。 此外,手册还详细介绍了报表中的各种功能和操作,如排序、分组、计算字段、条件格式、子报表和导出等。它提供了丰富的示例代码和详细的说明,帮助开发人员更好地理解和应用这些功能。 总的来说,fastreport.net开发手册是一个非常有价值的资源,可以帮助开发人员更好地利用该工具进行报表开发。通过学习手册中的内容,开发人员可以快速掌握fastreport.net的使用技巧,从而有效地生成定制化的报告。 ### 回答2: FastReport.net是一个用于生成报表.NET开发工具。它提供了丰富的报表设计和生成功能,可以帮助开发人员轻松地创建各种格式的报表,如PDF、Excel、Word等。这个开发手册为开发人员提供了详细的技术文档和示例代码,帮助他们快速上手使用FastReport.net。 这本开发手册从基础知识开始介绍,首先介绍了FastReport.net的安装和配置过程,以及常用的报表设计工具和功能。然后,它详细介绍了报表的数据源和数据连接,包括使用SQL查询、ADO.NET、实体框架等方式获取数据,并将其绑定到报表中。 接下来,开发手册介绍了报表设计和布局,包括如何添加数据字段、文本框、图片等控件,并进行格式设置和样式调整。它还介绍了如何使用格、图和子报表来展示复杂的数据内容,并对报表进行分组和排序。 此外,开发手册还详细介绍了报表的导出和打印功能。它阐述了如何将报表导出为PDF、Excel、Word和图像格式,以及如何通过打印预览和打印设置调整报表的输出。同时,它还提供了对报表进行自定义和扩展的方法和技巧,如使用脚本、定制样式和布局等。 总的来说,这本FastReport.net开发手册提供了全面的指导和参考,帮助开发人员快速掌握和应用FastReport.net报表开发工具。无论是初学者还是有经验的开发人员,都可以通过这本手册来深入了解FastReport.net的技术细节和开发思路,提高报表设计和生成的效率和质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值