读了一下openerp新版本的代码,的确有不少的改进。尤其是web client,基本上是推倒重写的。
看官方的论坛上很多人在问如何在web client上实现报表的直接打印,想想现在的打印的确是不方便,总是把文件下载下来,然后打开文件打印。
html的报表容易想到,因为可以直接在web client打开一个新窗口,用js进行打印。于是就改改openerp代码,实现一个简单的html报表的。供大家参考。
时间仓促,勿笑话。
(我用的web client是embedded模式)
OE新版(6.1)的web client的整个结构和以前都不一样了,所以要先研究报表的controller.
在Reports类里,看到:
看官方的论坛上很多人在问如何在web client上实现报表的直接打印,想想现在的打印的确是不方便,总是把文件下载下来,然后打开文件打印。
html的报表容易想到,因为可以直接在web client打开一个新窗口,用js进行打印。于是就改改openerp代码,实现一个简单的html报表的。供大家参考。
时间仓促,勿笑话。
(我用的web client是embedded模式)
OE新版(6.1)的web client的整个结构和以前都不一样了,所以要先研究报表的controller.
在Reports类里,看到:
('Content-Disposition', 'attachment; filename="%s.%s"' % (action['report_name'], report_struct['format']))
这样的http header的定义。这是要直接下载。修改先:
header_list = [
('Content-Type', report_mimetype),
('Content-Length', len(report))]
if report_struct['format'] not in ['html']:
header_list.append(('Content-Disposition', 'attachment; filename="%s.%s"' % (action['report_name'], report_struct['format'])))
return req.make_response(report,
headers=he

本文探讨了如何实现在Web客户端上直接打印HTML报表的方法,通过设置特定的HTTP头信息,允许用户在浏览器中便捷地完成报表的打印操作。
最低0.47元/天 解锁文章
3402

被折叠的 条评论
为什么被折叠?



