本文档阐述了使用内置函数,或根据在 XRControl.BeforePrint 事件中指定的自定义汇总,来为数据绑定标签计算汇总的方式。 要学习如何使用脚本进行汇总计算,请参阅 通过脚本计算自定义汇总。
本文档由下列小节组成。
计算自动汇总
对于数据绑定 XRLabel 控件 (或其子类控件),XtraReports 支持多个汇总函数的自动计算 —— 贯穿标签控件获得其内容的数据字段。 这些函数包括求和、最大值、最小值、计数、以及其他许多函数。 在 SummaryFunc 枚举中列出了可用函数的完整列表。
注意 |
---|
仅当标签控件被绑定到 数值 或 日期时间 数据,才可以正确计算汇总值。 |
要为标签控件计算自动汇总,则执行下列操作。
-
把标签控件绑定到待汇总的数据。 注意,仅当 数据被绑定到标签控件的 XRControl.Text 属性时,才计算汇总。 要获得相关细节,请参阅 把报表控件绑定到数据。
-
展开 XRLabel.Summary 属性来查看由 XRSummary 对象提供的所有选项。
或者单击该属性的省略号按钮,使用 Summary Editor(汇总编辑器) 来调整所有设置。
-
首先,应该通过 XRSummary.Func 属性来指定实际的被计算的函数。 它的默认设置为 Sum (求和)。
-
通过 XRSummary.Running 属性指定数据的汇总范围。 可以在 报表组、页面 或 整个报表 中计算自动汇总。
注意,应该把汇总标签放置在与指定的汇总范围对应的带区上。 这样,举例来说,如果对 页面 进行汇总计算,就应该把汇总标签放置到 PageHeaderBand 或 / 和PageFooterBand 带区。 或者,如果对 报表组 进行汇总计算,就应该把汇总标签放置到相应的 GroupHeaderBand 或 GroupFooterBand 带区。
注意 此外,为了计算汇总,关键是要把另一个标签 (绑定到与汇总标签进行汇总的相同数据字段) 放置在报表的 Detail(细节) 带区。 Detail 带区中的标签包含报表的一般数据,如果为空,则汇总也为空,而不考虑为汇总标签指定了哪种汇总范围以及被放置在哪个带区。
-
由 XRSummary.FormatString 和 XRSummary.IgnoreNullValues 属性表示其他汇总选项。
注意,因为在 XRControl.BeforePrint 事件被触发之后,才计算汇总值,因此不能在此事件中获得汇总结果。 使用 XRSummary.GetResult 方法来获得汇总值值。 或者,接管 XRLabel.SummaryCalculated 事件来自定义计算汇总值,并且在计算之后执行任何附加操作。
计算自定义汇总
如果内置汇总函数不能满足需求,那么可以使用 XtraReports 计算自定义汇总函数。 执行下列操作:
- 把 XRSummary.Func 属性设置为 SummaryFunc.Custom;
- 接管 XRLabel.SummaryReset 事件来设置一个或几个计数器的初值,这些计数器在计算自定义汇总时被调用;
- 接管 XRLabel.SummaryRowChanged 事件,每当当前数据行被改变时,就执行特定的计算;
- 接管 XRLabel.SummaryGetResult 事件来获取结果值,并把它作为自定义汇总结果进行显示。
关于阐明这种方式的按步骤操作指南,请参阅 如何: 计算自定义汇总。
有时,需要根据其他 汇总函数 的结果来计算复杂的函数。 在这种任务中,在相应的 XRLabel 的 XRLabel.SummaryCalculated 事件处理程序中获得汇总函数的结果,并且在另一个标签的 XRControl.PrintOnPage 事件处理程序中把形成的总计指派到 Text 属性。
示例
下列与汇总计算相关的按步骤操作的示例是有用的。