从不同型号odoo 9获取数据

时间:2017-06-28 08:22:08

标签: odoo-9 odoo-10 odoo

是否可以在一个树视图中加载来自例如的数据。 (项目任务,项目发布,采购订单),其中创建日期=今天。

示例:

Example

任何简单的解决方案?

3 个答案:

答案 0 :(得分:2)

如果您只是希望始终显示今天创建日期的记录,您可以执行此操作。

1-首先在后端使用树视图或任何视图,你应该为它创建一个且只有一个模型。

2-当您需要在同一个树视图中显示多个模型时,或者我们可以说您想要显示查询结果。

3-创建一个模型,在数据库而不是表中创建视图意味着模型正在提取             来自数据库中的视图(查询)的数据。

示例:请参阅模块\addons\account\report\account_invoice_report.py

防止模型在数据库中创建表。

    _name = 'view.name'
    _auto = False 

然后创建视图覆盖方法:

    # in odoo 10.0
    @api.model_cr
    def init(self):
        # drop the view first 
        tools.drop_view_if_exists(self.env.cr, self._table)

        # create the view.
        self.env.cr.execute("""CREATE or REPLACE VIEW %s as (
          you query here.
        )""" % self._table)

现在模型将从视图中提取数据,希望这是你想要的。

答案 1 :(得分:1)

如果您要从单个Model加载数据,则可以使用操作域进行过滤。

如果您想从今天create_date所在的三个不同模型加载数据,您可以创建一个简单的模型,例如view_mod,并将所有有趣的字段放在那里,然后查找您应该为每个模型创建相应的view_mod记录,然后再次需要使用操作域进行过滤,以查看今天创建的所有view_mod条记录

答案 2 :(得分:1)

试试这个例子,从数据库中返回all:

在.py文件中添加以下代码:

class CustomReport(models.Model):
    _name = "my.report"
    _description = "my report"
    _auto = False


    name = fields.Char(string='Name', readonly=True)

    def init(self, cr):
        tools.drop_view_if_exists(cr, self._table)
        cr.execute("""CREATE or REPLACE VIEW my_report as 
                        SELECT
                        id,
                        concat(name,' | ', description) as name
                        from project_task 
                        UNION ALL 
                        SELECT 
                        id,
                        concat(name,' | ', amount_total) as name
                        from purchase_order
                        UNION ALL 
                        SELECT 
                        id,
                        concat(number,' | ', residual) as name 
                        from account_invoice
                        """)

在.xml文件中添加:

<?xml version="1.0" encoding="utf-8"?>
<odoo>
    <record id="view_my_report_tree" model="ir.ui.view">
        <field name="name">my.report.tree</field>
        <field name="model">my.report</field>
        <field name="arch" type="xml">
            <graph string="Name" type="bar">
                <field name="id" type="row" />
                <field name="name" type="row" />
            </graph>
        </field>
    </record>


    <record id="action_my_report" model="ir.actions.act_window">
        <field name="name">Name</field>
        <field name="res_model">my.report</field>
        <field name="view_type">form</field>
        <field name="view_mode">tree</field>
    </record>

    <menuitem name="My report" action="action_my_report" id="menu_my_report"/>

</odoo>

Resault:

enter image description here