树视图

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开发教程五:高级视图的更多相关文章

  1. Odoo 二次开发教程(五)-新API的介绍与应用

    [关于odoo新API的介绍,Internet上资料很少,或者不够完整详实,这会对初学者造成很大的困惑,本篇的目的就是希望能帮助新手了解新API的大概] odoo 新api的实现是借助于python装 ...

  2. odoo开发笔记-tree列表视图拖拽排序

    odoo列表tree视图 拖拽排序 实现效果: 实现方式: 模型中定义字段: class CusYourModel(models.Model): """ 你的模型 &qu ...

  3. odoo开发笔记 -- 前台不同视图访问同一个模型

    看一下partner这个表, 客户和供应商,都用这个表,那怎么区分呢: 供应商: 客户 注意这两个里面用domain来进行区分:   <field name="domain" ...

  4. odoo开发笔记--前端搜索视图--按照时间条件筛选

    odoo在日常使用中,常会有这样的需要,比如,某个列表按照 日 .周.月.年来过滤搜索. 效果: 那么如何实现呢,如下是一段不同写法的样例代码,提供参考. <!--某模型 搜索视图--> ...

  5. XAF应用开发教程(五)验证模块

    数据验证是应用程序开发中使用频率最高的功能模块,本节详细介绍一下XAF中如何使用验证模块. XAF 验证模块内置了下面的一些验证规则: 验证规则类型 说明 RuleCombinationOfPrope ...

  6. odoo开发笔记 -- 多个视图共用一个模型

    除了写序列优先绑定之外, 窗口引用的视图id也要绑定,否则页面加载的时候,可能不是自己需要显示的视图.例如:<field name="view_id" ref="c ...

  7. Android OpenGL ES 开发教程 从入门到精通

    感谢,摘自:http://blog.csdn.net/mapdigit/article/details/7526556 Android OpenGL ES 简明开发教程 Android OpenGL ...

  8. 公众号第三方平台开发 教程二 component_verify_ticket和accessToken的获取

    公众号第三方平台开发 教程一 创建公众号第三方平台 公众号第三方平台开发 教程二 component_verify_ticket和accessToken的获取 公众号第三方平台开发 教程三 微信公众号 ...

  9. 公众号第三方平台开发 教程六 代公众号使用JS SDK说明

    公众号第三方平台开发 教程一 创建公众号第三方平台 公众号第三方平台开发 教程二 component_verify_ticket和accessToken的获取 公众号第三方平台开发 教程三 微信公众号 ...

  10. iOS 11开发教程(十五)iOS11应用视图的位置和大小

    iOS 11开发教程(十五)iOS11应用视图的位置和大小 当一个视图使用拖动的方式添加到主视图后,它的位置和大小可以使用拖动的方式进行设置,也可以使用尺寸检查器面板中的内容进行设置,如图1.52所示 ...

随机推荐

  1. Linux & 标准C语言学习 <DAY1>

    Linux系统简单介绍:     BCPL->New B->C->UNIX->Minix->Linux->gcc     美国贝尔实验室 1968     Linu ...

  2. Excel的读取保存案例

    python进行excel处理 1. Excel读取 # 首先导入pandas工具包 import pandas as pd # 读取Excel df = pd.read_excel('./excel ...

  3. 遗传算法(启发式算法)—R实现

    遗传算法 遗传算法(Genetic Algorithm,GA)最早是由美国的 John holland于20世纪70年代提出,该算法是根据大自然中生物体进化规律而设计提出的.是模拟达尔文生物进化论的自 ...

  4. Linux磁盘LVM根目录扩容

    LVM 的基本概念 物理卷 Physical Volume (PV):可以在上面建立卷组的媒介,可以是硬盘分区,也可以是硬盘本身或者回环文件(loopback file).物理卷包括一个特殊的 hea ...

  5. 搭建DHCP服务,实现自动分配地址

    DHCP实现原理 DHCP定义 DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作.它是一种流行的Clien ...

  6. [Linux]CPU架构/指令集:RISC / CISC | arm | amd | X86/i386 | aarch64

    1 前言 本文是解决在软件开发.软件交付过程中,常常需要找寻与服务器硬件的CPU架构适配的软件包时,开发者和交付者又时常摸不着头脑.[迷迷糊糊]地就下载了某个所谓"适配".&quo ...

  7. Nvidia GPU池化-远程GPU

    1 背景 Nvidia GPU得益于在深度学习领域强大的计算能力,使其在数据中心常年处于绝对的统治地位.尽管借助GPU虚拟化实现多任务混布,提高了GPU的利用率,缓解了长尾效应,但是GPU利用率的绝对 ...

  8. 【python爬虫】爬取美女图片

    一,导入包文件 os:用于文件操作.这里是为了创建保存图片的目录 re:正则表达式模块.代码中包含了数据处理,因此需要导入该模块 request:请求模块.通过该模块向对方服务器发送请求获取数据包 l ...

  9. 【前端基础】(二)promise异步编排

    ☆promise异步编排 javascript众所周知只能支持单线程,因此各种网络请求必须异步发送,导致可能会出现很多问题,比如如下我们有三个文件,现在要求进行如下请求: ① 查出当前用户信息 ② 根 ...

  10. 笔记:C++学习之旅---面向对象程序的设计1

    笔记:C++学习之旅---面向对象程序的设计1 面向对象的主要特征 1.抽象 2.封装 3.继承 4.多态 抽象:将程序的每一部分都看作一个抽象的对象,即程序有一组抽象的对象组成的更复杂点,这些对象根 ...