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#)
下一篇:C# Winform系统登录(登入/登出)架构设计
评论列表

发表评论

评论内容
昵称:
关联文章

DevExpress XtraReport 开发指南 - 主从报表设计(C#)
DevExpress XtraReport 开发指南-单报表设计详解(C#)
FastReport for.Net开发指南-主从(Master/Detail)报表设计详解
一.新增一份XtraReport报表-DevExpress-C/S快速开发框架-标准版V2.3
FastReport for.Net开发指南-单报表设计详解
DevExpress XtraReport报表实例源码下载(C#)
三.代码设计-DevExpress主从-C/S快速开发框架-标准版V2.3
二.报表设计 (Report Designer)-DevExpress主从-C/S快速开发框架-标准版V2.3
DevExpress XtraReport - 动态加载报表布局模板
WinFramework轻量级开发框架 - 主从窗体开发指南-详细二次开发
一.新增一份XtraReport报表-DevExpress主从-C/S快速开发框架-标准版V2.3
CSFrameworkV6旗舰版-主从加载报表
CSFrameworkV6旗舰版-主从设计报表模板文件
Dev XtraReport导出报表乱码问题
《CS框架V2.2-3.0业务单据窗体_主从_快速开发指南
FastReport for .Net 单/主从快速开发手册(doc下载)
开发业务单据报表主从) - MiniFramework蝇量框架 - Winform框架
FastReport.NET主从报表完整版源码
三.代码设计-DevExpress-C/S快速开发框架-标准版V2.3
二.报表设计 (Report Designer)-DevExpress-C/S快速开发框架-标准版V2.3

热门标签
.NET5 .NET6 .NET7 APP Auth-软件授权注册系统 Axios B/S B/S开发框架 Bug Bug记录 C#加密解密 C#源码 C/S CHATGPT CMS系统 CodeGenerator CSFramework.DB CSFramework.EF CSFrameworkV1学习版 CSFrameworkV2标准版 CSFrameworkV3高级版 CSFrameworkV4企业版 CSFrameworkV5旗舰版 CSFrameworkV6.0 DAL数据访问层 Database datalock DbFramework Demo教学 Demo下载 DevExpress教程 DOM EF框架 Element-UI EntityFramework ERP ES6 Excel FastReport GIT HR IDatabase IIS JavaScript LINQ MES MiniFramework MIS NavBarControl Node.JS NPM OMS ORM PaaS POS Promise API Redis SAP SEO SQL SQLConnector TMS系统 Token令牌 VS2022 VSCode VUE WCF WebApi WebApi NETCore WebApi框架 WEB开发框架 Windows服务 Winform 开发框架 Winform 开发平台 WinFramework Workflow工作流 Workflow流程引擎 版本区别 报表 踩坑日记 操作手册 代码生成器 迭代开发记录 基础资料窗体 架构设计 角色权限 开发sce 开发技巧 开发教程 开发框架 开发平台 开发指南 客户案例 快速搭站系统 快速开发平台 秘钥 密钥 权限设计 软件报价 软件测试报告 软件简介 软件开发框架 软件开发平台 软件开发文档 软件体系架构 软件下载 软著证书 三层架构 设计模式 生成代码 实用小技巧 收钱音箱 数据锁 数据同步 微信小程序 未解决问题 文档下载 喜鹊ERP 喜鹊软件 系统对接 详细设计说明书 行政区域数据库 需求分析 疑难杂症 蝇量级框架 蝇量框架 用户管理 用户开发手册 用户控件 在线支付 纸箱ERP 智能语音收款机 自定义窗体 自定义组件 自动升级程序