




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ireport 56入门教程之参数(Parameters) ireport5.6入门教程之参数(Parameters)ireport5.6入门教程之参数(Parameters)Parameters通常是用来在打印的时候从程序里传值到报表里。 也就是说parameters通常的是起参数传递的作用。 他们可以被用在一些特定的场合(比如应用中SQL查询的条件),如report中任何一个需要从外部传入的变量等(如一个Image对象所包括的char或报表title的字符串)。 和使用Fields一样,parameters也需要在创建的时候定义它的数据类型。 parameters的数据类型是标准的java的Object。 在ireport中,Parameters的机制是允许用户通过应用程序传递参数致报表当中。 在jasperreort中的某个对象中的expression可以通过下面的语法来访问一个当前ireport中存在的parameter:$Pparameter name。 如果应用程序没有为报表中定义的parameter赋值,那么parameter将会取我们在定义它的时候设置的default value的值。 parameters是一个JavaObject,所以如果它的类型是Object类型,我们在其default value里写下面的表达式就是错误的:0.123你必须要创建一个Object,如:New Double(0.123)这种写法就是正确的。 在查询中使用ParametersParameters可以用来做SQL查询的条件参数的传递。 如果你想根据部门编号(dept_id)得到客户的详细信息(设计的时候我们是不知道这个部门编号的具体值是多少的).此时我们可以这样组织查询语句:select*from employeewhere dept_id=$PdeptId此时SQL查询引擎将会采用PreparedStatement来处理传入的deptId值以此作为查询条件参数。 如果你想直接通过parameter值来作为SQL语句的一部分,那么你可以使用下面的特殊语法:$P!parameter name。 这种写法允许你在查询时用parameter的值来替换parameter name。 例如,如果我们有一个参数名为MyWhere其值为:where dept_id=D11,查询写法如下:Select*from employee$P!MyWhere查询时实际提交的字符串是:Select*from employeewhere dept_id=D11在程序里使用Parameters在应用程序里,如果想把某个值传递到我们的报表中parameters时,我们可以把相关的值放入一个扩展java.util.Map接口类里,然后传入到ireport里。 如下面的代码:.Map hm=new HashMap();.JasperPrint print=JasperFillManager.fillReport(fileName,hm,newJREmptyDataSource();fillReport是一个关键的方法,它允许你通过一个文件名,一个参数集来传递到我们要调用的报表当中。 例-如通过下面的处理方法我们可以让一个处部的传入值作为我们报表的title。 下面的是一个例子a).声明一个parameter.这个parameter是java.lang.String类型,名字为name_report:b).将这个parameter拖到page中的title band.修改上面的程序代码如下HashMap hm=new HashMap();hm.put(“name_report”,”report title”);.JasperPrint print=JasperFillManager.fillReport(fileName,hm,new JREmptyDataSource();运行时效果如下一般情况下,我们不需要为报表中的每一个parameters传递一个值,除非某一个parameter一定要从外部程序传入时我们才需为一个parameter设置一个值。 如果一个parameter外部门程序没有为其赋值那么ireport将使用Default ValueExpression来对一个parameter进行初始化,如果连DefaultValue Expression没有设置那么它的值就是null。 事实上,对于一个parameters我们不仅仅可以传递一个String,Integer,Boolean等java中小的对象,同时我们还可以利用parameters来传递一些足够大足够复杂的对象,比如一个图像(java.awt.Image),或者通过一个parameters来为一个为子报表提供的datasource连接等。 在用Map类型传递参数时我们要注意传递的参数要与report里的parameters类型保持一致,否则会抛出ClassCastException。 ireport内嵌的Parametersireport提供了一些内建的parameters,这些parameters对于用户来说是只读的。 内嵌的parameters列表如下参数名说明REPORT_PARAMETERS_MAP它是一个java.util.Map类型的对象,可以通过它来传给填充报表去填充报表里所有的parameters,在这个参数里还包含用户定义的parameters.REPORT_CONNECTION一个JDBC的Connection参数,报表可以根据传入的JDBC Connection来获到相应的数据REPORT_DATASOURCE为报表中的Connection提供一个DataSource。 外部传入的时候类型也要是DataSource类型REPORT_SCRIPTLET报表生成时使用的Scriptlet实例,如果没有指定ScriptLet,那么这个parameters将使用.sf.jasperreports.engine.JRDefaultScriptlet.IS_IGNORE_PAGINATION通过这个参数你可以控制分页功能是打开还是关闭。 默认情况下,分页是打开的。 但是如果导出为HTML或EXCEL时不进行分页处理。 REPORT_LOCALE它被用来设置报表所处的地区。 如果没有提供地区,那么将采用系统默认的地区。 REPORT_TIME_ZONE设置报表的时区,如果没提供的话采用系统默认的。 REPORT_RESOURCE_BOUNDLE为报表指定要加载的资源文件,在国际化一章中介绍了如何使用资源文件来构建报表。 同为比较常用的java报表生成工具,FineReport对参数的解读和使用方法与ireport有所不同,具体实现思路和步骤如下,供ireport使用者借鉴在大多数情况下,我们并不需要报表把数据库中所有的数据都呈现出来,而是要根据一些条件来过滤出我们想要的数据,这就是参数查询。 FineReport报表中就是使用参数来动态的过滤数据的,实现用户和数据的实时交互,如下图注鼠标移至参数界面的中间区域会出现收缩按钮,折叠或展开参数查询界面。 如何实现参数查询如何实现参数查询几乎所有的统计报表都会有类似上图的统计条件,传统的做法是使用如ext、html等编程实现,工作量大且维护成本高。 Finereport报表只需要通过参数的定义,添加参数控件绑定数据、参数过滤和参数面板样式三个步骤便可以轻松实现参数查询,零代码,维护简单。 实现步骤实现步骤FR报表提供了参数界面的概念,让用户快速制作出参数表单界面,制作参数查询界面的步骤如下参数定义设置参数名称,添加参数,根据实际情况的不同添加不同种类的参数,详细请查看参数的种类与区别。 添加控件绑定数据FineReport参数查询,是在参数面板中添加控件,使控件名字与参数名称一样,通过该控件将其控件值传递给参数,实现动态修改参数值得效果,可为控件绑定数据,直接选择;参数面板样式设定设置参数界面中控件的位置,参数面板的位置,背景等等。 参数应用实例之参数应用实例之URL给参数传递中文值给参数传递中文值虽然我们建议模板名称、参数变量名称都用英文,但是对于中国式的复杂报表,参数肯定有中文情况。 使用ie浏览器通过url给参数赋值为中文时,会发现中文值会出现乱码,如下图所示问题原因问题原因因为浏览器编码与服务器编码不一致,导致中文url输入会产生乱码,无法被正常识别。 解决方案解决方案通过url给参数赋值一般应用在报表已经集成到项目中,希望点击某个链接将某个值传递给报表;而在浏览器中直接给参数赋值呢,一般是做测试使用的,此时可以将浏览器换成火狐或者谷歌。 集成
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 灵山安全员实战培训课件
- 安全法制培训活动方案课件
- 2025-2030工业机器人精度提升技术突破与制造业替代率预测研究报告
- 2025年4月四川内江市第六人民医院招聘见习人员3人考前自测高频考点模拟试题及答案详解(有一套)
- 2025年甘肃交通职业技术学院招聘编外聘用工作人员60人考前自测高频考点模拟试题及完整答案详解一套
- 2025江苏鑫氟天科技有限公司招聘1人考前自测高频考点模拟试题及答案详解(全优)
- 2025-2030工业无人机巡检服务标准化与行业付费意愿调研报告
- 日本探亲签证申请书
- 财产线索调查申请书
- 大学新生退学申请书
- 渝22TS02 市政排水管道附属设施标准图集 DJBT50-159
- GB/T 18029.14-2012轮椅车第14部分:电动轮椅车和电动代步车动力和控制系统要求和测试方法
- GB/T 14339-2008化学纤维短纤维疵点试验方法
- 橡胶沥青路面在江苏公路上的应用研究
- GA/T 1439-2017法庭科学复印文件检验技术规程
- 初中数学知识点思维导图北师大版
- 药膳师理论考试题库及答案
- 惠普云教室用户操作手册
- 《护理实习手册》【范本模板】
- 油浸式变压器技术参数和要求
- 土石坝3D建造无人驾驶碾压新技术
评论
0/150
提交评论