二.代码设计 | FastReport报表开发 | C/S快速开发框架|标准版V2.3|软件手册
作者:csframework|C/S框架网  发布日期:2022/02/10 11:10:14

二.代码设计 | FastReport报表开发 | C/S快速开发框架|标准版V2.3|软件手册

主/从报表需要定义一组Group及两个DataBand,然后给DataBand绑定数据源。(重要)

更重要是给明细表设置主外键关系。(重要)

2.1 加载报表及预览报表

代码如下:

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);

        }

具体步骤:

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

总结:

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

二.代码设计 | FastReport报表开发 | C/S快速开发框架|标准版V2.3|软件手册

C/S框架网|原创精神.创造价值.打造精品


扫一扫加作者微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务
上一篇 下一篇