jasperreport json_jasperreport 下载_jasperreport动态报表(5)

电脑杂谈  发布时间:2017-01-14 19:11:57  来源:网络整理

然后是运行之后的截图:

六、独立性与易集成性

前面可能把整个过程讲述的很复杂,其实,在整个建立与输出报表过程中,是一气呵成的。iReport与JasperReport是紧密相关的,而除此之

外,它们的独立性非常好。

利用jasperReport+iReport生成并输出报表,可以方便的嵌入“胖客户端”以及WEB工程,以项目为例。

此项目是基于Struts结构的,浏览器端的请求是通过ActionServlet来传递的,依照项目要求,我们只要把已经做好的

jasperReport实例导入到项目里即可。导入方法可参考如下:

首先,把相关jar包导入到工程的lib文件夹下,搭建必需的环境;

其次,新建Action类,并将其对应的路径等相关信息加入xml配置文件中;

然后,如同输出html文件一样,将输出代码拷贝到Action类中,实现流的输出即可;

最后,将原实例中的相关处理类拷贝到项目中,调整包的路径,使之正常运作即可。

这时,只要修改某些页面的链接即可完成报表的输出。

七、其他相关问题

如何使用图片?

很容易,用Image控件就可以了. 在Image Express

里面可以用String来表示图片的路径, 或者用InputStream, File 对象.不过不管用File 还是String 对象,都不得不用绝对路径,

这显然很不灵活.解决办法是,穿入一个$P 的参数,表示图片所在的目录,然后用$P 和文件名拼接出完整的绝对路径.或者通过代码来控制,

比如System.getProperty('user.dir')+'\\report.jpg'就表示图片的绝对路径。更好的方法是用InputStream,

例如his.getClass().getResourceAsStream ('report.jpg'),这时只要把图片放在当前.jasper所在的

目录就可以了,不必考虑什么参数,什么路径。

动态控制某些Field 是否显示

每个Static Text, Text Field

甚至整个Band 的属性里面都有Print When Expression, 比如设成new

boolean(!$P{isDisplay}.equalsIgnoreCase('yes')),那么只有当参数display的值为yes 的时候才显示。

使用Sub Report, 如何使用相对路径

和使用图片类似,最好使用InputStream 或者传入参数。

Query里面如何使用参数

$P!{xxx} 或者 $P{xxx} 后者只能用于类似PreparedStatement参数绑定, 而前者可替换Sql的任意部分.

在需要动态排序的时候, 前者特别有用. 比如select a,b,c from t order by $P!{orderClause}不管用$P 还是$P!,

SQL最终是以PreparedStatement 方式执行的, 不必太担心性能问题 注意:参数是不能嵌套的,比如$P{a}=''$P{b}'' ,

$P{b}=''value'', 不要指望$P{a}能被替换成''value''

如何使用图表(Graph)

JasperReport

本身没有图表功能, 只有显示Image 的功能,iReport 里有个Graph 向导, 其实质是通过jFreeChart生成Image. 另外,

更直接的做法是放一个Image控件, Image Express Class 设置成java.awt.Image, 在ImageExpression

里通过自定义的类返回java.awt.Image对象.


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-26308-5.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...