什么是并排报表呢?

  

按照我个人理解:并排报表是把两张或者两张以上的报表,放在一个报表页面。

注:为了方便,本示例使用同一个数据源,但是您可以使用相同的方法,而在一个报表文档中显示两个完全不同的 (使用不同数据源的) 报表。

依照惯例,我们先来看看我们最后实现的效果,如图:

  

第一步:窗体布局。

新建一个WinForm窗体,,拉入第三方控件SimpleButton,DocumentViewer,SplitContainerControl,LabelControl,TextEdit,GroupControl,无非就是设置空间Dock属性,还有字体Text属性等,简单布局我就不多阐述了。可以参考系列第一篇。

第二步:创建两个个Devexpress XtraReport报表文件。一个是明细报表DetailSideBySideRpt(用于绑定到最后显示的并排报表MasterSideBySideRpt),一个是最后显示的并排报表MasterSideBySideRpt  如图:

  

  然后新建一个MasterSideBySideRpt,如图:

    

那如何把我们新建的DetailSideBySideRpt报表,并排显示到MasterSideBySideRpt呢?

方法一:添加控件XrSubreport 如图:

  

也可以手动添加代码

this.xrSubreport1.ReportSource = new 创建并排报表.DetailSideBySideRpt();

this.xrSubreport2.ReportSource = new 创建并排报表.DetailSideBySideRpt();//这里我并排的两张报表都使用了同一个DetailSideBySideRpt,可以使用不同的

Form代码

  

       /// <summary>
/// 获取数据集
/// </summary>
/// <returns>返回数据集</returns>
private DataSet Getdataset()
{
DataSet ds = new DataSet();
string cstr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString.ToString();
SqlConnection mycon = new SqlConnection(cstr);
try
{
mycon.Open();
SqlCommand mycom = new SqlCommand("select * from jiaochainfo", mycon);
SqlDataAdapter dpt = new SqlDataAdapter(mycom);
dpt.Fill(ds, "jiaochainfo");
mycon.Close();
}
catch (Exception ex)
{ MessageBox.Show(ex.Message);
} return ds;
}
//点击事件
private void simpleButton1_Click(object sender, EventArgs e)
{
DataSet ds = Getdataset();
XtraReport1 report = new XtraReport1(ds);
report.Landscape = true;
MianXtrareport rpt = new MianXtrareport(ds);
rpt.Landscape = true;
documentViewer1.DocumentSource = rpt;
//显示主报表的文档
rpt.CreateDocument();
} }

详细报表代码

  

         //构造数据参数绑定字段
public XtraReport1(DataSet ds)
{
InitializeComponent();
this.DataSource = ds;
this.DataMember = "jiaochainfo";
this.xrLabel1.DataBindings.Add("Text",ds,"name");
this.xrLabel2.DataBindings.Add("Text",ds,"sex");
this.xrLabel3.DataBindings.Add("Text",ds,"older");
}

主报表代码

  

        //主报表构造函数
public MianXtrareport( DataSet ds)
{
InitializeComponent();
//关键的一步,xrsubreport 控件的报表源等于 xtrareport
this.xrSubreport1.ReportSource = new 并排报表.XtraReport1(ds);
this.xrSubreport2.ReportSource = new 并排报表.XtraReport1(ds); } //在显示之前的事件,利用FilterString属性过滤数据源 private void xrSubreport1_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e)
{
//jtype为数据库库的字段
((XRSubreport)sender).ReportSource.FilterString = "jtype =='体育明星'";
}
//利用FilterString属性过滤数据源 private void xrSubreport2_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e)
{
((XRSubreport)sender).ReportSource.FilterString = "jtype =='影视明星'";
}

