JasperReports中变量,参数和字段之间有什么区别?

时间:2012-06-14 20:50:26

标签: jasper-reports

我是 JasperReports 的新手,一直在研究一些小样本。似乎“Fields”,“Parameters”和“Variables”非常常用于演示动态数据,看起来很相似。那么我可以问一下他们在 JasperReports 中的具体区别吗?

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

2 个答案:

答案 0 :(得分:21)

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

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

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

答案 1 :(得分:20)

根据我对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设置何时生成报告本身。他们可能很混乱。

希望这有点帮助!