birt的简单使用

  • 格式:doc
  • 大小:446.55 KB
  • 文档页数:9

最近项目用上了birt,一款开源的报表制作工具,当然开源的东西总是免不了简单方便等溢美之词。

我只用到了birt的脚本化数据源和脚本化数据集,所以这里也只说下这两者的简单使用。

1.报表的集成就不说了,网上一搜一大把,我用的是3.7.2版本的birt。

2.新建一个报表项目:

首先新建一个普通的java工程test,在该工程下建立一个存放报表文件的文件夹birt,如下图所示:

添加所依赖的jar包:

3.环境搭建好了之后,下面创建一张效果如下所示的报表:

其中行和列都是可以动态变化的。

4.新建报表:

右击新建报表,我的是中文版的,报表后缀名为rptdesign:

5.新建数据源:

双击新建的报表,进入报表设计视图,在左上角?数据源节点右击新建数据源:

选择脚本化数据源,填写名称即可。

6.新建数据集,在数据集节点右击新建数据集:

选择第6步建立的数据源,填写数据集名称即可。

7.将数据集拖到可视化布局面板中,修改表头名称:

此时系统生成了一个一行(ps:这里的行不包括页眉和页脚)一列的表格,双击name列,可以看到基本的一个列绑定:

其中dataSetRow[“name”]表明了这个name的值来自数据集。

8.创建报表资源,方便起见,直接写死:

9.报表事件处理程序的添加:

为了支持报表的动态渲染,我选择了实现IReportEventHandler:

然后在属性编辑器选择报表:

为它添加刚才编写的事件处理程序:

点击浏览有类选择:

10.表格动态添加列:

这里的列就是Resources.properties的数目加上名字这一列。

1).获取表格:我选择了根据表格名来获取:

在属性编辑器-表中的常规里可以看到名称,如果没有,自己指定一个。

获取表格代码:

2).表格插入行:

调用th.insertColumn(int columnNumber,int optionFlag)即可插入行,optionFlag应该控制的是左右方向。

3).设置表头文本:

下面红色的就是表头文件(来自于报表文件xml源),

其实,如果不去看它的xml而直接调用java代码的话会无从下手,而看了xml文件后就非常清晰了,下面是设置表头文本的实现:

4).动态添加数据集。

这个东西我当时思考了一段时间,很可惜没有实现,网上搜了很多,但很少有提及,加上项目紧张,当时一个数据集写了100多行属性,作为一个java程序员,这是无法原谅的!回到家后开始实现报表指标公式自定义,又想了一会儿,终于有了点眉目,下面是新增数据集的代码:

sdsh看名字便知道是数据集对象,获取方法非常简单:

name是指数据集某一行的名字,dataType是指数据集类型,事实上应该从enum DataType取值。resultSetHintName是指

总之,当你无法解决问题的时候想想其他办法,代码实现不了的看看xml文件,受益匪浅。

5).动态添加列绑定:

设置好数据集后就是添加列绑定了,添加列绑定很简单:

colbinds来自于:

我没有过多的纠结这到底是什么,但猜测应该对应:

以上便是报表的渲染,完成之后就是最终的工作,数据集的赋值。

11.数据集事件处理程序的添加:

方法和第9步相同,不同的是这里应该实现:

强烈推荐看下这篇文章:

/blog/592401,我几乎就是照搬而已:

唯一要注意的是,fetch方法是被循环调用的,如果返回为false,循环中止,所以尽量不要在里面做复杂的逻辑判断!!!

12.运行报表。