Devexpress Xtrareport 并排报表

什么是并排报表呢?

  

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

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

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

  

第一步:窗体布局。

新建一个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代码

  

 1       /// <summary>
 2         /// 获取数据集
 3         /// </summary>
 4         /// <returns>返回数据集</returns>
 5         private DataSet Getdataset()
 6         {
 7             DataSet ds = new DataSet();
 8             string cstr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString.ToString();
 9             SqlConnection mycon = new SqlConnection(cstr);
10             try
11             {
12                 mycon.Open();
13                 SqlCommand mycom = new SqlCommand("select * from jiaochainfo", mycon);
14                 SqlDataAdapter dpt = new SqlDataAdapter(mycom);
15                 dpt.Fill(ds, "jiaochainfo");
16                 mycon.Close();
17             }
18             catch (Exception ex)
19             {
20
21                 MessageBox.Show(ex.Message);
22             }
23
24             return ds;
25         }
26         //点击事件
27         private void simpleButton1_Click(object sender, EventArgs e)
28         {
29             DataSet ds = Getdataset();
30             XtraReport1 report = new XtraReport1(ds);
31             report.Landscape = true;
32             MianXtrareport rpt = new MianXtrareport(ds);
33             rpt.Landscape = true;
34             documentViewer1.DocumentSource = rpt;
35             //显示主报表的文档
36             rpt.CreateDocument();
37         }
38
39     }

详细报表代码

  

 1
 2         //构造数据参数绑定字段
 3         public XtraReport1(DataSet ds)
 4         {
 5             InitializeComponent();
 6             this.DataSource = ds;
 7             this.DataMember = "jiaochainfo";
 8             this.xrLabel1.DataBindings.Add("Text",ds,"name");
 9             this.xrLabel2.DataBindings.Add("Text",ds,"sex");
10             this.xrLabel3.DataBindings.Add("Text",ds,"older");
11         }

主报表代码

  

 1        //主报表构造函数
 2         public MianXtrareport( DataSet ds)
 3         {
 4             InitializeComponent();
 5             //关键的一步,xrsubreport 控件的报表源等于 xtrareport
 6             this.xrSubreport1.ReportSource = new 并排报表.XtraReport1(ds);
 7             this.xrSubreport2.ReportSource = new 并排报表.XtraReport1(ds);
 8
 9         }
10
11         //在显示之前的事件,利用FilterString属性过滤数据源
12
13         private void xrSubreport1_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e)
14         {
15             //jtype为数据库库的字段
16             ((XRSubreport)sender).ReportSource.FilterString = "jtype ==‘体育明星‘";
17         }
18         //利用FilterString属性过滤数据源
19
20         private void xrSubreport2_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e)
21         {
22             ((XRSubreport)sender).ReportSource.FilterString = "jtype ==‘影视明星‘";
23         }

原文地址:https://www.cnblogs.com/xiaowie/p/8990562.html

时间: 2024-10-10 02:29:43

Devexpress Xtrareport 并排报表的相关文章

DevExpress.XtraReports.UI.XtraReport 动态报表

原文:DevExpress.XtraReports.UI.XtraReport 动态报表 using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using DevExpress.XtraTab;usin

devexpress XtraReport报表 ---主从报表

private void GetWqpWorkPrinter(List<ReelListMagt> list, string WorkDate, User user) { ReelListMagtService service = new ReelListMagtService(); #region 数据源 DataSet ds = new DataSet(); DataTable dt_Main = service.GetWqpWorkHeader(list, WorkDate, user)

DevExpress的XtraReport和微软RDLC报表的使用和对比

原文:DevExpress的XtraReport和微软RDLC报表的使用和对比 我们开发程序的时候,经常会碰到一些报表,如果是Winform的报表,一般可以采用DevExpress控件组的XtraReport,或者微软的RDLC报表,当然还有一些其他的,在此不再赘述.由于本人在Winform开发中经常使用到一些报表,有时候使用XtraReport报表,有时候也使用RDLC报表,因此本篇主要介绍这两种不同类型报表的使用,以及对比它们的差异性,以便我们更好的掌握了解. 1.XtraReport报表的

使用XtraReport的CalculatedFiled(计算字段)实现RDLC报表中表达式

DevExpress报表确实强大,花样繁多,眼花缭乱. 这次使用XtraReport开发报表,很多问题在官方的文档中并没有详细的说明,特此记录. 1.XtraReport中FormattingRules属性是只能返回bool值的条件(Condition)判断,而不是我想要的表达式. 2.根据XtraReport官方文档中拖控件的方式创建的CalculatedFiled才是我想要的表达式. 1>拖控件的方式不灵活,而且XtraReport对象的DataSource(数据源)使用的DataSet类型

在DevExpress程序中使用条形码二维码控件,以及进行报表打印处理

在很多业务系统里面,越来越多涉及到条形码.二维码的应用了,不管在Web界面还是WInform界面都需要处理很多物料相关的操作,甚至很多企业为了减少录入错误操作,为每个设备进行条形码.二维码的标签,直接在流程中进行扫描处理,仅仅在界面勾选一些处理选项即可,极大提高工作效率,降低出错的几率.本篇随笔介绍如何在基于WInform的DevExpress程序中对条形码.二维码的处理,包括界面展示,报表打印等常规的处理. 1.DevExpress的条形码操作及报表打印 在15.1以上的DevEpxress版

Web 报表

Web(World Wide Web)即全球广域网,也称为万维网,它是一种基于超文本和 HTTP 的.全球性的.动态交互的.跨平台的分布式图形信息系统.Web 报表是以 Web 作为信息展示平台,可以让用户在线查看.编辑.保存.输出的报表. 一.Web 报表的起源 在没有计算机以前,人们利用纸和笔来记录数据,报表数据和报表格式是紧密结合在一起的,都是在同一个本子上.数据也只能有一种几乎只有记帐的人才能理解的表现形式,且这种形式难于修改. 计算机作为一种新的生产工具出现后,它有一个主要功能就是文字

2014年DevExpress使用教程合集

DevExpress系列教程 DevExpress Universal Subscription是DevExpress旗下重要的用户界面控件,也是全球使用最多的.NET用户界面控件套包.自2014年以来,慧都小编为大家奉献了很多使用教程.如果你详细阅读了以下教程,相信会对你起到非常大的帮助: DevExpress使用心得一:换肤 DevExpress使用心得二:界面设计(1) DevExpress使用心得三:界面设计(2) DevExpress使用心得四:在GridView中加载动态图片 Dev

Winform开发框架中的综合案例Demo

在实际的系统开发中,我们往往需要一些简单的的案例代码,基于此目的我把Winform开发框架中各种闪光点和不错的功能,有些是我们对功能模块的简单封装,而有些则是引入了一些应用广泛的开源组件进行集成使用,因此把它们做了一个Demo进行展示,以方便我们随时了解和参考,并能够快速应用相应的场景到具体的项目中. 1.闪屏展示界面及主体界面 在很多系统里面,提供一个设计不错的图片作为程序界面展示的效果是挺不错的,这个小程序也不例外,基本上整合了一些WInform界面常用的各种功能. 而整个案例的界面的界面以

Devpexpress 打印预览问题

devexpress 12 之前报表打印: XtraReports rp1 = new XtraReports(); rp1.ShowPreview(): 即可预览报表: devexpress 13 之后报表打印预览 XtraReports rp1 = new XtraReports(); ReportPrintTool tool = new ReportPrintTool(rp1); tool.ShowPreview(): 以前直接的可调用方法,也只能先新增ReportPrintTool,再调