本指南描述了使用 XRSubreport 控件创建 主/从报表 的步骤。 关于另一种完成此任务的可选方式,请参阅 如何: 使用从报表带区创建主/从报表。
要使用子报表控件创建主/从报表,则执行下列操作。
创建主报表并绑定到数据
-
启动 MS Visual Studio (2005、2008 或 2010),并且新建一个或者打开一个现有的 Windows 窗体应用程序。
-
添加新空白报表 (命名为 XtraReport1) 到项目中。 它将被用作主报表。
-
绑定报表 到 Northwind 示例数据库 (与 XtraReports 安装一起提供的 nwind.mdb 文件) 的 "Categories" 表。
-
把 CategoryName 和 Description 字段从 Field List (字段列表) 窗口中拖放到报表的 Detail(细节) 带区。
然后,使用鼠标右键把 Picture 字段也拖放到 Detail 带区,并且在被调用的上下文菜单中,选择 PictureBox 项。
此外,还可以把它的 Sizing 属性设置为 ZoomImage,以便于提升性能。
创建并定制从报表
-
现在, 添加另一个空白报表 (命名为 XtraReport2) 到项目中。 它将被用作从报表。
-
把它绑定到 相同 nwind.mdb 数据库的 "Products" 表 (为了使本示例简明易懂)。
-
然后,把 ProductName 和 UnitPrice 字段从 Field List (字段列表) 窗口中拖放到报表的 Detail 带区。
-
为了把一个参数添加到报表中,在 Field List(字段列表) 窗口中使用鼠标右键单击 Parameters 项,并且选择 Add Parameter(添加参数) 上下文菜单项。
-
选中新建的参数,并把它的 Parameter.Name 属性设置为 CatID、把 Modifiers 属性设置为 Public、把 Parameter.Type 属性设置为 Int32、把 Parameter.Visible 属性设置为 false。
-
然后,单击报表的 智能标记,并在被调用的操作列表中,单击 XtraReportBase.FilterString 属性的省略号按钮。
在被调用的 FilterString Editor 中,构造一个表达式,其中 CategoryID 数据字段与 CatID 参数进行比较。 要访问参数,则单击右侧的图标,直到它变为问号图标为止。
嵌入子报表
-
现在,切换回 XtraReport1.cs,并把 XRSubreport 控件从 DX.10.2: Report Controls 工具箱 标签页中拖放到 Detail(细节) 带区。
-
为了应用更改,可能需要重新生成解决方案。 要这样做,则在项目的 Build(生成) 菜单中,单击 Rebuild Solution(重新生成解决方案) 项。
-
把 XRSubreport 控件的 SubreportBase.ReportSource 属性设置为 XtraReport2。
-
把下列代码添加到 XRSubreport 的 BeforePrint 事件处理程序中。
C# 复制代码 using System.Drawing.Printing; // ... private void xrSubreport1_BeforePrint(object sender, PrintEventArgs e) { ((XtraReport2)((XRSubreport)sender).ReportSource).CatID.Value = Convert.ToInt32(GetCurrentColumnValue("CategoryID")); }
Visual Basic 复制代码 Imports System.Drawing.Printing ' ... Private Sub xrSubreport1_BeforePrint(ByVal sender As Object, ByVal e As PrintEventArgs) _ Handles xrSubreport1.BeforePrint CType((CType(sender, XRSubreport)).ReportSource, XtraReport2).CatID.Value = _ Convert.ToInt32(GetCurrentColumnValue("CategoryID")) End Sub
查看运行结果
现在主/从报表已经就绪。 对于 XtraReport1 实例, 运行打印预览窗体 并查看结果。