总计和运行总计
来自Odoo大V社-odoo中文开发手册
2355481564(讨论 | 贡献)2018年1月18日 (四) 08:36的版本 (创建页面,内容为“报告的一个常见需求是提供总数。可以使用Python表达式计算总数。 <t t-foreach>标签结束后,我们将添加最后一行总数: <nowiki> <...”)
报告的一个常见需求是提供总数。可以使用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" />