使用pentaho report 开发web报表
1. 文档说明
java开源报表软件中,pentaho report算是比较优秀的;能够满足大多数应用,足以和国内商业报表媲美;现记录实际开发报表完整过程教程,让初学者快速入门并应用到项目中。
2. 开发环境说明
1) 工具环境:pentaho report designer5.3、tomcat6、jdk6、Eclipse Java EE (4.3)
2) mysql以及示例数据库saikla
3) mysql驱动拷贝到report_home\lib\jdbc文件夹下
4) 配置报表环境JNDI
使用jndi是为了在web项目集成时,使用连接池配置;
.pentaho/simple-jndi/default.properties文件中加入JNDI配置信息;.pentaho目录是home或运行report designer程序的用户目录。
示例配置内容如下:
sakila/type=javax.sql.DataSource
sakila/driver=com.mysql.jdbc.Drivers
sakila/user=root
sakila/password=a123
sakila/url=jdbc:mysql://localhost:3306/sakila
3. 在设计器中开发报表
本次教程完成后的报表,展示如下图:
3.1 配置数据库连接
jndi的名称和之前配置的前缀一致;测试成本,确认保存。
3.2 定义数据集查询
query部分的sql可以通过图形化方式生成,也可以直接复制进来,点击预览验证语句是否正确。完成并右键查询后结果展示如下:
3.3 定义函数
在函数节点上右键新增函数,sumAmount、countCustomer pageOfPagesFun。sumAmount需要指明求和字段。
summary是全局类;Running类是运行时计算,根据不同的分组或段计算结果不同。
3.4 设计报表区域段
Details段会根据记录自动向下扩展;其他段在只显示一次或每个分组显示一次。如果段在设计器中隐藏,在结构图中右键取消隐藏。
设置分组字段和控件值,其中消息控件的值为:$(first_name),$(last_name);其他控件从数据集中拖动过来即可。
还可以针对控件属性设置值或公式,示例如下图: