如何通过openerp_sxw2rml.py将SXW文件转换为RML文件?
我正在尝试把一个 SXW 文件转换成 RML 文件,使用的是 openerp_sxw2rml.py 这个工具,但它出现了很多错误,并且生成的 RML 文件是空的。我确定 SXW 文件的内容是正确的,因为我使用的是 OpenERP 模块中现有的 SXW 文件,来检查它们是否能正确转换。
比如,我从 account 模块复制了 account_balance.sxw 文件,然后把它粘贴到 openerp_sxw2rml 文件夹里进行测试。接着我执行了这个命令:
sudo ./openerp_sxw2rml.py /opt/openerp7/addons/base_report_designer/openerp_sxw2rml/account_balance.sxw > /opt/openerp7/addons/base_report_designer/openerp_sxw2rml/account_balance.rml
结果是这样的:
./openerp_sxw2rml.py: 30: ./openerp_sxw2rml.py:
OpenERP SXW2RML - The OpenERP's report engine
OpenERP SXW2RML is part of the OpenERP Report Project.
OpenERP Report is a module that allows you to render high quality PDF document
from an OpenOffice template (.sxw) and any relationl database.
: not found
./openerp_sxw2rml.py: 31: ./openerp_sxw2rml.py: __version__: not found
./openerp_sxw2rml.py: 34: ./openerp_sxw2rml.py: import: not found
./openerp_sxw2rml.py: 35: ./openerp_sxw2rml.py: import: not found
./openerp_sxw2rml.py: 36: ./openerp_sxw2rml.py: import: not found
./openerp_sxw2rml.py: 37: ./openerp_sxw2rml.py: import: not found
./openerp_sxw2rml.py: 38: ./openerp_sxw2rml.py: import: not found
from: can't read /var/mail/reportlab.lib.units
./openerp_sxw2rml.py: 40: ./openerp_sxw2rml.py: import: not found
./openerp_sxw2rml.py: 41: ./openerp_sxw2rml.py: import: not found
./openerp_sxw2rml.py: 43: ./openerp_sxw2rml.py: class: not found
./openerp_sxw2rml.py: 44: ./openerp_sxw2rml.py: General DOM API utilities.: not found
./openerp_sxw2rml.py: 45: ./openerp_sxw2rml.py: Syntax error: "(" unexpected
为什么会这样呢?有没有人遇到过同样的问题?
任何帮助都非常感谢!
3 个回答
2
3
首先,去到 addons/base_report_designer/openerp_sxw2rml
这个路径,然后按照下面的命令操作。
一般的语法是:
python openerp_sxw2rml.py src_path_of_sxw > dest_path_of_rml
这里的 scr_path_of_sxw
是你存放 .sxw 文件 的源路径,而 dest_path_of_rml
是你存放 .rml 文件 的目标路径。
2
用python来运行它
sudo python openerp_sxw2rml.py /opt/openerp7/addons/base_report_designer/openerp_sxw2rml/account_balance.sxw > /opt/openerp7/addons/base_report_designer/openerp_sxw2rml/account_balance.rml
(你需要用python来替代./)