在模块中添加一笔 report 记录<?xml version="1.0"?><terp><data><report id="sale_category_print"string="Sales Orders By Categories"model="sale.order"name="sale_category.print"rml="sale_category/report/sale_category_report.rml"menu="True"auto="False"/></data></terp>id :string:model:报表渲染对象rml rml文件路径,路径以本模块的路径开始menu True or False 是否在客户端上显示菜单, False 一般用语Wizard 向导是,不需要菜单,auto 是否利用缺省方法分析 .RML文件name 报表名称 (report_sxw.report_sxw 中的 第一个参数 去掉 ‘report.’) ==================sxw2rml 文件open用的使用的报表渲染文件,.rml。可由 openoffice 的.sxw 文件转换而来具体方法手动转换方法 要求文件在同一个目录 openerp_sxw2rml.py , normalized_oo2rml.xsl , name.sxw在命令行中 : python openerp_sxw2rml.py order.sxw > order.rml =================Server PDF Output报表分析器from report import report_sxwimport timeclass 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, header=True)report_sxw.report_sxw参数分别为1:报表名称 ('report.' + ' xml中定义的name' )2:报表使用的对象3:rml文件路径 addons/4:报表提取方法 , 即为 报表分析器的class名 ( 缺省值 parser=order)5: 是否增加公司表头###############sxw模板的构造方法数据用[[ ]] 中的python代码填充可以使用的对象object 报表使用的对象 data 来自 wizardtime time模块user res.user方法 setlang('fr')repeatIn(list,varname) setTagremoveParentNode