JasperReports使用指南(三)---报表数据(表达式)

本文详细介绍了JasperReports中报表表达式的使用,包括引用参数、字段、变量和资源绑定。这些表达式用于计算报表变量、数据分组、定制报表对象外观等。通过$P{}, $F{}, $V{}特殊语法引用报表参数、字段和变量,使得在Java表达式中能够灵活操作报表数据。" 80441314,7249794,Python字典深入理解:初始化、合并与排序,"['Python', '字典操作', '数据处理', '排序算法']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   表达式是JasperReports的一个强大功能。它们可被用来声明那些执行多种计算的报表变量,用来在报表上数据分组,用来指定报表文本字段的内容或更进一步定制报表上对象的外观。

基本上所有的报表表达式都是通过特殊的语法可引用到报表参数,报表字段,报表变量和报表资源绑定的Java表达式。

XML报表设计中有几个元素定义表达式:

<variableExpression>, <initialValueExpression>, <groupExpression>, <printWhenExpression>, <imageExpression>, <textFieldExpression> and others.

因为所有的JasperReports表达式是真正的Java表达式,你可以在它们中使用任何你想用的类。只要你使用其全类名(包括包)来引用它。当你编译你的报表并且你以数据填充它时,你也应确保你在报表表达式中使用的类是在classpath中的变量。

如果没有办法引用报表参数,报表字段或声明报表参数,报表表达式将没有什么用处。非常幸运,有一个特别的JasperReports语法充许你在创建XML报表设计时在表达式中引进这种的引用。

1.1.1.1.          引用参数(Parameter)

报表参数是通过使用$P{}字串来引用的,如下例:

<textFieldExpression>

$P{ReportTitle}

</textFieldExpression>

这个样例假定我们在报表设计时申明了一个名为ReportTitle的报表参数,其类型为:java.lang.String。当报表被填充时,文本字段将显示此参数的值。

1.1.1.2.            引用字段(Field)

为了在表达式中使用报表字段引用,字段名必须放在$F{ }字符串之间。例如,你想在报表上一个文本字段中显示两个数据源字段的连接值,你可定义如下的表达式:

<textFieldExpression>

$F{FirstName} + " " + $F{LastName}

</textFieldExpression>

此表达式可以更复杂:

<textFieldExpression>

$F{FirstName} + " " + $F{LastName} + " was hired on " +

(new SimpleDateFormat("MM/dd/yyyy")).format($F{HireDate}) + "."

</textFieldExpression>

 

 

1.1.1.3.            引用变量(Variable)

要在表达式中引用报表变量,必须将变量名放在$V{ }字符串之间,如下例:

<textFieldExpression>

"Total quantity : " + $V{QuantitySum} + " kg."

</textFieldExpression>

 

如你所见,通过特定的JasperReports语法引进的参数,字段和变量的引用是真正的Java对象。从报表设计上的参数,字段或变量声明材料上可知它们的类,我们将可在我们的表达式中调用这些对象引用上的方法。

此例将显示我们如何从一个java.lang.String报表字段中提取并显示第一个字符:

<textFieldExpression>

 $F{FirstName}.substring(0, 1)

</textFieldExpression>

 

1.1.1.4.            引用资源(Resource Bundle)

<jasperReport ...... resourceBundle="i18n">

<textFieldExpression class="java.lang.String">

    <![CDATA[$R{text.paragraph1}]]>

</textFieldExpression>

</jasperReport>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值