查看“在报表中展示数据”的源代码
←
在报表中展示数据
跳转至:
导航
、
搜索
因为以下原因,你没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看并复制此页面的源代码:
不同于看板视图,报表中的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属性可以使用特定的小部件来呈现字段内容。 现在我们可以开始为报表设计页面内容了: <nowiki> <!-- 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></nowiki> 内容的布局可以使用Twitter的Bootstrap HTML网格系统。简单来说,Bootstrap有一个包含12个列的网格布局。可以使用<nowiki><div class="row"></nowiki>添加一个新行。在一行中,我们有单元格,每个单元格都有确定数字,最大为12。每个单元可以定义为<nowiki><div class="col-xs-N "></nowiki>,其中N为它跨越列的数目。 提示 关于Bootstrap的详细介绍,请参见网址:http://getbootstrap.com 这里我们添加标题行,然后是t-foreach 循环,遍历每个记录,并为每个记录呈现一行。 由于呈现是服务器端完成的,所以记录是对象,我们可以使用点符号(.)访问相关数据记录对应的字段。这让我们很容易通过关系字段访问它们的数据。注意,客户端渲染的Qweb,视图,是不可以这样访问的,如web客户端看板视图。 下面是一条记录行的XML示例: <nowiki> <div class="col-xs-3"> <h4><span t-field="o.name" /></h4> </div> <div class="col-xs-2"> <span t-field="o.user_id" /> </div> <div class="col-xs-1"> <span t-field="o.date_deadline" /> <span t-field="o.amount_cost" t-field-options='{ "widget": "monetary", "display_currency": "o.currency_id"}'/> </div> <div class="col-xs-3"> <div t-field="res_company.partner_id" t-field-options='{ "widget": "contact", "fields": ["address", "name", "phone", "fax"], "no_marker": true}' /> </div> <div class="col-xs-3"> <!-- Render followers --> </div> </nowiki> 如我们所见,字段可用于附加选项。这些都是非常类似于表单视图的optionss属性,就像第六章 视图—设计用户界面中,使用了一个附加的widget属性去设置一个渲染字段的小部件。 上面那个例子中,第一个部件就是在截止日期之后使用了一个货币小部件。 第二个更复杂的例子是用于格式化地址的小部件(contact)。我们使用公司地址作为演示,res_company.partner_id,是因为它有一些默认数据,我们可以立即看到渲染的效果。它也适用于用户地址,o.user_id.partner_id。默认情况下, 地址部件(contact)将显示带有一些象形文字的地址,比如手机图标。可以用no_marker="true" 选项可以将它们禁用。
返回至
在报表中展示数据
。
导航菜单
个人工具
登录
命名空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
odoo 中文开发手册
odoo 开发参考
odoo 实施笔记
Odoo 最佳方案
关于 OdooV
Odoo FAQ
工具
链入页面
相关更改
特殊页面
页面信息
友情链接
odoo官网
odoo中文网
odoo实施