Openerp 连接xml odoo上的字符串和字段值

Openerp 连接xml odoo上的字符串和字段值,openerp,odoo-8,odoo-9,odoo-10,Openerp,Odoo 8,Odoo 9,Odoo 10,切中要害 我有密码 <t t-set="get_data_remain" t-value="o.execute_sql(' SELECT SUM(a.qty) totalQty, a.product_id, b.name FROM

切中要害

我有密码

<t t-set="get_data_remain" t-value="o.execute_sql('
                        SELECT
                            SUM(a.qty) totalQty,
                            a.product_id,
                            b.name
                        FROM marketing_forecast_remain a
                        INNER JOIN product_template b
                        ON a.product_id = b.id
                        WHERE a.marketing_forecast_id = 65
                        GROUP BY a.product_id, b.name
                        ORDER BY b.name
                        ;
                    ')"/>
将来

谁能帮帮我

提前谢谢

*如果我错了,请纠正我你可以试试

<t t-set="get_data_remain" t-value="o.execute_sql('
                    SELECT
                        SUM(a.qty) totalQty,
                        a.product_id,
                        b.name
                    FROM marketing_forecast_remain a
                    INNER JOIN product_template b
                    ON a.product_id = b.id
                    WHERE a.marketing_forecast_id = %s
                    GROUP BY a.product_id, b.name
                    ORDER BY b.name
                    ;
                ') %value"/>


<t t-set="get_data_remain" t-value="o.execute_sql('
                    SELECT
                        SUM(a.qty) totalQty,
                        a.product_id,
                        b.name
                    FROM marketing_forecast_remain a
                    INNER JOIN product_template b
                    ON a.product_id = b.id
                    WHERE a.marketing_forecast_id = value
                    GROUP BY a.product_id, b.name
                    ORDER BY b.name
                    ;
                ')"/>
replace value with your field

用字段替换值
您可以试试

<t t-set="get_data_remain" t-value="o.execute_sql('
                    SELECT
                        SUM(a.qty) totalQty,
                        a.product_id,
                        b.name
                    FROM marketing_forecast_remain a
                    INNER JOIN product_template b
                    ON a.product_id = b.id
                    WHERE a.marketing_forecast_id = %s
                    GROUP BY a.product_id, b.name
                    ORDER BY b.name
                    ;
                ') %value"/>


<t t-set="get_data_remain" t-value="o.execute_sql('
                    SELECT
                        SUM(a.qty) totalQty,
                        a.product_id,
                        b.name
                    FROM marketing_forecast_remain a
                    INNER JOIN product_template b
                    ON a.product_id = b.id
                    WHERE a.marketing_forecast_id = value
                    GROUP BY a.product_id, b.name
                    ORDER BY b.name
                    ;
                ')"/>
replace value with your field

用字段替换值

[已解决]

我将查询移动到.py,这样我就不需要努力用xml创建条件

    def execute_sql(self):
    query = "SELECT SUM(a.qty) totalQty, a.product_id, b.name " \
            "FROM marketing_forecast_remain a " \
            "INNER JOIN product_template b " \
            "ON a.product_id = b.id " \
            "WHERE a.marketing_forecast_id = %s " \
            "GROUP BY a.product_id, b.name " \
            "ORDER BY b.name;"

    param = [self.id]

    self._cr.execute(query,param)
    _hasil = self._cr.dictfetchall()
    return _hasil
%s这是我设置的参数,然后根据此代码给出值

        param = [self.id]

    self._cr.execute(query,param)
因此,在我的视图(xml)中,我只需要像这样调用该方法

                        <t t-set="get_data_remain" t-value="o.execute_sql()"/>


谢谢。

[已解决]

我将查询移动到.py,这样我就不需要努力用xml创建条件

    def execute_sql(self):
    query = "SELECT SUM(a.qty) totalQty, a.product_id, b.name " \
            "FROM marketing_forecast_remain a " \
            "INNER JOIN product_template b " \
            "ON a.product_id = b.id " \
            "WHERE a.marketing_forecast_id = %s " \
            "GROUP BY a.product_id, b.name " \
            "ORDER BY b.name;"

    param = [self.id]

    self._cr.execute(query,param)
    _hasil = self._cr.dictfetchall()
    return _hasil
%s这是我设置的参数,然后根据此代码给出值

        param = [self.id]

    self._cr.execute(query,param)
因此,在我的视图(xml)中,我只需要像这样调用该方法

                        <t t-set="get_data_remain" t-value="o.execute_sql()"/>


谢谢。

我在编程时遇到了这个错误:“sintaks error”pada atau didekat«%»第1行:。。。其中a.marketing\u forecast\u id=%s…然后尝试直接给出值,请参阅我更新的anwservalue,我想在conditions中设置为操作数,它是来自odoo字段的值,而不是我选择的两个表之间的字段,我在a.marketing\u forecast\u id=o.id(我的意思是o.id是我的字段)的情况下尝试了这种方法我在编程错误时遇到了这个错误:“sintaks error”pada atau didekat«%»第1行:。。。其中a.marketing\u forecast\u id=%s…然后尝试直接给出值,请参阅我更新的anwservalue,我想在conditions中设置为操作数,它是来自odoo字段的值,而不是我选择的两个表之间的字段,我在a.marketing\u forecast\u id=o.id(我的意思是o.id是我的字段)的情况下尝试了这种方法