Devexpress Xtrareport 并排报表的更多相关文章

  1. Devexpress Xtrareport 打印报表

    需要引用 Using Devexpress.Xtrareport.UI: Using Devexpress.XtraPrinting.Localiztion 实例化报表,xtrareport my=n ...

  2. [原创]Devexpress XtraReports 系列 6 创建并排报表

    昨天我们已经介绍了如何创建交叉报表,详见:[原创]Devexpress XtraReports 系列 5 创建交叉报表 今天我们继续我们的XtraReports系列.Demo和数据库文件最后会附上. ...

  3. DevExpress.XtraReports.UI.XtraReport 动态报表

    原文:DevExpress.XtraReports.UI.XtraReport 动态报表 using System;using System.Collections.Generic;using Sys ...

  4. DevExpress XtraReport - 动态加载报表布局模板

    XtraReport的报表模板文件是.repx,下面的代码演示动态加载报表布局模板. XtraReport mReport = new XtraReport(); mReport.LoadLayout ...

  5. Devexpress XtraReports 交叉报表

    [原创]Devexpress XtraReports 系列 5 创建交叉报表   昨天我们已经介绍了如何创建多栏报表,详见:[原创]Devexpress XtraReports 系列 4 创建多栏报表 ...

  6. DevExpress XtraReport报表预览时可编辑的功能

    设置控件的EditOptions.Enabled=true即可 注册实现PrintingSystem. EditingFieldChanged事件,可获得当前发生更改的控件的值. 另:XtraRepo ...

  7. Devexpress Xtrareport 创建主从报表

    效果 xtrareport 布局 From 代码 private DataSet Getdata() { DataSet ds = new DataSet(); //config配置字符串 strin ...

  8. C# WinfForm 控件之dev报表 XtraReport (五) 并排报表

    有了前边的基础这个就很简单了,建一个容器报表 在detail,上放两个xrsubReport.再做两个明细报表,分别指定到xrsubreport就可以了

  9. devexpress XtraReport报表 ---主从报表

    private void GetWqpWorkPrinter(List<ReelListMagt> list, string WorkDate, User user) { ReelList ...

随机推荐

  1. centos7安装配置时间服务器

    前言: 时间服务器是S/C模型服务,需要配置服务端和客户端 NTP服务端配置:(服务端的IP为1.1.1.14)安装ntp服务:# yum -y install ntp查询网络中的NTP服务器:# n ...

  2. P4219 [BJOI2014]大融合 LCT维护子树大小

    \(\color{#0066ff}{ 题目描述 }\) 小强要在\(N\)个孤立的星球上建立起一套通信系统.这套通信系统就是连接\(N\)个点的一个树. 这个树的边是一条一条添加上去的.在某个时刻,一 ...

  3. 最短路【洛谷P3393】 逃离僵尸岛

    P3393 逃离僵尸岛 题目描述 小a住的国家被僵尸侵略了!小a打算逃离到该国唯一的国际空港逃出这个国家. 该国有N个城市,城市之间有道路相连.一共有M条双向道路.保证没有自环和重边. K个城市已经被 ...

  4. window安装配置 zookeeper 单机模式

    1.zookeeper简单介绍 zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,我所了解到的主要的使用场景有两个 (1).微服务注册中心(Dubbo较常用Zookeeper做注册中 ...

  5. pycharm加开头注释

    选择 File and Code Templates -> Files -> Python Script #!/usr/bin/env python # encoding: utf-8 ' ...

  6. php curl 请求api 接口

    官方文档curl : http://www.runoob.com/php/php-ref-curl.html php开启curl :  ① 打开 php.ini 文件  extension=php_c ...

  7. SQL Server中,varchar和nvarchar如何选择

    正常情况下,我们使用varchar也可以存储中文字符,但是如果遇到操作系统是英文操作系统并且对中文字体的支持不全面时, 在SQL Server存储中文字符为varchar就会出现乱码(显示为??). ...

  8. Flask&&人工智能AI -- 7 MongoDB

    MongoDB初识,增删改查操作,数据类型,$关键字以及$修改器.“$”的奇妙用法,Array Object的特殊操作,选取跳过排序,客户端操作 一.MongoDB初识 什么是MongoDB Mong ...

  9. A. Cinema Line

    A. Cinema Line time limit per test 2 seconds memory limit per test 256 megabytes input standard inpu ...

  10. IntelliJ Save Action

    https://blog.csdn.net/hustzw07/article/details/82824713