FastReport中国社区FastReport联系电话 联系电话:023-68661681

如何在FastReport VCL 6中的数据组标题中显示总计

来源:   发布时间:2018-05-15   浏览:3519次

FastReport VCL 6中出现的新功能之一是能够在标题栏中显示分组结果。以前,您只能在分组后显示结果。如果数据组足够大,则必须将其向下滚动以查找结果。在数据组标题中打印结果要方便得多。

我们来看看在标题栏中使用总数的特性。最初有关它如何工作的一点理论。

标题中的总数使用延迟处理来实现。在报告输出期间,所有具有非标准处理条件的对象都被放置在特殊列表中。然后,在达到一定条件时,触发对象的处理。

在标题区中成功显示总数必须遵守许多条件:

  1. 标题栏必须有成对的页脚band。这对确定报告的结构很有必要。或者更好地说,以确定我们将在下面考虑的事件;
  2. 成对的页脚band必须有一个可以计算总数的字段。相同的字段将被添加到标题band。如果你不需要这个数据组的页脚的结果,那就只是让它看不见。

现在考虑“Text”对象的新属性。Processing属性允许您定义一个事件,通过这个事件将在这个对象中显示一个值。事实上,Processing包含两个属性——GroupLevel和ProcessAt。 GroupLevel允许您设置数据组的嵌套级别。这是在您使用几个嵌套分组的情况下完成的。因此,您可以在每个组的每个标题中显示总计。

ProcessAt包含您可以开始处理该字段的事件列表。以下是可能的值:

  • paColumnFinished——列显示结束时;
  • paCustom——用户在报告脚本中创建的任意事件;
  • paDataFinished——显示所有数据后;
  • paDefault——默认值;
  • paGroupFinished——在数据组显示结束时;
  • paPageFinished——显示页面时;
  • paReportFinished——显示报告时;
  • paReportPageFinished——显示报告模板页面时。

例如,您选择在数据组结束时生成总数。为了发现这个数据组已经结束,FR要求一个小的数据组隐藏单元格。如果所选事件是paReportFinished,则页面页脚是必需的。

现在让我们在实践中考虑以上所有内容。我们需要创建一个包含两个会话的报告。一个嵌入另一个。从演示数据库中获取销售表。

TotalsInHeader1

您可以从模板中看到,我们创建了一个公司名称的数据组。然后我们添加了订单号的组。最后,在“Data” band中,显示了订单中的信息。每组的页脚总数为:

[SUM (< Sales. "Qty"> * < Sales. "List Price">, MasterData1)]

摘要显示在报告汇总区中。

我们的目标是将结果带入标题栏。我们从第一组开始。在右侧添加文本字段:“Total group sum: [SUM (< Sales." Qty "> * < Sales." List Price ">, MasterData1)] $”。在这个文本框的属性中,我们找到Processing并设置paGroupFinished的值:

TotalsInHeader2

运行报告:

TotalsInHeader3

现在让我们将两个文本字段添加到第二组。我们会把它们一个接一个放在右边。对于第一组,该值为“[SUM (< Sales." Qty "> * < Sales." List Price ">, MasterData1)] $”。对于第二组,是“from [SUM (< Sales." Qty "> * < Sales." List Price ">, MasterData1)] $”。

现在为第一组设置属性:GroupLevel - 0,ProcessAt - paGroupFinished。

对于第二组我们设置相同的属性:GroupLevel - 1,ProcessAt - paGroupFinished。

因此,您将首先推导出当前数据组的结果,然后推导出该级别以上的数据组。我们来看看它的样子:

TotalsInHeader4

它仍然显示整个报告的总计。添加一个文本字段到报表头:Total sum: [SUM (< Sales. "Qty"> * < Sales. "List Price">, MasterData1)] $。我们为它设置属性:GroupLevel - 0,ProcessAt - paReportPageFinished。运行报告:

TotalsInHeader5

在每种情况下,我们都显示一个具有相同聚合表达式的字段,但我们为数据组和报告标题获得了不同的值。这是关于组建总时间的一切。在某个时间点,聚合函数具有不同的值。这就是为什么正确设置ProcessAt参数很重要。


产品介绍 | 下载试用 | 优惠活动 | 在线客服 | 联系Elyn


5月促销活动
本站文章除注明转载外,均为本站原创或翻译
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明:文章转载自:FastReport控件中文网 [https://www.fastreportcn.com/]
本文地址:https://www.fastreportcn.com/post/2059.html

联系我们
  • 重庆总部 023-68661681
购买
  • sales@evget.com
合作
  • business@evget.com


在线
客服
微信
QQ 电话
023-68661681
返回
顶部