2017-08-09 102 views
1

我需要树视图中的总和行,并添加条件如果有可能!树视图中的总和odoo 9

我的树视图:

row | field_1 | field_2

1 | 8 | Messi

2 | 8 | Messi

3 | 8 |罗纳尔多

4 | 8 |罗纳尔多

如何总和只为梅西,只有罗纳尔多和获得成果16

在下面跨度,我得到32

<span t-esc="sum(line.field_1 for line in doc.my_ids)" widget="float_time"/> 

任何解决方案?

<span t-esc="Messi"/> 16 
<span t-esc="Ronaldo"/> 16 
+0

您不需要为此编写代码。从视图中你可以用'field_2'分组。所以Odoo为你自动计算field_1的总和值自动 – qvpham

+0

@julivico我需要结果在Qweb,任何示例? –

+1

好的。对于Qweb,你可以看看这个链接的例子[https://www.odoo.com/forum/help-1/question/how-to-group-by-product-category-in-qweb-report-102920] (https://www.odoo.com/forum/help-1/question/how-to-group-by-product-category-in-qweb-report-102920) – qvpham

回答

3

你可以组你的线条由field_2比计算field_1总和为每个player

<t t-set="players" t-value="[]"/> 
<t t-foreach="doc.my_ids" t-as="l"> 
    <t t-set="players" t-value="players+[l.field_2]"/> 
</t> 
<t t-foreach="set(players)" t-as="player"> 
    <p> 
    <span t-esc="player"/> 
    <t t-set="sum_goal" t-value=0/> 
    <t t-foreach="doc.my_ids" t-as="l"> 
     <t t-if="player==l.field_2"> 
      <t t-set="sum_goal" t-value=sum_goal+l.field_1/> 
     </t> 
    </t> 
    <span t-esc="sum_goal"/> 
    </p> 
</t> 

players列表field_2。您必须使用set()删除重复。