DevExpress主从表 按组分页一组不足一页为一页--以此记录
本文的主要是说明Dev的报表的主从表,主从表的每一组显示在一页,当一组超出一页,第二页只显示第一组的。
一、每上报表设置图
简单设计图如上
二、后台代码
报表页代码
public partial class XtraReport1 : DevExpress.XtraReports.UI.XtraReport
{
public XtraReport1()
{
InitializeComponent();
} /// <summary>
/// 设置主从表的数据源
/// </summary>
/// <param name="reportData"></param>
public void SetReportDataSource(DataSet reportData)
{
//因涉及到修改DataSet的内部属性,建议创建副本进行操作。
DataSet ds = reportData.Copy();//创建副本 //重要!!!给组(GroupHeader)绑定主键字段
//本报表是按业务单号分组
GroupField gf = new GroupField("ID", XRColumnSortOrder.Ascending);
GroupHeader1.GroupFields.Add(gf); //给数据集建立主外键关系
DataColumn parentColumn = ds.Tables["t1"].Columns["ID"];
DataColumn childColumn = ds.Tables["t2"].Columns["ID"];
DataRelation R1 = new DataRelation("R1", parentColumn, childColumn);
ds.Relations.Add(R1); //绑定主表的数据源
this.DataMember = "t1";
this.DataSource = ds;
this.xrLabel2.DataBindings.Add("Text", ds, "t1.ID"); //绑定明细表的数据源
this.DetailReport.DataMember = "R1";
this.DetailReport.DataSource = ds; this.xrLabel5.DataBindings.Add("Text", ds, "R1.ID");
this.xrLabel6.DataBindings.Add("Text", ds, "R1.Name"); xrLabel3.DataBindings.Add("Text", ds, "R1.ID");//绑定小计(当前单据的总金额)
xrLabel4.DataBindings.Add("Text", ds, "R1.ID");//绑定小计(当前单据的总金额)
}
}
前台调用代码
private void simpleButton1_Click(object sender, EventArgs e)
{
XtraReport1 xtra = new XtraReport1();
DataSet ds = new DataSet();
DataTable dt1 = new DataTable("t1");
dt1.Columns.Add("ID",Type.GetType("System.String")); DataTable dt2 = new DataTable("t2");
dt2.Columns.Add("ID",Type.GetType("System.String"));
dt2.Columns.Add("Name",Type.GetType("System.String")); for (int i = ; i < ; i++)
{
DataRow dt1Dr = dt1.NewRow();
dt1Dr["ID"] = i.ToString();
dt1.Rows.Add(dt1Dr);
for (int j = ; j < ; j++)
{
DataRow dt2Dr = dt2.NewRow();
dt2Dr["ID"] = i.ToString();
dt2Dr["Name"] = j.ToString() + "测试";
dt2.Rows.Add(dt2Dr);
}
}
ds.Tables.Add(dt1);
ds.Tables.Add(dt2); xtra.SetReportDataSource(ds);
xtra.ShowPreviewDialog();
}
主从表代码如上
设计重点
1、加分页头
2、构建主从表数据
3、设置DetailReport PageBreak为AfterBand
此例可以应用于,单据的打印,多单据连打,根据自己需要发挥!
DevExpress主从表 按组分页一组不足一页为一页--以此记录的更多相关文章
- DevExpress gridcontrol gridView主从表折叠/展开显示
在使用报表的时候,有很多需要主从表一起显示,从表不需要另外弹窗显示明细,反而直接显示在主表下方.如图所示: 第一次做这个功能,主从表显示,从表列隐藏,从表单元格点击事件这三个功能点花费了很多时间,在网 ...
- 【mysql】 mybatis实现 主从表 left join 1:n 一对多 分页查询 主表从表都有查询条件 【mybatis】count 统计+JSON查询
mybatis实现 主从表 left join 1:n 一对多 分页查询 主表从表都有查询条件+count 需求: ======================================= ...
- 如何: 在 VS中的设计时刻主从表绑定控件到数据库
这个示例展示了如何在 Visual Studio 2005 的设计时刻,把一个 data-aware 控件 (XtraGrid.XtraPivotGrid.XtraVerticalGrid 等) 绑定 ...
- 在DevExpress程序中使用Winform分页控件直接录入数据并保存
一般情况下,我们都倾向于使用一个组织比较好的独立界面来录入或者展示相关的数据,这样处理比较规范,也方便显示比较复杂的数据.不过在一些情况下,我们也可能需要直接在GridView表格上直接录入或者修改数 ...
- 在GridControl表格控件中实现多层级主从表数据的展示
在一些应用场景中,我们需要实现多层级的数据表格显示,如常规的二级主从表数据展示,甚至也有多个层级展示的需求,那么我们如何通过DevExpress的GridControl控表格件实现这种业务需求呢?本篇 ...
- 代码生成工具Database2Sharp中增加视图的代码生成以及主从表界面生成功能
在代码生成工具的各种功能规划中,我们一向以客户的需求作为驱动,因此也会根据需要增加一些特殊的功能或者处理.在实际的开发中,虽然我们一般以具体的表进行具体业务开发,但是有些客户提出有时候视图开发也是很常 ...
- Winform开发框架之单据窗体生成(主从表,流水单号)
源码地址:https://github.com/GarsonZhang/GZFramework.ShareDemo 前言 1.在开始本节前请先重置代码为 chapter-03-start 懒人地址:h ...
- GZFramwork数据库层《三》普通主从表增删改查
运行结果: 使用代码生成器(GZCodeGenerate)生成tb_Cusomer和tb_CusomerDetail的Model 生成器源代码下载地址: https://github.com/Gars ...
- DEV主从表
1.主从表隐藏表格展开按钮. 当主表内容不包含子表时候隐藏,主从表加号图标.效果如下图. 实现代码 private void gvMain_CustomDrawCell(object sender, ...
随机推荐
- CSS文本溢出显示省略号
项目中常常有这种需要我们对溢出文本进行"..."显示的操作,单行多行的情况都有(具体几行得看设计师心情了),这篇随笔是我个人对这种情况解决办法的归纳,欢迎各路英雄指教. 单行 语法 ...
- 通用javascript方法
//将序列化成json格式后日期(毫秒数)转成日期格式 YYYY-MM-DD HH:MI:SS function ChangeDateFormat(cellval, type) { var date ...
- Android-ListView类
ListView组件在应用程序中可以说是不可或缺的一部分,ListView主要是显示列表数据,同时可以滚动查看,这篇博客主要是对ListView的基本用法进行说明,后面会依次对ListView点击动态 ...
- 递归练习(C语言)
本文地址:http://www.cnblogs.com/archimedes/p/recursive-practice.html,转载请注明源地址. 1.炮弹一样的球状物体,能够堆积成一个金字塔,在顶 ...
- 【转】一个非常常见但容易被忽略的c++问题——用IPML模式可以解决
pimpl (the pointer-to-implementation idiom)手法在 C++ 里已是“高手”们广泛运用的成熟方法之一,它的优点很多,诸如降低编译依赖.提高重编译速度之类的工具性 ...
- macbook pro 重装系统
重装前系统版本:10.11.6 因为我在系统更新时强行关机,后来在编译代码的时候就一直有奇怪的错误,所以选择重装系统. 前提条件:一定要有网络 1.关机状态下按住command + r ,按一下开机键 ...
- I/O多路复用——select函数与poll函数
1 区别 同:(1)机制类似,本质上没有多大差别,管理多个描述符也是进行轮询,根据描述符的状态进行处理.(2)包含大量文件描述符的数组被整体复制于用户态和内核的地址空间之间,而不论这些文件描述符是否就 ...
- jQuery Validate 表单验证插件----在class属性中添加校验规则进行简单的校验
一.下载插件包. 网盘下载:https://yunpan.cn/cryvgGGAQ3DSW 访问密码 f224 二.jQuery表单验证插件----添加class属性形式的校验 <!DOCTY ...
- CSS纯样式实现箭头、对话框等形状
在使用第三方框架bootstrap的时候,本以为其是图片实现的小箭头,后来使用开发工具查看是用CSS来实现的,现记录如下: 之前都没仔细去观注过其原理,都是拿来使用,在实现小箭头之前需要了解下CSS的 ...
- 04_最长上升子序列问题(LIS)
来源:刘汝佳<算法竞赛入门经典--训练指南> P60 问题6: 问题描述:给定n个整数a1,a2,...,an,按从左到右的顺序选出尽量多的整数,组成一个上升子序列(子序列可以理解为:删除 ...