文档详情

ireport 5.1.0 教程之参数(Parameters).pdf

发布:2017-05-28约5.12千字共10页下载文档
文本预览下载声明
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=
显示全部
相似文档