我正在尝试创建xlsx
报告。我尝试了以下代码,但出现错误:
回溯(最近通话最近): 文件“ /home/shar/Projects/git/odoo/addons/web/controllers/main.py”,行72 返回f(* args,** kwargs) 文件“ /home/shar/Projects/git/odoo/addons/web/controllers/main.py”,行1485,在索引中 request.session.db,request.session.uid,request.session.password,report_id]) 在dispatch_rpc中的文件“ /home/shar/Projects/git/odoo/odoo/http.py”,第118行 结果=派遣(方法,参数) 派遣文件“ /home/shar/Projects/git/odoo/odoo/service/report.py”,第35行 res = fn(db,uid,* params) 在exp_report_get中,文件“ /home/shar/Projects/git/odoo/odoo/service/report.py”,第142行 返回_check_report(report_id) _check_report中的文件“ /home/shar/Projects/git/odoo/odoo/service/report.py”,第120行 引发UserError('%s:%s'%(exc.message,exc.traceback)) UserError:(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"
/>
答案 0 :(得分:0)
我们没有 xlsx 格式的report_type
我们只有qweb-pdf,qweb-html,控制器
report_type将接受其中的任何一个( qweb-pdf,qweb-html,控制器)
它没有这样的 xlsx
请参考“ ir.actions.report.xml ”类以获取更多参考信息
答案 1 :(得分:0)
您的代码似乎正确,但是请记住,所有其他odoo规则仍然适用,请不要忘记:
在报表文件夹中添加一个带有from . import <report_file_name>
的__init__.py文件(清单中声明的.py文件所在的位置,最好是xml文件所在的位置)。
在附件__init__.py文件中添加from . import report
那之后应该工作。