5.2 参数(Parameters)
Parameters是传递给报表装填操作的对象引用。这些参数主要作用于把那些不能从报表数据源中获得的数据传给报表引擎。例如,我们可能要把执行报表装填过程的用户名字专递给报表引擎,如果我们想让它显示在报表上或者在我们想在报表的title上动态的改变它,我们就可以以参数的形式传给报表引擎。
我们可以用如下的方式定义参数:
<parameter name=”ReportTitle” class=”java.lang.String”>
<parameter name=”MaxOrderId” class=”java.lang.Integer”>
<parameter name=”SummaryImage” class=”java.awt.Image”>
这里所提供的报表参数值可以被用到各种报表表达式中,在报表SQL查询中,甚至可以用到报表的scriptlet类里。下面是构成参数定义的全部组件(XML元素):
参数名
name属性是一个强制属性。JasperReport的命名习惯和Java语言的命名习惯是类似的,这意味着参数名应该是一个单词,其中不含特殊字符(如分号)。
参数类型
报表参数的第二个强制属性是提供参数值的类型名。这个类型属性可以使任意的值,只要这个类型的名字在报表编译期和装填期能在classpath中找到即可。
Prompting for Parameter values
在GUI引用程序中,建立一个报表参数集,让用户在执行装填过程之前输入某些应用程序需要用户输入的报表参数是很有用的。可选参数isForPropting参数用来声明是否显示提示信息让用户输入某些参数。下面的例子中,我声明了一个文本参数,当需要用户输入参数值的时候,这个文本参数用来在一个已定制的对话框中描述需要用户输入什么样的参数。
<parameter isForPrompting="true">
<parameterDesciption>
<![CDATA[
Please type here the report comments if any
]]>
</parameterDesciption>
</parameter>
注意:相信大家都知道<![CDATA[内容]]>表示“内容”将不被XML解析器解析,也就是说,你可以在“内容”里加入XML的特殊字符,如>,<等等。
参数的默认值(parameter default value)
通常参数值都是使用java.util.Map对象传给装填过程的,其中参数名作为Key。这样,你就不用每次都为每个参数提供一个value了—可以批量放到Map对象里一起传给装填管理器。如果你没有为参数提供一个value,引擎就认为它是null。但是如果你为它提供了一个默认值,则引擎将在你没提供这个参数值的情况下使用这个默认值。如果你在装填时没提供数据,下面的java.util.Date将在装填是被引擎使用来表示当天日期:
<parameter>
<defaultValueExpression>
new java.util.Date()
</defaultValueExpression>
</parameter>
在参数的默认表达式中,我们可以使用这个与定义的报表参数。
5.2.1 内置的报表参数
每一个报表设计中都含有一些与定义的报表参数,这些内置的参数的描述如下:
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-30468-15.html
你余杭那些地哪里来的
不只是退休职工
fightordie