基于自定义SQL的报告

来自Odoo大V社-odoo中文开发手册
2355481564讨论 | 贡献2018年1月19日 (五) 17:29的版本 (创建页面,内容为“我们所建的报告是建立在常规记录的基础上的。但在某些情况下,在呈现报表时,我们需要以不易处理的方式转换或聚合动态数...”)

(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索

我们所建的报告是建立在常规记录的基础上的。但在某些情况下,在呈现报表时,我们需要以不易处理的方式转换或聚合动态数据.

一种方法是编写一个SQL查询来构建我们需要的数据集,通过一个特殊的模型公开这些结果,并使我们的报告在这个记录集上工作。

因此,我们需要创建一个包含以下代码的文件reports/todo_task_report.py:

 # -*- coding: utf-8 -*- 
 from odoo import models, fields 
 class TodoReport(models.Model): 
     _name = 'todo.task.report' 
     _description = 'To-do Report'
     _sql = """
            CREATE OR REPLACE VIEW todo_task_report AS
            SELECT *
            FROM todo_task
            WHERE active = True
            """ 
     name = fields.Char('Description') 
     is_done = fields.Boolean('Done?') 
     active = fields.Boolean('Active?') 
     user_id = fields.Many2one('res.users', 'Responsible') 
     date_deadline = fields.Date('Deadline')