32

我是JasperReports的新手,一直在研究一些小样本。似乎“字段”、“参数”和“变量”非常常用来演示动态数据,并且看起来很相似。那么我能问一下他们在JasperReports中的具体区别是什么吗?

我猜变量是在 Jasper 报告中定义的,可以动态改变。参数是从外部源(Java..etc)获取的东西,字段是实体(数据库模式,类实体),但我认为我的理解并不正确。

4

3 回答 3

30

参数是 JasperReports 的简单输入。在使用之前,您必须在 JasperReport 中定义参数。您可以显示变量的值,可以将其用作布尔表达式的一部分,甚至可以将其传递给子报表。这可以是 SQL 查询的输入。

字段是简单的变量定义。您可以将这些视为传递给报表的数据源对象的实例变量,或者如果数据源是 Map,它们可以是键名。如果您将 JasperReport 配置为基于 SQL 创建数据集,则 Fields 是 ResultSet 的列名。您将使用字段来显示执行的 SQL 查询的结果集。

变量是存在于 Jasper Report 中的另一种变量,它们不是输入。它们用于计算某些字段(如上定义)的总和或平均值。您可以使用变量对字段执行许多其他预定义的计算功能。

于 2012-06-14T21:41:51.793 回答
23

根据我的个人经验,JasperReports我可以推断您将最常使用参数和字段。参数和字段是您可以从代码中填充的内存位置或值,即当您生成报告时。

您通常会做的是为您的报告填充一个或多个具有不同设置的参数映射。如果我有摘要页或封面页(报告中的第一页),我会使用参数,例如:

parameters.put("authorName", author); //where authorName is a parameter you have created in your JRXML template.

接下来,您可能正在使用一些自定义"variables"变量,或者您可能正在使用 JasperReports 提供的变量。其中一些有用的变量是:PAGE_COUNT 和 PAGE_NUMBER。他们跟踪...报告页数和页码。当然你可以有自定义变量。

字段用于数据频繁更改的地方。它们与参数非常相似,但随着每次迭代,数据可能会发生变化。就像,一个字段可能是一次迭代的对象germanCar 列表和下一次迭代的japaneseCar对象列表。我会使用一个字段来保存Car可能更改的对象列表。

底线是参数和字段非常相似,但字段是从 填充的JasperReportDataSource(因此它们可以在您填充该数据源时经常更改),而您将用于封面页或自定义 JR 设置的参数同时生成报告本身。他们可能会很混乱。

希望这个对你有帮助!

于 2012-06-14T21:16:20.713 回答
1

通常,

Parameters是您传递给报告填充操作的对象引用。理想情况下,应该有人负责parameters在报告生成过程中通过。该责任可以委托给请求JasperReport生成报告的父应用程序,或者可以使用isForPrompting标志提示用户。

Fields另一方面是数据源返回的任何输出的占位符。

假设我们正在尝试执行以下操作并在报告中SQL显示EMPLOYEE_NAME和显示:EMPLOYEE_ID

SELECT EMPLOYEE_NAME AS EMPLOYEENAME, EMPLOYEE_ID AS EMPLOYEEID FROM EMPLOYEES WHERE DEPARTMENT_NAME = 'SALES';

我们希望将 传递给DEPARTMENT_NAME查询。因此,我们可以在 Jasper 中使用Parameter.

查询现在将返回EMPLOYEENAMEand EMPLOYEEID。我们希望有人持有这个值,以便我们可以引用它。因此,我们现在可以创建两个Fields:EmployeeNameEmployeeId做到这一点。

VariablesJasper 中的变量非常类似于任何编程语言中的变量。它们通常用于评估报表表达式并在其中保存值。

于 2021-11-13T14:56:52.400 回答