OpenERP Relatorio ODT 报表模块

阅读更多

简介

今晚花了两个小时 hack OpenERP 系统,终于实现了我在论坛里承诺的 relatorio ODT 报表支持。

Relatorio 是 OpenHEX.com 公司开发的 OpenOffice 文档模板引擎。relatorio 引擎内部使用的是 Genshi 模板,因此与 OpenERP 自带的报表系统的模板语法不相同,relatorio 的文档模板语法可以参考这里 。

安装与使用

在使用本模块之前请先安装 relatorio 库,如果你的 Python 环境包含 setuptools(一般都有)的话,请直接使用如下命令安装:

easy_install relatorio
然后下载本文附带的压缩包,并将压缩包中的两个目录放到 openerp-server/bin/addons/ 下,在 OpenERP 中 Update Module List 然后安装这两个模块。
由于 OpenERP 的 XML 导入功能的限制,报表不能自动设置类型,因此请导航到“Administration/Low Level Objects/Actions/Report XML”,参考图1,手工将报表“Partner ODT”的类型设为 odt:
 
图1:Partner ODT 的 Report XML 表单 

接下来随便打开一个 Partner 表单,可以看到右边由 partner_report_odt 模块添加的“ODT Report“ 按钮,单击该按钮即可看到报表:

图2:Partner 表单

模板说明

relatorio ODT 模板请参考压缩包中的 partner.odt 文件,遵从 OpenERP 内置报表的习惯,实体对象的集合使用变量 objects 访问。所有的模板代码都需放入 ODT 文档的“功能 字段指令”中。

图3:odt 文档

图4:odt 字段指令

压缩包中的 partner-origin.odt 模板适用于 OpenERP 系统自带的 ODT to ODT 转换功能,可以作为参考。

总结一下

本模块在 OpenERP 5.0.3 中测试过,不支持 trunk 版,因为 trunk 版 report_sxw.py 中的函数结构变了。目前比原模板系统少了获取当前 datetime 和 setLang 功能,相信很快可以添加进去。

2009-09-05 更新:

现在 relatorio 引擎能够完全支持原系统报表的内置变量了,包括:objects、data、time 和 user,原报表系统的介绍请参考这里 。

下载

模块压缩包下载:http://cid-218708052a8413fb.skydrive.live.com/self.aspx/.Public/relatorio-report-modules.7z


Have a lot fun!

你可能感兴趣的:(Python,XML)