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

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

FastReport.NET官方版下载(qun:585577353)icon-default.png?t=N7T8https://www.evget.com/product/1861/download

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

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

总函数列表如下:

FunctionDescription
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 "的属性,它可以有以下值之一:

ValueDescription
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 "复选框),延迟打印功能将不起作用。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/474707.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Netty Review - NIO空轮询及Netty的解决方案源码分析

文章目录 Pre问题说明NIO CodeNetty是如何解决的?源码分析入口源码分析selectCntselectRebuildSelector Pre Netty Review - ServerBootstrap源码解析 Netty Review - NioServerSocketChannel源码分析 Netty Review - 服务端channel注册流程源码解析 问题说明 N…

111期_C++_2024年1月份作业博客_选择题错题总结

一、野指针问题:在定义的时候没有初始化,就不能能用scanf 或 printf 二、一个变量出现在表达式的两边作为两个不同的操作数, 并且其中一个操作数带有,此时表达式出现歧义 三、两端出栈问题: 错因:未理解题…

OpenGL学习——15.投光物_聚光

前情提要:本文代码源自Github上的学习文档“LearnOpenGL”,我仅在源码的基础上加上中文注释。本文章不以该学习文档做任何商业盈利活动,一切著作权归原作者所有,本文仅供学习交流,如有侵权,请联系我删除。L…

数据的力量:构筑现代大型网站之数据库基础与应用

目录 数据库基础知识--前言 大型网站架构特点 DBA数据库管理员 什么是数据? 数据存储 什么是数据库 数据表的概念 为什么需要mysql这样的数据库管理工具?★ DBMS 收费数据库与免费数据库 运维和数据库 开发与运维的不同阶段 数据库类别 数据库具体应用…

自学ESPIDF(一)点个灯

不废话,万物皆从点灯开始。 espidf的examples里有个blink,作为测试再好不过了。 /* Blink ExampleThis example code is in the Public Domain (or CC0 licensed, at your option.)Unless required by applicable law or agreed to in writing, thissof…

PCL库学习及ROS使用

PCL库学习 c_cpp_properties.json {"configurations": [{"name": "Linux","includePath": ["${workspaceFolder}/**","/usr/include","/usr/local/include"],"defines": [],"compiler…

代码随想录Leetcode 738. 单调递增的数字

题目: 代码(首刷自解 2024年2月18日): 爽,无bug一遍过。这题思路是将数字从低位到高位一位一位放入数组中,如果出现高位大于地位的情况则将低位全部重置为9,然后高位-1,最后反向遍历相加即可 c…

GPT-4助力我们突破思维定势

GPT-4在突破思维局限、激发灵感和促进知识交叉融合方面的作用不可小觑,它正逐渐成为一种有力的工具,助力各行业和研究领域的创新与发展。 GPT-4在突破传统思维模式、拓宽创新视野和促进跨学科知识融合方面扮演着越来越重要的角色: 突破思维…

源码网打包,目前有3000多个资源

源码网打包,目前有3000多个资源 需要赶快下手吧,到手可以使用,搭建好和本站一样,全网唯一 优化缩略图演示:https://www.htm.ink默认缩略图演示:https://blog.htm.ink网站截图

SIT14503Q 系列宽范围 3V~40V 输入,低功耗,低压差线性稳压器

SIT14503Q 系列是超低静态电流,低压差线性稳压器( LDO ),具有 3V 至 40V 的宽输入电压范 围。 SIT14503Q 可提供 5V 固定输出。此外,该产品系列还可提供 2.5V , 3.3V 和 15V 的固定输出&#…

ubuntu22.04@laptop OpenCV Get Started: 013_contour_detection

ubuntu22.04laptop OpenCV Get Started: 013_contour_detection 1. 源由2. 应用Demo2.1 C应用Demo2.2 Python应用Demo 3. contour_approx应用3.1 读取图像并将其转换为灰度格式3.2 应用二进制阈值过滤算法3.3 查找对象轮廓3.4 绘制对象轮廓3.5 效果3.6 CHAIN_APPROX_SIMPLE v.s…

【解决(几乎)任何机器学习问题】:处理分类变量篇(上篇)

这篇文章相当长,您可以添加至收藏夹,以便在后续有空时候悠闲地阅读。 本章因太长所以分为上下篇来上传,请敬请期待 很多⼈在处理分类变量时都会遇到很多困难,因此这值得⽤整整⼀章的篇幅来讨论。在本章中,我将 讲述不同…