问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

ireport5.1.0和jasperreports5.1.1怎么集成

发布网友 发布时间:2022-04-28 18:52

我来回答

1个回答

热心网友 时间:2022-04-12 13:49

Parameters通常是用来在打印的时候从程序里传值到报表里。也就是说parameters通常的是起参数传递的作用。他们可以被用在一些特定的场合(比如应用中SQL 查询的条件),如report中任何一个需要从外部传入的变量等(如一个Image对象所包括的char或报表title的字符串)。
和使用Fields一样,parameters也需要在创建的时候定义它的数据类型。parameters的数据类型是标准的java的Object。

2
在ireport中,Parameters的机制是允许用户通过应用程序传递参数致报表当中。在jasperreort中的某个对象中的expression可以通过下面的语法来访问一个当前ireport中存在的parameter:
$P{parameter name}。
如果应用程序没有为报表中定义的parameter赋值,那么parameter将会取我们在定义它的时候设置的default value的值。parameters是一个Java Object,所以如果它的类型是Object类型,我们在其default value里写下面的表达式就是错误的:
0.123
你必须要创建一个Object,如:
New Double(0.123)
这种写法就是正确的。
3
在查询中使用Parameters
Parameters可以用来做SQL查询的条件参数的传递。如果你想根据部门编号(dept_id)得到客户的详细信息 (设计的时候我们是不知道这个部门编号的具体值是多少的).此时我们可以这样组织查询语句:
select * from employee where dept_id=$P{deptId}
此时SQL查询引擎将会采用PreparedStatement来处理传入的deptId值以此作为查询条件参数。
如果你想直接通过parameter 值来作为SQL语句的一部分,那么你可以使用下面的特殊语法:$P!{parameter name}。这种写法允许你在查询时用parameter的值来替换parameter name。例如,如果我们有一个参数名为MyWhere其值为:where dept_id=D11 ,查询写法如下:
Select * from employee $P!{MyWhere}
查询时实际提交的字符串是:
Select * from employee where dept_id=D11
4
在程序里使用Parameters
在应用程序里,如果想把某个值传递到我们的报表中parameters时,我们可以把相关的值放入一个扩展java.util.Map接口类里,然后传入到ireport里。如下面的代码:

5
fillReport是一个关键的方法,它允许你通过一个文件名,一个参数集来传递到我们要调用的报表当中。例-如通过下面的处理方法我们可以让一个处部的传入值作为我们报表的title。
下面的是一个例子:
a).声明一个parameter.这个parameter是java.lang.String 类型,名字为:name_report:

b).将这个parameter拖到page中的title band.修改上面的程序代码如下:

运行时效果如下:

一般情况下,我们不需要为报表中的每一个parameters传递一个值,除非某一个parameter一定要从外部程序传入时我们才需为一个parameter设置一个值。如果一个parameter外部门程序没有为其赋值那么ireport将使用Default Value Expression来对一个parameter进行初始化,如果连Default Value Expression没有设置那么它的值就是null。
事实上,对于一个parameters我们不仅仅可以传递一个String,Integer,Boolean等java中小的对象,同时我们还可以利用parameters来传递一些足够大足够复杂的对象,比如一个图像(java.awt.Image),或者通过一个parameters来为一个为子报表提供的datasource 连接等。在用Map类型传递参数时我们要注意传递的参数要与report里的parameters类型保持一致,否则会抛出ClassCastException。
ireport内嵌的Parameters:
ireport提供了一些内建的parameters,这些parameters对于用户来说是只读的。内嵌的parameters列表如下:

同为比较常用的java报表生成工具,FineReport对参数的解读和使用方法与ireport有所不同,具体实现思路和步骤如下,供ireport使用者借鉴:
在大多数情况下,我们并不需要报表把数据库中所有的数据都呈现出来,而是要根据一些条件来过滤出我们想要的数据,这就是参数查询。
FineReport报表中就是使用参数来动态的过滤数据的,实现用户和数据的实时交互,如下图:
注:鼠标移至参数界面的中间区域会出现收缩按钮,折叠或展开参数查询界面。

如何实现参数查询
几乎所有的统计报表都会有类似上图的统计条件,传统的做法是使用如ext、html等编程实现,工作量大且维护成本高。
Finereport报表只需要通过参数的定义,添加参数控件绑定数据、参数过滤和参数面板样式三个步骤便可以轻松实现参数查询,零代码,维护简单。
实现步骤
FR报表提供了参数界面的概念,让用户快速制作出参数表单界面,制作参数查询界面的步骤如下:
参数定义:设置参数名称,添加参数,根据实际情况的不同添加不同种类的参数,详细请查看参数的种类与区别。
添加控件绑定数据:FineReport参数查询,是在参数面板中添加控件,使控件名字与参数名称一样,通过该控件将其控件值传递给参数,实现动态修改参数值得效果,可为控件绑定数据,直接选择;
参数面板样式设定:设置参数界面中控件的位置,参数面板的位置,背景等等。

