Django使用jasper report生成报表

本文介绍如何利用Django和JasperReport实现在线报表生成的功能。具体包括使用Django处理用户输入,通过Java调用JasperReport生成PDF报表,并最终在浏览器中展示。

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

方案如下。

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

课程背景:    企业里面很多系统管理后台,用easyui + highcharts + django 进行后台管理的整合,而这块资料在网上资料甚少,很多有经验的朋友在做这块时候也经常出现各种问题,目前我们老师以前在大数据真实项目中用到这块,现在受一些网友建议单独录制easyui + highcharts + django,希望可以帮助那些同学。视频+技术文档+源码让你看过后马上也可以搭建起来。  比如现在的友盟 和 百度统计 都是在类似这样的统计,我们会通过2~3个小时左右的课程,让你掌握这样的技术。   目标人群:  1、初级以上普通开发人员  2、web开发人员,对python感兴趣同学  3、对编程感兴趣的同学   课程目录:  01easyui_highcharts_django整合之需求介绍  02easyui_highcharts_django整合通过pycharm创建项目  03easyui_highcharts_django整合配置路由显示第一个页面  04easyui_highcharts_django整合下载easyui资源并且导入到项目里面  05easyui_highcharts_django整合修改配置文件加载static静态文件  06easyui_highcharts_django整合对页面进行修改  07easyui_highcharts_django整合对合并母模板layout  08easyui_highcharts_django整合添加一个新的业务的代码实现流程  09easyui_highcharts_django整合highcharts简单介绍  10easyui_highcharts_django整合highcharts的整合到django里面  11easyui_highcharts_django整合快速做出另一个业务流程  12easyui_highcharts_django整合柱状图  13easyui_highcharts_django后台返回json数据并且展示   14大数据django后台数据保存到mysql里面  15大数据django从mysql里面读取数据并显示到页面上面  课程环境:    环境:win10,  python 2.7.13,  django 1.8.3 ,  pymsql   收获预期:    1.使用django开发项目  2.学会使用easyui框架  3.学会使用highcharts  4.easyui_highcharts_django开发后面展示项目   案例截图:      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值