本指南描述了使用 XRPivotGrid 控件来创建 交叉表报表 的步骤。 此控件被设计用于把透视表嵌入到报表中,从而提供自动计算汇总和总计的功能,计算时不限制表的行数与列数。
尽管 XRPivotGrid 控件是独立的 原产报表控件,并基于 XtraPivotGrid 套件,但是在 XtraReports 中使用 XRPivotGrid 控件时,不需要购买 XtraPivotGrid 套件。 只需要把对适当程序集 (DevExpress.PivotGrid.v10.2.Core.dll 和 DevExpress.XtraPivotGrid.v10.2.dll) 的引用添加到项目的 引用 列表中。 当把 XtraReport 添加到项目中时,会自动添加这些引用。
注意 |
---|
如果您更喜欢观看视频,而不是执行这些按步骤的操作指令,那么可以在我们的 DevExpress 频道数据库中访问相应的指南: 报表工具 —— 如何创建交叉表报表 (需要因特网连接)。 |
要创建交叉表报表,则执行下列操作。
准备数据绑定 XRPivotGrid 控件
-
启动 MS Visual Studio (2005、2008 或 2010),并且新建一个或者打开一个现有的 Windows 窗体应用程序。
-
添加新报表 到应用程序中。
-
把 XRPivotGrid 控件从 DX.10.2: Report Controls 工具栏 标签页中拖放到 Detail(细节) 带区。
-
单击 xrPivotGrid1 的 智能标记 并在操作列表的 DataSource 下拉菜单中,单击 Add Project Data Source(添加项目数据源)... 链接。
-
然后,把控件绑定到 Northwind 示例数据库 (与 XtraReports 安装一起提供的 nwind.mdb 文件) 的 "SalesPerson" 视图。
注意 |
---|
如果 XRPivotGrid 与报表一样使用了相同的数据集,那么要确保在执行这些步骤之后,报表的 XtraReportBase.DataSource 属性被设置为 null (在 Visual Basic 中为 Nothing)。
这是必须的,因为如果报表也使用了相同的数据源,那么会导致无效的输出: 报表的细节带区及其包含的透视网格,将被打印与数据源中的行数相同的次数。
|
指定透视网格的内容
-
再次通过透视网格的智能标记,调用其操作列表,并单击 Run Designer(运行设计器)... 链接。
-
在此对话框中, 单击 Retrieve Fields(取回字段) 按钮。
-
切换到左侧导航栏的 Layout(布局) 功能区。
-
为了指定透视网格的布局,把所需的字段拖放到适当的区域。 例如:
- 把 CategoryName 和 ProductName 字段拖放到 行字段 区域;
- 把 Country 和 SalesPerson 字段拖放到 列字段 区域;
- 把 Quantity 和 ExtendedPrice 字段拖放到 数据项 区域。
如果需要,也可以使用此对话框来调整其他字段选项。 当完成时,单击 Apply(应用) 按钮并关闭对话框。
调整透视网格的布局
-
要在打印预览中按照边框把网格列精确地分开,则可以把报表的 XtraReport.VerticalContentSplitting 属性设置为 Smart。
-
如果需要使列宽适合于字段内容,那么可以在 XRPivotGrid 控件的 XRControl.BeforePrint 事件中,以下列方式完成此任务。
C# | 复制代码 |
---|
using System;
using System.Drawing.Printing;
using DevExpress.XtraReports.UI;
private void xrPivotGrid1_BeforePrint(object sender, PrintEventArgs e) {
xrPivotGrid1.BestFit(fieldProductName);
}
|
Visual Basic | 复制代码 |
---|
Imports System
Imports System.Drawing.Printing
Imports DevExpress.XtraReports.UI
Private Sub xrPivotGrid1_BeforePrint(ByVal sender As Object, _
ByVal e As PrintEventArgs) Handles xrPivotGrid1.BeforePrint
xrPivotGrid1.BestFit(fieldProductName)
End Sub
|
查看运行结果
参阅