在报表中展示数据

来自Odoo大V社-odoo中文开发手册
2355481564讨论 | 贡献2018年1月4日 (四) 17:21的版本

跳转至: 导航搜索

不同于看板视图,报表中的QWeb模板是被服务器端用Python解析QWeb后渲染的。我们可以看到这两个完成了相同的规范,但有一些差异我们需要注意的。

首先,QWeb表达式是使用Python语法解析的,不是JavaScript。最简单的表达式,有很少或根本没有区别,但更复杂的操作可能会不同。

表达式的解析方式也是不同的。报表中,我们有以下变量:

 ·docs 是迭代器,包含所有待打印的数据集
 ·doc_ids 是一个包含所有待打印数据集ID的列表
 ·doc_model 是数据集关联的模块标识,如todo.task
 ·time 是Python时间库的引用
 ·user 是运行报表的用户的数据记录
 ·res_company 是当前用户的公司的数据记录

报表内容是用HTML编写的,字段值可以使用t-field属性来引用,t-field-options属性可以使用特定的小部件来呈现字段内容。

现在我们可以开始为报表设计页面内容了: <!-- Report page content <div class="row bg-primary"> <div class="col-xs-3"> <span class="glyphicon glyphicon-pushpin" /> What </div> <div class="col-xs-2">Who</div> <div class="col-xs-1">When</div> <div class="col-xs-3">Where</div> <div class="col-xs-3">Watchers</div> </div> <t t-foreach="docs" t-as="o"> <div class="row"> <!-- Data Row Content --> </div> </t>