odoo开发教程五:高级视图
树视图
tree视图表现出来是列表视图,列表中一行一纪录。可以根据每行纪录的某字段值不同而把每行以不同样式显示。
decoration-{样式}="条件"
样式主要有:
bf(font-weight:bold):字体加粗
it(font-style:italic):斜体字
danger:红色字体
info:蓝色字体
muted:灰色字体
primary:紫色字体
success:绿色字体
warning:棕色字体



<field name="arch" type="xml">
<tree string="" decoration-样式="条件表达式">
<field name="用于判断的字段" invisible="1"/>
<field name="其他字段"/>
</tree>
</field>



日历视图
将记录显示为日历活动,根元素为<calendar>。
主要的属性有:color
不同字段值的记录通过颜色来区分。date_start
记录中开始日期/时间的字段。date_stop(可选)
记录中结束日期/时间的字段。



<record model="ir.ui.view" id="_calendar_view">
<field name="name"></field>
<field name="model"></field>
<field name="arch" type="xml">
<calendar string="" date_start="start_date字段"
date_stop="end_date字段"
color="用于区分颜色的字段">
<field name="日历视图中需要显示的字段"/>
</calendar>
</field>
</record>



记得在模型的act_window标签中,把日历视图添加进去
<field name="view_mode">...,calendar</field>
搜索视图
搜索视图还可以包含<filter>元素,定制过滤器。
过滤器必须具有以下属性之一:domain
给搜索指定domain表达式context
给搜索指定上下文;使用group_by对结果进行分组。
<filter name="过滤器ID" string="显示内容"
domain="[(过滤条件)]"/>
<filter name="group_by_过滤字段" string=""
context="{'group_by': '过滤字段'}"/>
其中:使用domain是筛选:

使用context是分组:

当有多个过滤器时,可以在该模型的act_window中指定默认过滤器以及过滤值,使得点击菜单跳转到该窗口时自动调用过滤器进行显示:



<record model="ir.actions.act_window" id="_action">
<field name="name"></field>
<field name="res_model"></field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="context" eval="{'search_default_过滤器name': 过滤值}"/>



甘特图(注意:社区版不支持甘特图!所以不会显示)
水平条状的甘特图通常用于显示项目计划和进度,根元素是<gantt>。



<record model="ir.ui.view" id="_gantt_view">
<field name="name"></field>
<field name="model"></field>
<field name="arch" type="xml">
<gantt string="" color="区分颜色的字段"
date_start="开始字段" date_delay="持续字段"
default_group_by="分组字段">
<field name="甘特图显示字段"/>
</gantt>
</field>
</record>



最后,别忘了在模型对应的act_window添加gantt视图显示。
图形视图
图形视图用来表示对模型的概述和分析,根元素是<graph>。
图表视图可将数据进行聚合显示,使用graph元素来定义,一共有4种显示模式:
Bar(默认值)
条形图,第一个维度用于在水平轴上定义组,其它维度定义每个组的聚合条。默认情况下,条是并排的,也可以通过<graph>的@stacked="True"来让条堆叠。
Line
2维折线图
Pie
2维饼图
<field>元素有type属性定义值:
row(默认值):按纪录行来统计该字段值的百分比。
measure:按字段名来统计该字段值的百分比。
图形视图只能对数据库字段进行聚合,不能对不存储在数据库的计算字段进行聚合。



<record model="ir.ui.view" id="_graph_view">
<field name="name">.graph</field>
<field name="model"></field>
<field name="arch" type="xml">
<graph string="">
<field name="坐标,用于显示被统计的个体名"
<field name="指标" type="row/measure"/> #指定统计的指标,以内容来统计。type指定统计的方式:按行统计还是按字段类型统计
</graph>
</field>
</record>



