ireport 5.1.0 教程之参数(Parameters).pdf
文本预览下载声明
ireport 5.1.0 教程之参数(Parameters)
Parameters通常是用来在打印的时候从程序里传值到报表里。也就是说
parameters通常的是起参数传递的作用。他们可以被用在一些特定的场合(比如
应用中SQL 查询的条件),如report中任何一个需要从外部传入的变量等(如一
个Image对象所包括的char或报表title的字符串)。
和使用 Fields一样,parameters也需要在创建的时候定义它的数据类型。
parameters的数据类型是标准的java 的Object。
在ireport中,Parameters的机制是允许用户通过应用程序传递参数致报
表当中。在jasperreort 中的某个对象中的expression可以通过下面的语法来
访问一个当前ireport中存在的parameter:
$P{parametername}。
如果应用程序没有为报表中定义的parameter赋值 ,那么parameter将会
取我们在定义它的时候设置的defaultvalue的值。parameters是一个Java
Object,所以如果它的类型是Object类型 ,我们在其defaultvalue里写下面的
表达式就是错误的:
0.123
你必须要创建一个Object,如:
NewDouble(0.123)
这种写法就是正确的。
在查询中使用Parameters
Parameters可以用来做SQL查询的条件参数的传递。如果你想根据部门编
号(dept_id)得到客户的详细信息 (设计的时候我们是不知道这个部门编号的具
体值是多少的).此时我们可以这样组织查询语句:
select*fromemployeewheredept_id=$P{deptId}
此时SQL查询引擎将会采用PreparedStatement来处理传入的deptId值
以此作为查询条件参数。
如果你想直接通过parameter 值来作为SQL语句的一部分,那么你可以使
用下面的特殊语法:$P!{parametername}。这种写法允许你在查询时用
parameter的值来替换parametername。例如,如果我们有一个参数名为
MyWhere其值为:wheredept_id=D11,查询写法如下:
Select*fromemployee$P!{MyWhere}
查询时实际提交的字符串是:
Select*fromemployeewheredept_id=D11
在程序里使用Parameters
在应用程序里 ,如果想把某个值传递到我们的报表中parameters时 ,我们
可以把相关的值放入一个扩展java.util.Ma 接口类里 ,然后传入到ireport里。
如下面的代码:
...
Ma hm=newHashMap();
...
JasperPrint print=
JasperFillManager.fillReport(fileName,hm,new
JREmptyDataSource());
fillReport是一个关键的方法,它允许你通过一个文件名,一个参数集来传递
到我们要调用的报表当中。例-如通过下面的处理方法我们可以让一个处部的传
入值作为我们报表的title。
下面的是一个例子:
a).声明一个parameter.这个parameter是java.lang.String 类型 ,名字为 :
name_report:
b).将这个parameter拖到page中的titleband.修改上面的程序代码如下 :
HashMa hm=newHashMap();
hm.put( “name_report”,”reporttitle”);
...
JasperPrint print=
显示全部