DevExpress XtraReport 开发指南 - 主从表报表设计(C#)

  DevExpress XtraReport 开发指南 - 主从表报表设计(C#)

DevExpress XtraReport 开发指南 - 主从表报表设计(C#)


(Master/Detail Report)

主/从表报表设计相对复杂点,主要是代码处理方面。需要定义主从表关联(DataRelation)及代码绑定字段,请按照下面的步骤操作。

新增一份XtraReport报表


贴图图片



贴图图片



贴图图片


报表设计器 (Report Designer)



贴图图片


绑定数据字段 (Binding Data Field)

在GroupHeader1 内拖放XRLabel组件,绑定主表的字段。比如:
[SONO] ,SONO是字段名,绑定的字段必须加中括号!(重要)

在DetailBand报表段内拖放XRLabel组件,给Text属性设置为明细表的字段,比如:
[R1.StockCode] ,R1是DataRelation名称,StockCode是字段名,绑定的字段必须加中括号!(重要)

金额或数量汇总 (Report Summary)

在GroupFooter区域拖放一个XRLabel组件,在XRLabel.Summary属性设置如下:


贴图图片

然后通过代码分别绑定主从表的Amount字段:



xrLabel15.DataBindings.Add(
"Text", ds, "R1.Amount");//
绑定小计(当前单据的总金额)


xrLabel23.DataBindings.Add(
"Text", ds, "R1.Amount");//
绑定总计(所有单据的总金额)




系统变量/系统函数 System Variables




贴图图片


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


代码设计

单表报表只需要一个数据表,我们只需要给Report绑定数据源即可。(重要)


预览报表:


  
private void button3_Click(object sender, EventArgs e)

        {

            XtraReport_MasterDetail mMyReport = new XtraReport_MasterDetail(); //报表实例

 

            DataSet data = DAL.GetMasterDetailData();//取销售订单主从表数据

            mMyReport.SetReportDataSource(data);//绑定报表的数据源

 

            //打开报表预览窗体

            frmReportPreview.DoPreviewReport(mMyReport, this);

        }


www.csframework.com C/S框架网



具体步骤:

1. 创建报表实例。
2. 通过DAL层获取报表数据,返回DataSet类型,包含两张数据表,分别为tb_SO, tb_SOs。
3. 调用自定义方法SetReportDataSource,绑定数据源。(重要)
4. 打开预览窗体显示报表。



给主从表报表配置数据源 (重要)


        /// <summary>

        /// 设置主从表的数据源

        /// </summary>

        /// <param name="reportData"></param>

        public void SetReportDataSource(DataSet reportData)

        {

            //因涉及到修改DataSet的内部属性,建议创建副本进行操作。

            DataSet ds = reportData.Copy();//创建副本

 

            //重要!!!给组(GroupHeader)绑定主键字段

            //本报表是按业务单号分组

            GroupField gf = new GroupField("SONO", XRColumnSortOrder.Ascending);

            GroupHeader1.GroupFields.Add(gf);

 

            //给数据集建立主外键关系

            DataColumn parentColumn = ds.Tables["tb_SO"].Columns["SONO"];

            DataColumn childColumn = ds.Tables["tb_SOs"].Columns["SONO"];

            DataRelation R1 = new DataRelation("R1", parentColumn, childColumn);

            ds.Relations.Add(R1);

 

            //绑定主表的数据源

            this.DataMember = "tb_SO";

            this.DataSource = ds;

 

            //绑定明细表的数据源

            this.DetailReport.DataMember = "R1";

            this.DetailReport.DataSource = ds;

 

//自动绑定明细表XRLabel的数据源

            this.BindingFields(ds, this.Detail1.Controls);

 

            xrLabel15.DataBindings.Add("Text", ds, "R1.Amount");//绑定小计(当前单据的总金额)

            xrLabel23.DataBindings.Add("Text", ds, "R1.Amount");//绑定总计(所有单据的总金额)

        }


www.csframework.com C/S框架网


 
设置主从表数据源SetReportDataSource方法:


1. 报表是按业务单号分组,给组(GroupHeader)绑定业务主键字段。
2. 给数据集建立主外键关系,XtraReport是跟据DataRelation指定的主外键关系自动过滤明细表数据的。
3. 绑定主表数据源。
4. 绑定从表数据源,注意:明细表的数据是跟据DataRelation自动过滤,所以DataMember必须指定为DataRelation的名称。
5. 自动绑定明细表XRLabel的数据源,这里必须通过DataBinding绑定数据源!
6. 绑定小计及总计的数据源。


总结:

主/从表报表比较复杂,特别是XtraReport必须给数据集建立主外键关系(DataRelation),但通过本文的详细介绍我相信您完全可以开发一份简单的主从报表了。

如转载请注明出处,www.csframework.com C/S框架网





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


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


版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
C/S框架网
发表评论

评论内容
昵称:
关联文章

DevExpress XtraReport 开发指南 - 主从报表设计(C#)
DevExpress XtraReport 开发指南-单报表设计详解(C#)
FastReport for.Net开发指南-主从(Master/Detail)报表设计详解
FastReport for.Net开发指南-单报表设计详解
主从窗体开发指南-详细二次开发
DevExpress XtraReport报表实例源码下载(C#)
DevExpress XtraReport - 动态加载报表布局模板
《CS框架V2.2-3.0业务单据窗体_主从_快速开发指南
Dev XtraReport导出报表乱码问题
FastReport for .Net 单/主从快速开发手册(doc下载)
主从窗体开发指南-采购订单
C/S系统开发框架多级明细表(三级/主从)数据结构参考
设计报表模板文件
DevExpress GridView获取主从,主子,子级二层的当前记录(Master/Detail)
C/S系统快速开发框架数据操作窗体(单主从窗体)按钮事件
FastReport for .Net 报表开发实例(C#源码下载)
CS开发框架旗舰版主从(多级明细表)实例,自动生成主从代码
软件开发设计 - EMS-电子商城系统-[电子商务]上海五活指南网数据库结构
C/S开发框架教程:使用基础资料(数据字典)的DAL层更新主从(或多)数据
使用[后台数据更新模型]保存主从数据(C#源码)