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框架网

DevExpress XtraReport 开发指南|单表报表设计详解(C#)|C/S开发框架
DevExpress XtraReport 开发指南-单表报表设计详解(C#)
一.新增一份XtraReport报表|DevExpress主从表|C/S快速开发框架|标准版V2.3|软件手册
一.新增一份XtraReport报表|DevExpress单表|C/S快速开发框架|标准版V2.3|软件手册
DevExpress XtraReport - 动态加载报表布局模板
DevExpress XtraReport报表实例源码下载(C#)
CSFrameworV6试用版开发指南 | 主程序初始化CSFramework.EF数据库框架(.NET8)|C/S开发框架
CSFrameworkV6 试用版(Trial Version)开发指南|C/S开发框架
CSFrameworkV6.0 试用版(Trial Version)开发指南_源码下载
MiniFramework蝇量开发框架新手指南开发指南|C/S开发框架
三.代码设计|DevExpress主从表|C/S快速开发框架|标准版V2.3|软件手册
三.代码设计|DevExpress单表|C/S快速开发框架|标准版V2.3|软件手册
WinFramework轻量级开发框架 | 主从表窗体开发指南|详细二次开发|C/S开发框架
Winform企业级WCF快速开发框架平台(C/S架构+WCF+DevExpress+SQL多数据库)
Dev XtraReport导出文件可以根据后缀名来导出不同的格式
Dev XtraReport导出报表乱码问题
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
在线客服
