代码之家  ›  专栏  ›  技术社区  ›  KbiR

未知报告类型:xlsx:-Odoo 10

  •  1
  • KbiR  · 技术社区  · 7 年前

    我想创造一个 xlsx 报告。我尝试了下面的代码,但得到一个错误:

    回溯(最近一次呼叫时间): 文件“/home/shar/Projects/git/odoo/addons/web/controllers/主.py“,第72行,换行 返回f(*args,**kwargs) 文件“/home/shar/Projects/git/odoo/addons/web/controllers/主.py“,第1485行,索引中 请求.session.db, 请求.session.uid, 请求.session.password,报告id]) 文件“/home/shar/Projects/git/odoo/odoo/http.py协议“,第118行,在dispatch\u rpc中 结果=分派(方法,参数) 文件“/home/shar/Projects/git/odoo/odoo/service/报告.py“,第35行,调度中 res=fn(分贝、uid、*参数) 文件“/home/shar/Projects/git/odoo/odoo/service/报告.py“,第142行,exp_report_get 返回检查报告(报告id) 文件“/home/shar/Projects/git/odoo/odoo/service/报告.py“,第120行,检查报告 引发用户错误('%s:%s'%(exc.消息, 异常回溯)) 用户错误:(u“未知报表类型:xlsx:(,NotImplementedError(u'未知报表类型:xlsx',),”,“”)

    这是我的代码:

    *.py年

    # -*- coding: utf-8 -*-
    from odoo.addons.report_xlsx.report.report_xlsx import ReportXlsx
    
    class PartnerXlsx(ReportXlsx):
    
        def generate_xlsx_report(self, workbook, data, partners):
            for obj in partners:
                report_name = obj.name
                # One sheet by partner
                sheet = workbook.add_worksheet(report_name[:31])
                bold = workbook.add_format({'bold': True})
                sheet.write(0, 0, obj.name, bold)
    
    
       PartnerXlsx('report.module_name.res.partner.xlsx',
            'res.partner')
    

    *.xml文件

      <report
          id="partner_xlsx"
          model="res.partner"
          string="Print to XLSX"
          report_type="xlsx"
          name="res.partner.xlsx"
          file="res.partner.xlsx"
          attachment_use="False"
      />
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   sfx    7 年前

    我们没有报告类型 xlsx公司 格式

    我们只有qweb pdf,qweb html,控制器

    报告类型将接受其中任何一个( qweb pdf,qweb html,控制器 )

    它没有 xlsx公司 像这样的

    请参考' 行动报告.xml文件 '类以供进一步参考

        2
  •  0
  •   Alvaro Rodriguez Scelza    6 年前

    你的代码看起来是对的,但是记住所有其他的odoo规则仍然适用,不要忘记:

    1. 在openerp py清单中添加“report-xlsx”作为依赖项
    2. 将.xml文件添加到openerp py manifest中的data dict('data':['report/文件.xml'])
    3. 使用 from . import <report_file_name> 在您的报表文件夹中(您的.py文件所在的位置,以及您的xml文件,如清单中所声明的那样)。

    4. 添加 from . import report 在加载项init.py文件中

    5. 在odoo应用程序中更新你的插件。

    应该在那之后工作。