- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
IREPORT使用JAVABEAN作为报表数据源.doc
使用JDBC作为报表数据源其实是有很多缺陷的,例如,它要求使用SQL查询作为数据来源,但有时报表的内容并不能由一条SQL语句完成。因此,使 用JavaBean集合作为数据源才是终极的解决之道,用户只需要将数据整理到一个JavaBean集合之中就可以了,无论用什么方法,数据源为何物。
3.1 定义Bean
定义一个最简单的Bean,只包含一个属性,如下所示:
?
package?lld.test.ireport;public?class?ProductBean...{????private?String?productName;????public?String?getProductName()????...{????????return?productName;????}????public?void?setProductName(String?productName)????...{????????ductName?=?productName;????}}
3.2 在iReport中设定数据源及创建报表
要在iReport中使用JavaBean作为数据源,首先要定义好Classpath,以使iReport能够找到我们定义的Bean,使用菜单 “Options”-“Classpath”定义Classpath,定义的路径为编译后的.class文件所在路径,例如,我定义的Classpath 为“D:\Work\Java\ireport_test\WebContent\WEB-INF\classes”。
在菜单“Data”-“Connections/Datasources”菜单中,添加数据源,将数据源类型设为“JavaBeans set data source”,设定的数据源属性如下图所示:
按道理而言,上图中的“Factory class”和 “The static method to call to retrieve the array or the collection of javaBeans”中,应该填写相应的工厂类及方法,然后,我们就能够在iReport集成环境中测试输出结果,但就我测试结果而言,发现在我赋上实际 的工厂类后,按下Test按钮后,总是提示“The method doent return a valid array or java.util.Collection”。所以,我们就只把iReport作为一个报表编辑器好了,不要对它报太大奢望,毕竟不花钱,有点bug(或 者是我猪头没找对方法)也就原谅一下了。
将其设为当前数据源,然后到菜单“Data”-“Report Query”中定义需要用到的 Bean属性,在“Class name”中输入自定义Bean的名称,本例中为“lld.test.ireport.ProductBean”,然后点击“Read attributes”按钮,获取Bean属性,点击“Add Selected Field(s)”添加要用的属性,如下图所示:
秉承本人所作笔记的一贯风格,只作最主要的功能描述,用最简单的代码描述最核心的功能,因此定义的报表非常之简单,各位如果有兴趣的话,可以加上边框线之类的美化元素,如下图所示:
该文件名为report_2.jrxml,编译即可获取report_2.jasper
3.3 编程导出PDF
对于Web应用,以PDF格式导出报表是最常见的应用,另外如果是使用C/S模式的话,还可以导出来JRViewer格式。至于其它格式,例如Excel、HTML、Java2D图形等,基本上是自找麻烦,因为导出来的格式很难看,用户会有意见,不如自己去手工生成的好。
对于JavaBean集合,最终仍然要转化成为JRDataSource以供JasperReport使用,不过这个转换很简单,一行代码即足够,示例代码如下所示:
List??data?=?new?ArrayList?();...(填充数据)//生成JRDataSourceJRDataSource?dataSource?=?new?JRBeanCollectionDataSource(data);
下面的代码是一个生成PDF的完整示例(Servlet):
package?lld.test.ireport;import?java.io.IOException;import?java.io.OutputStream;import?.URLEncoder;import?java.util.ArrayList;import?java.util.List;import?javax.servlet.ServletException;import?java
您可能关注的文档
最近下载
- Stokke® Scoot™ 使用说明用户手册.pdf
- 读读写写八年级上册.docx VIP
- 304医院节能与物业管理服务一体化方案_方案.doc VIP
- 冲刺2025中考数学 全国通用 重难点06全等三角形中辅助线模型综合训练(含答案解析).docx VIP
- 五上科学知识点整理.pdf VIP
- 青2013G02管沟及盖板图集.pdf VIP
- 肥胖症诊疗指南(2025年版).docx VIP
- 2023-2024学年三年级上学期白云区英语期末考试试题(含答案).pdf VIP
- 新解读《GB_T 25283 - 2023矿产资源综合勘查评价规范》最新解读.pptx VIP
- 如何协助护士长做好病房管理.pptx VIP
原创力文档


文档评论(0)