odoo开发教程五:高级视图

 

转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/11189279.html 

 

树视图

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的混合。

 

posted @ 2019-07-15 15:41  keenyeh  阅读(743)  评论(0编辑  收藏  举报