本指南描述了使用两个显示了员工信息的同类子报表,来创建 并排报表 的步骤。
注意,尽管本指南中被并排显示的是相同的报表,但是您可以使用相同的方法,而在一个报表文档中显示两个完全不同的 (使用不同数据源的) 报表。
要创建一个并排报表,则执行下列操作。
-
启动 MS Visual Studio (2005、2008 或 2010),并且新建一个或者打开一个现有的 Windows 窗体应用程序。
-
添加新空白报表(命名为 detailReport) 到项目中。
-
绑定报表 到 Northwind 示例数据库(nwind.mdb 文件,在 XtraReports 安装中已提供) 中的“Employees”表。
-
减少报表的右侧空白,以便于两个报表能适合于页面的宽度。
-
把所需的数据字段从 Field List(字段列表) 中拖放到报表的细节带区。
注意,可以使用 邮件合并 把 静态 和 动态 文本嵌入到控件的内容中,或者把控件同时绑定到几个数据字段。
-
现在,把另一个报表 (命名为 masterReport) 添加到应用程序中。
-
把两个 XRSubreport 控件从 DX.10.2: Report Controls 工具箱标签页中拖放到报表的细节带区。
-
把两个子报表的 SubreportBase.ReportSource 属性都设置为 detailReport1,把 Size.Width 属性都设置为 300。
-
为了应用这些更改,单击 项目 菜单中的 重新生成解决方案 菜单项。
-
最后,以下列方式接管两个子报表的 BeforePrint 事件。
C# 复制代码 using System.Drawing.Printing; using DevExpress.XtraReports.UI; // ... private void xrSubreport1_BeforePrint(object sender, PrintEventArgs e) { ((XRSubreport)sender).ReportSource.FilterString = "[EmployeeID] = 1"; } private void xrSubreport2_BeforePrint(object sender, PrintEventArgs e) { ((XRSubreport)sender).ReportSource.FilterString = "[EmployeeID] = 2"; }
Visual Basic 复制代码 Imports System.Drawing.Printing Imports DevExpress.XtraReports.UI ' ... Private Sub xrSubreport1_BeforePrint(ByVal sender As Object, ByVal e _ As PrintEventArgs) Handles XrSubreport1.BeforePrint CType(sender, XRSubreport).ReportSource.FilterString = "[EmployeeID] = 1" End Sub Private Sub xrSubreport2_BeforePrint(ByVal sender As Object, ByVal e _ As PrintEventArgs) Handles XrSubreport2.BeforePrint CType(sender, XRSubreport).ReportSource.FilterString = "[EmployeeID] = 2" End Sub
现在并排报表已经就绪。 对 masterReport 报表 运行打印预览窗体,并查看结果。
Show Me |
---|
在 DevExpress Code Central 数据库中可以找到完整的示例项目,网址是 http://www.devexpress.com/example=E920。 取决于目标平台类型 (ASP.NET、WinForms 等),可以在线运行本示例,或者下载自动可执行的示例。 |