参数应用实例之URL给参数传递中文值
虽然我们建议模板名称、参数变量名称都用英文,但是对于中国式的复杂报表,参数肯定有中文情况。
使用ie浏览器通过url给参数赋值为中文时,会发现中文值会出现乱码,如下图所示

问题原因
因为浏览器编码与服务器编码不一致,导致中文url输入会产生乱码,无法被正常识别。
解决方案
通过url给参数赋值一般应用在报表已经集成到项目中,希望点击某个链接将某个值传递给报表;而在浏览器中直接给参数赋值呢,一般是做测试使用的,此时可以将浏览器换成火狐或者谷歌。
集成到项目中,可以使用FR.cjkEncode()方法,如点击某个链接给col赋值为地区,此时可以使用如下方法:
1. window.location="http://localhost:8080/WebReport/ReportServer?reportlet=doc/Parameter/DynamicCol/DynamicCol.cpt&col="+FR.cjkEncode("中文名称")
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...DE分别在BC AC上,且AE=CD,连接AD,BE交于点p 过B作BQ⊥AD Q为垂足... ...AC上的点,且AE=CD 连接AD BE 交于点P 作BQ垂 ...ac上的点,且ae=cd,连接ad、be交于点p作BQ⊥AD,垂足为Q,求证BP=2... ...AC上的点,且AE=CD,链接AD、BE交于点P,作BQ⊥AD ...AC上的点,且AE=CD,连结AD、BE交于点P,作BQ⊥AD,垂足为Q. ...刚刚大学毕业。由于生病,导致目前没有工作,大学四年的女友也因为我... 形容“荷花的特点”有什么词语 梦见比人还高大的石头蛤蟆,杀人拆房子。我和其他人一起翘辫子了._百度... 梦见别人送我一条蛇,我却把他不小心放了.可是我用石头打了它一下... 作文 我生活在鼓励中 pdf.js展示ireport jasper生成的PDF出现空白错误 冻结多久可以解冻? 手机网12306发送短信999是什么意思 我用ireport已经做好了.jasper格式怎么让java调用它生成pdf文档? 莫名其妙收到提示购买火车票的短信。可不是自己购买的,应该如何查询 ireport报表怎么发布到jasperreport server 12306行程短信怎么做? ireport 可以直接修改jasper吗 ireport 设计生成的jasper文件,当宽度大于高度的打印的时候变成了横向,请问怎么设置?急求。。。 用银行卡买火车票收到短信的内容是什么 ireport jasper 怎么使用 利用java web工程,把用ireport生成的jasper文件,导出成pdf文件 被限制登录,一般要多久才能自动解除? 铁路客服12306总是给我发骚扰短信怎么办 ireport5.0如何生成.jasper文件 急用!!! 为什么手机老是收到铁路客服的短信? 如何使用iReport 和jasper生成报表(SQL传参数及中文文件名) 什么是12306行程短信? iReport怎么导出.jasper文件? ireport怎么生成jasper文件 微信冻结了要过几个小时才能解冻微信被紧急冻结了解冻需要多久时间_百度问一问 E3-1230 v2这个U有什么优缺点,与I5 3470比起来哪个更好一些? 买动车票为什么要发短信51966019给12306? ireport怎么用,jrxml怎么转jasper 我用ireport设计好报表了,怎么将.jrxml的文件编译成.jasper的呢 java用ireport 打印报表,求助大神 如何利用Jaspersoft iReport Designer创建表格 如何Jaspersoft iReport Designer绑定表格数据 桌面上的图片显示不出来,选项里面的那个始终显示图标的勾也去掉了还是显示不出来 有哪些字在五行中既属水又属金又属木的 怎样分每个字的五行(金、木、水、火、土)… 五行属性金水木的字有那些 水和金组合汉字是哪些? 任天堂3ds能看电影 上网 看电视吗 海尔洗衣机洗时停住出现E1? 海尔洗衣机洗到剩几分不动了,然后显示E1是什么意思,这祥怎么才能把滚铜打请问? e3 1230 v2传说中的神U,你伤得起不?INTER公司老板及电脑高手进来。这玩意凭什么这么火这么不便宜? 用笔记本电脑上微信可以抢红包吗 电脑用模拟器开微信怎么抢自动抢红包 戴尔电脑经过升级后,之前的文件都受损,我要怎么恢复