总计和运行总计

来自Odoo大V社-odoo中文开发手册
跳转至: 导航搜索

报告的一个常见需求是提供总数。可以使用Python表达式计算总数。

<t t-foreach>标签结束后,我们将添加最后一行总数:

 <!-- Totals --> 
 <div class="row"> 
   <div class="col-xs-3"> 
     Count: <t t-esc="len(docs)" /> 
   </div> 
   <div class="col-xs-2" /> 
   <div class="col-xs-1"> 
     Total:  
    <t t-esc="sum([o.amount_cost for o in docs])" /> 
   </div> 
   <div class="col-xs-3" /> 
   <div class="col-xs-3" /> 
 </div>
 

Python语句len()用于计算一个集合中元素的数量。可以使用sum()来计算一个值列表的总计。在前面的示例中,我们使用了一个产品价格的列表(每个产品的价格都来自docs数据集)。你可以把这个列表理解成一个嵌入式for循环。

有时候,我们想在报告中执行一些计算。例如,一个运行总数,与当前记录的总和。使用t-set定义一个累积变量,然后。在每一行更新它,就可以实现。

例如,我们要计算关注者的数量。我们应该在t-foreach循环访问docs记录集的前面,初始化一个变量:

<t t-set="follower_count" t-value="0" />

然后,在循环中,将记录的追随者数量添加到变量中。我们将在呈现出关注者的列表做了以上事情后,同时在每行打印出当前的总数:

 <!-- Running total--> 
  <t t-set="follower_count" 
    t-value="follower_count + len(o.message_follower_ids)" /> 
  Accumulated # <t t-esc="follower_count" />