本指南描述了使用两个显示了员工信息的同类子报表,来创建 并排报表 的步骤。

注意,尽管本指南中被并排显示的是相同的报表,但是您可以使用相同的方法,而在一个报表文档中显示两个完全不同的 (使用不同数据源的) 报表。

要创建一个并排报表,则执行下列操作。

  1. 启动 MS Visual Studio (2005、2008 或 2010),并且新建一个或者打开一个现有的 Windows 窗体应用程序

  2. 添加新空白报表(命名为 detailReport) 到项目中。

  3. 绑定报表 到 Northwind 示例数据库(nwind.mdb 文件,在 XtraReports 安装中已提供) 中的“Employees”表。

  4. 减少报表的右侧空白,以便于两个报表能适合于页面的宽度。

  5. 把所需的数据字段从 Field List(字段列表) 中拖放到报表的细节带区。

    注意,可以使用 邮件合并静态动态 文本嵌入到控件的内容中,或者把控件同时绑定到几个数据字段。

  6. 现在,把另一个报表 (命名为 masterReport) 添加到应用程序中。

  7. 把两个 XRSubreport 控件从 DX.10.2: Report Controls 工具箱标签页中拖放到报表的细节带区。

  8. 把两个子报表的 SubreportBase.ReportSource 属性都设置为 detailReport1,把 Size.Width 属性都设置为 300

  9. 为了应用这些更改,单击 项目 菜单中的 重新生成解决方案 菜单项。

  10. 最后,以下列方式接管两个子报表的 BeforePrint 事件。

    C#CopyCode image复制代码
    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 BasicCopyCode image复制代码
    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 报表 运行打印预览窗体,并查看结果。

CodeCentralShow Me

在 DevExpress Code Central 数据库中可以找到完整的示例项目,网址是 http://www.devexpress.com/example=E920。 取决于目标平台类型 (ASP.NET、WinForms 等),可以在线运行本示例,或者下载自动可执行的示例。

Expand image参阅