OpenERP Relatorio ODT 报表模块
-
兄弟辛苦了,这个绝对是要捧场的
-
支持。。。
我在windows环境下测试,python2.5
能出来结果,但debug时后台报错:no module name yaml
安装yaml后,报另一个错:
D:Python25libsite-packagesrelatorio-0.5.1-py2.5.eggrelatoriotemplates__init__.py:31: UserWarning: Unable to load plugin 'chart', you will not be able to use it
"to use it" % name)
Original tracebackTraceback (most recent call last):
File "d:python25libsite-packagesrelatorio-0.5.1-py2.5.eggrelatoriotemplates__init__.py", line 28, in <module>
import('relatorio.templates.%s' % name)
File "d:python25libsite-packagesrelatorio-0.5.1-py2.5.eggrelatoriotemplateschart.py", line 33, in <module>
import cairo
File "D:Python25Libsite-packagescairo__init__.py", line 1, in <module>
from _cairo import *
ImportError: DLL load failed: �Ҳ���ָ����ģ�顣 -
我在安装relatorio_report的时候出现了错误
[code]Environment Information :
System : Windows-XP-5.1.2600-SP2
OS Name : nt
Operating System Release : XP
Operating System Version : 5.1.2600
Operating System Architecture : 32bit
Operating System Locale : zh_CN.cp936
Python Version : 2.5.2
OpenERP-Client Version : 5.0.3
Last revision No. & ID :Bazaar Package not Found !Traceback (most recent call last):
File "netsvc.pyo", line 242, in dispatch
File "netsvc.pyo", line 73, in call
File "serviceweb_services.pyo", line 639, in execute
File "serviceweb_services.pyo", line 619, in execute
File "wizard__init_.pyo", line 178, in execute
File "wizard__init__.pyo", line 74, in execute_cr
File "d:OpenERP AllInOneServeraddonsbasemodulewizardwizard_module_upgrade.py", line 92, in upgrade_module
File "pooler.pyo", line 62, in restart_pool
File "pooler.pyo", line 40, in get_db_and_pool
File "addons__init_.pyo", line 728, in load_modules
File "addons__init__.pyo", line 578, in load_module_graph
File "addons__init__.pyo", line 400, in register_class
File "d:Program FilesOpenERP AllInOneServeraddonsrelatorio_report__init__.py", line 3, in <module>
ImportError: No module named relatorio.templates.opendocument[/code]
不知道应该怎么安装relatorio,
我的系统是windowsXP,安装openerp_allinone_5.0.3。我自己安装了Python2.5不知是否对其有影响。
我还想知道openerp需要使用Python吗?是用它自带的还是我安装的呢?
谢谢:) -
我成功安装了partner_report_odt和relatorio_report,但是进入Partners后每当按“ODTReport”生成报表的时候,总是会出现这个错误[code]
Environment Information :
System : Windows-XP-5.1.2600-SP2
OS Name : nt
Operating System Release : XP
Operating System Version : 5.1.2600
Operating System Architecture : 32bit
Operating System Locale : zh_CN.cp936
Python Version : 2.5.2
OpenERP-Client Version : 5.0.3
Last revision No. & ID :Bazaar Package not Found !Traceback (most recent call last):
File "serviceweb_services.pyo", line 687, in go
File "reportreport_sxw.pyo", line 364, in create
File "reportreport_sxw.pyo", line 367, in create_source_odt
File "d:OpenERP AllInOneServeraddonsrelatorio_report__init__.py", line 20, in create_single_odt
File "d:OpenERP AllInOneServeraddonsrelatoriotemplatesopendocument.py", line 174, in init
File "d:OpenERP AllInOneServeraddonsgenshitemplatebase.py", line 377, in init
File "d:OpenERP AllInOneServeraddonsrelatoriotemplatesopendocument.py", line 181, in _parse
File "zipfile.pyo", line 339, in init
IOError: [Errno 2] No such file or directory: u'd:\OpenERP AllInOne\Server\bin\addons\partner_report_odt\report\partner.odt'
[/code]
我的运行环境是Windows XP,OpenERP版本为5.0.3。
请问是什么问题呢?[[i] 本帖最后由 vincent@mrsf 于 2009-9-10 09:02 编辑 [/i]]
-
请仔细看你楼上的帖子,oldrev 上面说了:
[quote]不支持 all in one[/quote]这是一个简明的说法,因为要使用oldrev的这个报表模块,要有relatorio ,genshi 等 Python模块的支持,allinone的python环境中没有这些模块,要手工添加这些模块比较麻烦
另外,按照以上的说明,在allinone下即使安装成功也没有用,何况,你并没有安装成功,以下的错误信息应该能看得懂:(提示:检查压缩包路径中有没有这个partner.odt文件)
[quote]IOError: [Errno 2] No such file or directory: u'd:\OpenERP AllInOne\Server\bin\addons\partner_report_odt\report\partner.odt'[/quote][[i] 本帖最后由 digitalsatori 于 2009-9-10 09:42 编辑 [/i]]
-
我成功地在All InOne上使用了ODT Report,
确实比较麻烦,
需要的包很多,
每个都需要手工添加。还有一个问题就是,怎么在Report上添加公司的Logo?
[[i] 本帖最后由 vincent@mrsf 于 2009-9-10 09:54 编辑 [/i]]
-
这个报表速度快多了,也没有中文的问题,很好
但__init__里的路径写死了,换了环境有可能报错:
sxw_path = os.path.realpath("bin/addons/" + report_xml.report_sxw)我的建议是引入配置文件,改成如下:
from tools.config import configadp = os.path.abspath(config['addons_path'])
sxw_path = os.path.normcase(os.path.join(adp,report_xml.report_sxw))另外我发现这个模板不仅仅支持字段指令,也支持${o.name}这种形式
在某些循环(例如动态增加表格列的循环)里后者表现更好 -
[quote]原帖由 [i]iplan[/i] 于 2009-9-10 10:13 发表 www.shine-it.net/redirect.php?goto=findpost&pid=2706&ptid=618
这个报表速度快多了,也没有中文的问题,很好但__init__里的路径写死了,换了环境有可能报错:
sxw_path = os.path.realpath("bin/addons/" + report_xml.report_sxw)我的建议是引入配置文件,改成如下:
... [/quote]-
这行代码是实际上是从官方的 ODT 报表代码里抄的,应该是问题不大。这个模块的局限在于它依赖 create_single_odt 这个函数,目前 trunk 里的代码已经不使用这个函数了,因此报表模块只支持 5.0.3。
-
relatorio 的文本模板是 Genshi ( genshi.edgewall.org/ ),你可以参考它的语法文档。Relatorio 比内置 ODT 报表出色的地方在于它支持 OpenOffice Calc 电子表格和 OpenOffice Impress 幻灯片的文档。
[[i] 本帖最后由 oldrev 于 2009-9-10 16:24 编辑 [/i]]
-
-
[quote]原帖由 [i]vincent@mrsf[/i] 于 2009-9-10 09:51 发表 www.shine-it.net/redirect.php?goto=findpost&pid=2704&ptid=618
我成功地在All InOne上使用了ODT Report,
确实比较麻烦,
需要的包很多,
每个都需要手工添加。还有一个问题就是,怎么在Report上添加公司的Logo? [/quote]
静态的方法:改一下模块里的 odt
动态的方法:我还没试过把图片字段插到报表里为了方便使用 all in one 的朋友,有空我会上传个包含 relatorio 相关依赖的模块。
-
popkar77: 数据是不会存放在.py文件里的,数据都是存放在数据库中的。report是如何获取数据的呢?以sale模块下的report为例(addons/sale/report/):
对于order这个报表,目录下有一个名为order.py的文件,
[code]...
class order(report_sxw.rml_parse):
def init(self, cr, uid, name, context):
super(order, self).init(cr, uid, name, context)
self.localcontext.update({
'time': time,
})
report_sxw.report_sxw('report.sale.order','sale.order','addons/sale/report/order.rml',parser=order)
[/code]可以看到它定义了一个report_sxw.rml_parse的子类,名叫order。从其父类的名字就可以猜出这个类是用来解析rml文件的。在上例中实际上这个order类只多做了一件事情,就是把time模块作为键值放到localcontext里,这样你在报表中就可以使用time来显示时间了。
另外一个就是report_sxw.report_sxw, 来看看这个类的定义:
[code]class report_sxw(report_rml, preprocess.report):
def init(self, name, table, rml=False, parser=rml_parse, header=True, store=False):
[/code]
由此可以知道,我们传递给它的'report.sale.order'是这个报表内部的名称,'sale.order'就是表对象了(其在addons/sale/sale.py中定义,通过ORM映射到数据库,所有的数据都是从这里来得),后面的参数也应该能看得懂了。