看板视图
看板视图用于显示待办任务,生产进度等,以卡片的形式进行显示,根元素是<kanban>。
看板视图显示一组可按列分组的卡片。每个卡片表示一个记录,每列都显示聚合字段的值。
看板视图将每个卡的结构定义为表单元素(包括基本HTML)和QWeb的混合。
odoo开发教程五:高级视图的更多相关文章
- Odoo 二次开发教程(五)-新API的介绍与应用
[关于odoo新API的介绍,Internet上资料很少,或者不够完整详实,这会对初学者造成很大的困惑,本篇的目的就是希望能帮助新手了解新API的大概] odoo 新api的实现是借助于python装 ...
- odoo开发笔记-tree列表视图拖拽排序
odoo列表tree视图 拖拽排序 实现效果: 实现方式: 模型中定义字段: class CusYourModel(models.Model): """ 你的模型 &qu ...
- odoo开发笔记 -- 前台不同视图访问同一个模型
看一下partner这个表, 客户和供应商,都用这个表,那怎么区分呢: 供应商: 客户 注意这两个里面用domain来进行区分: <field name="domain" ...
- odoo开发笔记--前端搜索视图--按照时间条件筛选
odoo在日常使用中,常会有这样的需要,比如,某个列表按照 日 .周.月.年来过滤搜索. 效果: 那么如何实现呢,如下是一段不同写法的样例代码,提供参考. <!--某模型 搜索视图--> ...
- XAF应用开发教程(五)验证模块
数据验证是应用程序开发中使用频率最高的功能模块,本节详细介绍一下XAF中如何使用验证模块. XAF 验证模块内置了下面的一些验证规则: 验证规则类型 说明 RuleCombinationOfPrope ...
- odoo开发笔记 -- 多个视图共用一个模型
除了写序列优先绑定之外, 窗口引用的视图id也要绑定,否则页面加载的时候,可能不是自己需要显示的视图.例如:<field name="view_id" ref="c ...
- Android OpenGL ES 开发教程 从入门到精通
感谢,摘自:http://blog.csdn.net/mapdigit/article/details/7526556 Android OpenGL ES 简明开发教程 Android OpenGL ...
- 公众号第三方平台开发 教程二 component_verify_ticket和accessToken的获取
公众号第三方平台开发 教程一 创建公众号第三方平台 公众号第三方平台开发 教程二 component_verify_ticket和accessToken的获取 公众号第三方平台开发 教程三 微信公众号 ...
- 公众号第三方平台开发 教程六 代公众号使用JS SDK说明
公众号第三方平台开发 教程一 创建公众号第三方平台 公众号第三方平台开发 教程二 component_verify_ticket和accessToken的获取 公众号第三方平台开发 教程三 微信公众号 ...
- iOS 11开发教程(十五)iOS11应用视图的位置和大小
iOS 11开发教程(十五)iOS11应用视图的位置和大小 当一个视图使用拖动的方式添加到主视图后,它的位置和大小可以使用拖动的方式进行设置,也可以使用尺寸检查器面板中的内容进行设置,如图1.52所示 ...
随机推荐
- 程序员必须掌握的java进制转换(全网最详细讲解)
前言 在上一篇文章中,壹哥给大家讲了Java里的各种运算符.其中在讲解位运算符时,我给大家提到了计算机中进制的概念.但是现在很多小白同学,对进制的概念还不够了解,比如二进制.八进制.十六进制都是怎么回 ...
- void关键字
在C++中,void表示为无类型,主要有三个用途: (1)函数的 返回值用void,表示函数没有返回值. void func(int a, int b) { //函数体代码 return; } (2) ...
- 解决class path resource [applicationContext.xml] cannot be opened because it does not exist
在学习spring的过程出现class path resource [applicationContext.xml] cannot be opened because it does not exis ...
- PHP 微信三方平台代公众号发起网页授权 获取用户信息
1.获取code 2.通过授权回调地址的code获取用户access_token和open_id 3.通过access_token和open_id 获取用户基本信息 class wx_user { p ...
- Chrome浏览器插件:CrxMouse(鼠标手势控制浏览器)
CrxMouse是一款谷歌浏览器插件,它可以通过手势来控制您的浏览器,在您的日常网络浏览中提高效率和速度. 插件介绍 CrxMouse是一个非常流行的谷歌浏览器插件,它允许您通过鼠标手势来控制您的浏览 ...
- Jmix 如何将外部数据直接显示在界面?
企业级应用中,通常一个业务系统并不是孤立存在的,而是需要与企业.部门或者是外部的已有系统进行集成.一般而言,系统集成的数据和接口交互方式通常有以下几种: 文件传输:通过文件传输的方式将数据传递给其他系 ...
- 【JSOI2008】最大值
[JSOI2008]最大值 线段树裸题!动态RMQ. 这道题的操作是直接在序列末尾添加数值,所以连\(push_{down}\),以及建树什么的都不用了.. 这真是写过的最简短的一道\(seg_{tr ...
- Disruptor-源码解读
前言 Disruptor的高性能,是多种技术结合以及本身架构的结果.本文主要讲源码,涉及到的相关知识点需要读者自行去了解,以下列出: 锁和CAS 伪共享和缓存行 volatile和内存屏障 原理 此节 ...
- ES的索引结构与算法解析
作者:京东物流 李洪吉 提到ES,大多数爱好者想到的都是搜索引擎,但是明确一点,ES不等同于搜索引擎.不管是谷歌.百度.必应.搜狗为代表的自然语言处理(NLP).爬虫.网页处理.大数据处理的全文搜索引 ...
- mybatis xml 中 大于、小于、等于 写法
在 *.xml 中使用常规的 < > = <= >= 会与xml的语法存在冲突 方法一:使用xml 原生转义的方式进行转义 字符名称 sql符号 转义字符 大于号 > & ...