Django使用jasper report生成报表

我们都善于东拼西凑,写最少的代码来达到目的。这次有一个做报表的需要,怎么用我掌握的工具,来解决这个问题。

方案如下。

Web还是用django,django可以解决用户认证的问题。

报表用jasper report,jasper report是很好的报表制作工具,能够生成pdf,html,excel等格式,而且有iReport这个图形界面,最重要的,jasper report是免费的。

Jasper report是java的工具,需要由java来调用,为此又花时间复习了java的语法。

应用由三部分组成

django

一个java工具,使用jasper report的模板生成pdf报表

iReport来制作报表模板

 

流程是这样

1. 用户使用浏览器访问django的站点,在网页上填写jasper报表需要的参数

clip_image002

2. django接收到post请求,在本地生成一个json数据包,里面包含了jasper 报表运行的所有参数,通过命令行调用java工具,得到一个pdf文件

3. 重定向浏览器到刚刚生成的pdf文件,用户在浏览器里面看到结果,这时用户可以打印报表

clip_image004

下面介绍django和java的接口。

Django生成一个json文件,用django自带的simplejson包就可以,生成的文件如下。

{

"jdbc_url": "jdbc:postgresql://localhost/vod?user=postgres&password=postgres",

"params": {"artist_id": "%陈%"},

"jasper": "D:/djangoapp/vodweb/media\\jasper\\classic_vod.jasper",

"pdf_file": "D:/djangoapp/vodweb/media\\pdf\\4a376ac0-6514-11dd-9490-005056c00008.pdf"

}

其中,

jdbc_url是java需要的jdbc配置,当然我们也可以把用哪一种jdbc驱动也作为参数,这样更通用。

Jasper是jasper report模板的路径。

pdf_file是输出pdf的文件名,django接下来要重定向的所在。

Param是jasper report模板需要的参数,会原封不动地传给jasper report。

接收这个json文件作为输入的java工具,是一个通用的工具

唯一的输入参数是json文件的路径

1. 解析json文件,得到jdbc_url,构造一个数据库连接对象

2. 解析params参数,构造对应的hash_map

3. 调用 Jasper report,生成pdf文件,调用的时候需要jasper模板的路径和输出的pdf文件名

附,命令行的一个sample

java -Djava.class.path="D:\djangoapp\vodweb\vod\appserver" -Djava.ext.dirs="D:\PROGRA~1\JASPER~1\IREPOR~1.0\lib" HelloWorld D:/djangoapp/vodweb/media\pdf\6592d8a1-6775-11dd-b59d-005056c00008.json

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值