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

2024-02-18 13:52

本文主要是介绍报表生成器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 "复选框),延迟打印功能将不起作用。 

这篇关于报表生成器FastReport .Net用户指南:报表中的总计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/721361

相关文章

SpringBoot请求参数接收控制指南分享

《SpringBoot请求参数接收控制指南分享》:本文主要介绍SpringBoot请求参数接收控制指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring Boot 请求参数接收控制指南1. 概述2. 有注解时参数接收方式对比3. 无注解时接收参数默认位置

Mysql用户授权(GRANT)语法及示例解读

《Mysql用户授权(GRANT)语法及示例解读》:本文主要介绍Mysql用户授权(GRANT)语法及示例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql用户授权(GRANT)语法授予用户权限语法GRANT语句中的<权限类型>的使用WITH GRANT

CentOS7更改默认SSH端口与配置指南

《CentOS7更改默认SSH端口与配置指南》SSH是Linux服务器远程管理的核心工具,其默认监听端口为22,由于端口22众所周知,这也使得服务器容易受到自动化扫描和暴力破解攻击,本文将系统性地介绍... 目录引言为什么要更改 SSH 默认端口?步骤详解:如何更改 Centos 7 的 SSH 默认端口1

SpringBoot多数据源配置完整指南

《SpringBoot多数据源配置完整指南》在复杂的企业应用中,经常需要连接多个数据库,SpringBoot提供了灵活的多数据源配置方式,以下是详细的实现方案,需要的朋友可以参考下... 目录一、基础多数据源配置1. 添加依赖2. 配置多个数据源3. 配置数据源Bean二、JPA多数据源配置1. 配置主数据

python中各种常见文件的读写操作与类型转换详细指南

《python中各种常见文件的读写操作与类型转换详细指南》这篇文章主要为大家详细介绍了python中各种常见文件(txt,xls,csv,sql,二进制文件)的读写操作与类型转换,感兴趣的小伙伴可以跟... 目录1.文件txt读写标准用法1.1写入文件1.2读取文件2. 二进制文件读取3. 大文件读取3.1

SpringBoot中配置Redis连接池的完整指南

《SpringBoot中配置Redis连接池的完整指南》这篇文章主要为大家详细介绍了SpringBoot中配置Redis连接池的完整指南,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以... 目录一、添加依赖二、配置 Redis 连接池三、测试 Redis 操作四、完整示例代码(一)pom.

Linux内核参数配置与验证详细指南

《Linux内核参数配置与验证详细指南》在Linux系统运维和性能优化中,内核参数(sysctl)的配置至关重要,本文主要来聊聊如何配置与验证这些Linux内核参数,希望对大家有一定的帮助... 目录1. 引言2. 内核参数的作用3. 如何设置内核参数3.1 临时设置(重启失效)3.2 永久设置(重启仍生效

Python列表去重的4种核心方法与实战指南详解

《Python列表去重的4种核心方法与实战指南详解》在Python开发中,处理列表数据时经常需要去除重复元素,本文将详细介绍4种最实用的列表去重方法,有需要的小伙伴可以根据自己的需要进行选择... 目录方法1:集合(set)去重法(最快速)方法2:顺序遍历法(保持顺序)方法3:副本删除法(原地修改)方法4:

Python 迭代器和生成器概念及场景分析

《Python迭代器和生成器概念及场景分析》yield是Python中实现惰性计算和协程的核心工具,结合send()、throw()、close()等方法,能够构建高效、灵活的数据流和控制流模型,这... 目录迭代器的介绍自定义迭代器省略的迭代器生产器的介绍yield的普通用法yield的高级用法yidle

PyInstaller打包selenium-wire过程中常见问题和解决指南

《PyInstaller打包selenium-wire过程中常见问题和解决指南》常用的打包工具PyInstaller能将Python项目打包成单个可执行文件,但也会因为兼容性问题和路径管理而出现各种运... 目录前言1. 背景2. 可能遇到的问题概述3. PyInstaller 打包步骤及参数配置4. 依赖