本文的主要是说明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主从表 按组分页一组不足一页为一页--以此记录的更多相关文章

  1. DevExpress gridcontrol gridView主从表折叠/展开显示

    在使用报表的时候,有很多需要主从表一起显示,从表不需要另外弹窗显示明细,反而直接显示在主表下方.如图所示: 第一次做这个功能,主从表显示,从表列隐藏,从表单元格点击事件这三个功能点花费了很多时间,在网 ...

  2. 【mysql】 mybatis实现 主从表 left join 1:n 一对多 分页查询 主表从表都有查询条件 【mybatis】count 统计+JSON查询

    mybatis实现 主从表 left join  1:n 一对多 分页查询   主表从表都有查询条件+count 需求: ======================================= ...

  3. 如何: 在 VS中的设计时刻主从表绑定控件到数据库

    这个示例展示了如何在 Visual Studio 2005 的设计时刻,把一个 data-aware 控件 (XtraGrid.XtraPivotGrid.XtraVerticalGrid 等) 绑定 ...

  4. 在DevExpress程序中使用Winform分页控件直接录入数据并保存

    一般情况下,我们都倾向于使用一个组织比较好的独立界面来录入或者展示相关的数据,这样处理比较规范,也方便显示比较复杂的数据.不过在一些情况下,我们也可能需要直接在GridView表格上直接录入或者修改数 ...

  5. 在GridControl表格控件中实现多层级主从表数据的展示

    在一些应用场景中,我们需要实现多层级的数据表格显示,如常规的二级主从表数据展示,甚至也有多个层级展示的需求,那么我们如何通过DevExpress的GridControl控表格件实现这种业务需求呢?本篇 ...

  6. 代码生成工具Database2Sharp中增加视图的代码生成以及主从表界面生成功能

    在代码生成工具的各种功能规划中,我们一向以客户的需求作为驱动,因此也会根据需要增加一些特殊的功能或者处理.在实际的开发中,虽然我们一般以具体的表进行具体业务开发,但是有些客户提出有时候视图开发也是很常 ...

  7. Winform开发框架之单据窗体生成(主从表,流水单号)

    源码地址:https://github.com/GarsonZhang/GZFramework.ShareDemo 前言 1.在开始本节前请先重置代码为 chapter-03-start 懒人地址:h ...

  8. GZFramwork数据库层《三》普通主从表增删改查

    运行结果: 使用代码生成器(GZCodeGenerate)生成tb_Cusomer和tb_CusomerDetail的Model 生成器源代码下载地址: https://github.com/Gars ...

  9. DEV主从表

    1.主从表隐藏表格展开按钮. 当主表内容不包含子表时候隐藏,主从表加号图标.效果如下图. 实现代码 private void gvMain_CustomDrawCell(object sender, ...

随机推荐

  1. R语言学习笔记:分析学生的考试成绩

    孩子上初中时拿到过全年级一次考试所有科目的考试成绩表,正好可以用于R语言的统计分析学习.为了不泄漏孩子的姓名,就用学号代替了,感兴趣可以下载测试数据进行练习. num class chn math e ...

  2. Git学习 --> 个人常用命令add,commit以及push

    Git命令行配置1 安装Github2 安装msysgit3 要配置用户名和油箱  git config --global user.name <用户名> 我的命令就是:git confi ...

  3. c语言 拼接字符串

    #include<stdio.h> #include<stdlib.h> void main() { ] = "ca"; ] = "lc" ...

  4. IT技术很好的视频网址

    1.华为工程师 带你实战C++ 2.vimoe,国外的,需要FQ哦.https://vimeo.com/85831438

  5. 阿里云上安装vsftp笔记

    安装 ftp 1 ssh登录服务器       首先检查有没有安装运行 ps -ef |grep vsftpd         2 yum安装vsftpd        yum安装    yum in ...

  6. mybatis3.3 + struts2.3.24 + mysql5.1.22开发环境搭建及相关说明

    一.新建Web工程,并在lib目录下添加jar包 主要jar包:struts2相关包,mybatis3.3相关包,mysql-connector-java-5.1.22-bin.jar, gson-2 ...

  7. Effective Java 65 Don't ignore exceptions

    Principle An empty catch block defeats the purpose of exceptions, which is to force you to handle ex ...

  8. Python常见数据结构--列表

       列表 Python有6个序列的内置类型,但最常见的是列表和元组. 序列都可以进行的操作包括索引,切片.加.乘.检查成员. 此外,Python已经内置确定序列的长度以及确定最大和最下的元素的方法. ...

  9. 数据结构--线段树--lazy延迟操作

    A Simple Problem with Integers Time Limit: 5000MS   Memory Limit: 131072K Total Submissions: 53749   ...

  10. Hadoop question list

    1.我们在开发普通的web app的时候,总会用到orm框架,如hibernates ,ibates等,在hadoop中我们一直使用writable对象,当然如果我们想实现自己的对象类,需要继承这个w ...