彩票走势图

报表生成器FastReport .Net用户指南:报表中的总计

翻译|行业资讯|编辑:胡涛|2024-02-18 10:17:52.070|阅读 55 次

概述:这篇文章将向您介绍报表生成器FastReport .Net中有关报表中的总计相关内容,欢迎查阅~

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

FastReport .Net是一款全功能的Windows Forms、ASP.NET和MVC报表分析解决方案,使用FastReport .NET可以创建独立于应用程序的.NET报表,同时FastReport .Net支持中文、英语等14种语言,可以让你的产品保证真正的国际性。

FastReport.NET官方版下载

在许多报告中,我们可能需要显示一些总数信息:组的总和、列表中的行数等等。FastReport 使用总数来完成这项任务。对于总数,您需要指定以下参数:

  • 合计函数类型;
  • 需要计算的表达式。对于 "计数 "函数,不需要说明表达式;
  • 条件。如果满足条件,函数将被计算。不一定要设置条件。
  • 数据段,函数将对其进行处理;
  • 打印总值的数据段。

总函数列表如下:

Function Description
Sum 计算表达式的总和。
Min 计算表达式的最小值。
Max 计算表达式的最大值。
Average 计算 表达式的平均值
Count 返回行数。
CountDistinct
返回不同值的数量。
创建一个总数

我们将以使用合计函数为例进行说明。让我们创建使用"Categories"和 "Products"两个表的 "master-detail"报告:

stimulsoft

编写的报告如下:

stimulsoft

让我们在该报告中添加总计,打印每个类别的库存单位总量--"UnitsInStock "数据列的总和。总计将打印在 "Data Footer "区域。

要打印总值,需要先创建总值。为此,按下 "Data"窗口中的 "Action "按钮,选择 "New total"项。另一种方法是右击数据树中的"Totals" 元素,选择  "New total" 菜单项。您将看到合计编辑器窗口。
stimulsoft

首先,您需要输入总数的名称。您将使用合计的名称来称呼合计,因此,合计的名称要易于理解其计算的内容。让我们把合计称为 "TotalUnits"。

然后,我们为总数选择 "Sum "函数。

现在,我们需要指明计算总计的数据范围。为此,我们在 "Evaluate on each row of the band:(在带的每一行上评估:)"字段中选择 "Data(数据)"带,在该带中打印产品列表。在 "Print on the band:"字段中,我们选择打印总数的条带,即 "Data Footer"条带。

按确定按钮关闭编辑器。你会看到新的总数出现在 "数据 "窗口中。现在可以将其拖入报告中:

stimulsoft

运行报告后,我们将看到以下内容:

stimulsoft

条件合计

在前面的示例中,计算的是所有数据行的总数。我们可以通过在总计编辑器中指明条件来限制这一范围。只有条件返回为真的数据行才会计算总计。

例如,我们可以设置以下条件:

fastreport

这意味着,应为未设置 "Discontinued "标志的产品计算总计。

运行总计

在我们的示例中,打印 "Data Footer"带后重置了总数。出现这种情况的原因是,我们在总计编辑器中指出,打印总计后必须重置总计。因此,每个类别都打印了自己的总值。

如果我们取消选中 "Reset after print"复选框,打印后就不会重置总数。这就是所谓的运行总计。

如果需要同时打印两种类型的合计值(普通合计和运行合计),可以再创建一个具有类似设置的合计值,然后取消选中 "Reset after print "标志。

页码总数

要创建打印在页脚的总数,必须在 "Print on the band:"字段中注明页脚。

在页眉打印总计

通常情况下,您会在页脚部分(如数据页脚、组页脚等)打印总计值。这是一种自然的打印顺序,因为当您打印总计时,其值已经计算完毕,可以随时使用。不过,在某些情况下,您需要将总数打印在页眉上(例如,组页眉)。如果尝试这样做,您将看到一个零值。此时,打印出的总数尚未计算。

为了解决这个问题,FastReport 有一个叫做 "delayed print "的功能。"Text "对象有一个名为 "ProcessAt "的属性,它可以有以下值之一:

Value Description
Default  默认打印模式。这是默认值。
ReportFinished 该对象的值将在报告结束时计算。
ReportPageFinished 该对象的值将在页面中所有条带完成时计算。
PageFinished 该对象的值将在页面结束时计算。
ColumnFinished 该对象的值将在列结束时计算。
DataFinished 该对象的值将在数据带结束时(打印页脚时)计算
GroupFinished 该对象的值将在组结束时计算(打印其页脚时)。

让我们来看看它是如何工作的。将打印总数的 "Text "对象放在组头。将 "Text "对象的 "ProcessAt "属性设置为 "GroupFinished":

fastreport

运行报告时,FastReport 将执行以下操作:

  • 打印组标题。总值将打印为 0(错误),但 FastReport 会记住这个对象,以便以后处理;
  • 打印所有数据行;
  • 打印组页脚。此时,FastReport 将使用打印在组头的对象,并再次处理它以打印正确的总值。

准备好的报告如下:

fastreport

使用 "ProcessAt "属性的其他值,可以在报告标题中打印报告总数(设置 ProcessAt = ReportFinished),或在页眉中打印页面总数(设置 ProcessAt = PageFinished)。

如果打开报告文件缓存("Report/Options..."菜单,"Use file cache "复选框),延迟打印功能将不起作用。 

本次关于 FastReport .Net 介绍就讲解到这里了,点击此处查看关于用户指南的更多内容。如果您想获取更多产品试用/授权/价格信息,请点击FastReport .Net了解,或者点击咨询。


FastReport技术QQ群:585577353      欢迎进群一起讨论


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP