本指南描述了在运行时刻为 汇总字段 模拟 邮件合并 功能的步骤。 因为在当前的 XtraReports 实现中没有提供此功能,因此可以使用几个代码行轻松地模拟此功能。

要模拟汇总的邮件合并功能,则执行下列操作。

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

  2. 添加新空白报表 到项目中,并 绑定报表 到 Northwind 示例数据库 (与 XtraReports 安装一起提供的 nwind.mdb 文件) 的 "Products" 表。

  3. 对报表数据分组 (按照 CategoryID 数据字段分组)。 同时,为了在每个分组的底部显示汇总值,把一个 GroupFooter 带区添加到报表中,例如,使用 Group and Sort 面板

  4. 然后,从 Field List(字段列表) 中把 ProductName 字段拖放到所创建的带区上。 同时,把所创建的标签的 XRSummary.Running 属性设置为 Group(分组)、把 XRSummary.Func 属性设置为 Count(计数)。

  5. 把此标签的 XRControl.Tag 属性设置为 CategoryID 数据字段。

  6. 然后,接管此标签的 XRLabel.SummaryCalculated 事件。

    … 并把下列代码粘贴到事件处理程序中。

    C#CopyCode image复制代码
    using System;
    using DevExpress.XtraReports.UI;
    // ...
    
    private void xrLabel2_SummaryCalculated(object sender, TextFormatEventArgs e) {
        e.Text = String.Format("Category #{0} contains {1} items.", ((XRLabel)sender).Tag, e.Value);
    }
    
    Visual BasicCopyCode image复制代码
    Imports System
    Imports DevExpress.XtraReports.UI
    ' ...
    
    Private Sub xrLabel2_SummaryCalculated(ByVal sender As Object, ByVal e As TextFormatEventArgs) _ 
    Handles xrLabel2.SummaryCalculated
        e.Text = String.Format("Category #{0} contains {1} items.", _ 
            (CType(sender, XRLabel)).Tag, e.Value)
    End Sub
    

现在,邮件合并报表已经就绪。 运行打印预览窗体,并查看结果。

CodeCentralShow Me

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

Expand image参阅