- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
最近项目用上了birt,一款开源的报表制作工具,当然开源的东西总是免不了简单方便等溢美之词。
我只用到了birt的脚本化数据源和脚本化数据集,所以这里也只说下这两者的简单使用。
报表的集成就不说了,网上一搜一大把,我用的是3.7.2版本的birt。
新建一个报表项目:
首先新建一个普通的java工程test,在该工程下建立一个存放报表文件的文件夹birt,如下图所示:
添加所依赖的jar包:
环境搭建好了之后,下面创建一张效果如下所示的报表:
其中行和列都是可以动态变化的。
新建报表:
右击新建报表,我的是中文版的,报表后缀名为rptdesign:
新建数据源:
双击新建的报表,进入报表设计视图,在左上角?数据源节点右击新建数据源:
选择脚本化数据源,填写名称即可。
新建数据集,在数据集节点右击新建数据集:
选择第6步建立的数据源,填写数据集名称即可。
将数据集拖到可视化布局面板中,修改表头名称:
此时系统生成了一个一行(ps:这里的行不包括页眉和页脚)一列的表格,双击name列,可以看到基本的一个列绑定:
其中dataSetRow[“name”]表明了这个name的值来自数据集。
创建报表资源,方便起见,直接写死:
报表事件处理程序的添加:
为了支持报表的动态渲染,我选择了实现IReportEventHandler:
然后在属性编辑器选择报表:
为它添加刚才编写的事件处理程序:
点击浏览有类选择:
10.表格动态添加列:
这里的列就是Rperties的数目加上名字这一列。
.获取表格:我选择了根据表格名来获取:
在属性编辑器-表中的常规里可以看到名称,如果没有,自己指定一个。
获取表格代码:
2).表格插入行:
调用th.insertColumn(int columnNumber,int optionFlag)即可插入行,optionFlag应该控制的是左右方向。
.设置表头文本:
下面红色的就是表头文件(来自于报表文件xml源),
其实,如果不去看它的xml而直接调用java代码的话会无从下手,而看了xml文件后就非常清晰了,下面是设置表头文本的实现:
.动态添加数据集。
这个东西我当时思考了一段时间,很可惜没有实现,网上搜了很多,但很少有提及,加上项目紧张,当时一个数据集写了100多行属性,作为一个java程序员,这是无法原谅的!回到家后开始实现报表指标公式自定义,又想了一会儿,终于有了点眉目,下面是新增数据集的代码:
sdsh看名字便知道是数据集对象,获取方法非常简单:
name是指数据集某一行的名字,dataType是指数据集类型,事实上应该从enum DataType取值。resultSetHintName是指
总之,当你无法解决问题的时候想想其他办法,代码实现不了的看看xml文件,受益匪浅。
.动态添加列绑定:
设置好数据集后就是添加列绑定了,添加列绑定很简单:
colbinds来自于:
我没有过多的纠结这到底是什么,但猜测应该对应:
以上便是报表的渲染,完成之后就是最终的工作,数据集的赋值。
11.数据集事件处理程序的添加:
方法和第9步相同,不同的是这里应该实现:
强烈推荐看下这篇文章:
/blog/592401,我几乎就是照搬而已:
唯一要注意的是,fetch方法是被循环调用的,如果返回为false,循环中止,所以尽量不要在里面做复杂的逻辑判断!!!
12.运行报表。
文档评论(0)