表格行颜色:

            <tree string="请假单列表" colors="red:state == 'refuse';blue:state == 'draft';black:state in ('confirm','validate')">
            <tree string="Meeting" colors="gray:state in ('cancel','done');blue:state in ('pending',)">

表格行按钮:

            <button string="Meeting" states="open,pending" name="action_make_meeting" icon="gtk-redo" type="object"/>
            <button string="Convert to Opportunity" type="object" name="action_button_convert2opportunity" states="open,pending" icon="gtk-index" attrs="{'invisible':[('opportunity_id','!=',False)]}"/>

            <button name="case_open" string="Confirm" type="object" states="draft,pending" icon="gtk-go-forward"/>
            <button name="case_close" string="Held" type="object" states="open,pending" icon="gtk-jump-to"/>
            <button name="case_cancel" string="Cancel" type="object" states="draft,open,pending" icon="gtk-cancel"/>
            <button name="case_reset" string="Reset to Todo" type="object" states="cancel" icon="gtk-convert"/>

字段只读、隐藏:
            <field name="refuse_notes" attrs="{'readonly':[('state','!=','confirm'),('state','!=','validate')], 'invisible':[('state','!=','confirm'),('state','!=','validate'),('state','!=','refuse')]}"/>

按钮状态、类型、图标、权限:

            <button string="送批" name="confirm" states="draft" type="workflow" icon="gtk-yes"/>
            <button string="批准" name="validate" states="confirm" invisible="context.get('btn_validate_invisible', False)" type="workflow" icon="gtk-apply" groups="kl_qingjd.group_kl_qingjd_manager"/>
            <button string="拒绝" name="refuse" states="confirm,validate" invisible="context.get('btn_validate_invisible', False)" type="workflow" icon="gtk-no" groups="kl_qingjd.group_kl_qingjd_manager"/>
            <button string="还原为草稿" name="set_to_draft" states="cancel,refuse" type="object" icon="gtk-convert"/>

状态条颜色:(暂未生效)

            <field name="state" widget="statusbar" statusbar_visible="draft,confirm,validate" statusbar_colors='{"confirm":"blue","validate":"blue","refuse":"red"}'/>

group边距设置为0:

<header>

                        <style>
                        .openerp .oe_form .oe_form_group {margin: 0}
                        </style>
                    </header>

分组后取合计数:

        <field name="days" string="天数" sum="合计"/>

分组后取平均数:

  字段定义:'probability': fields.float('Success Rate (%)',group_operator="avg"),

  表单录入:<field name="probability" class="oe_inline" widget="integer"/>%%

  分组后取平均数:<field name="probability" avg="Avg. of Probability"/>

  说明:暂时无法解决分组后平均数不是简单的按记录平均,而是根据字段的合计值重新计算获得的情况,如:利润率 = 利润金额合计/销售金额合计 的情况。

支持的分组聚合包括 sum,avg,max,min 等,除了 sum 可以直接在视图的字段中定义,别的操作必须在对象的字段中定义一下 group_operator,当视图与对象中定义不一致时,视图的优先级更高。

字段样式:

                        <h3>
                            <label string="派工单"/>
                            <field name="name" class="oe_inline" readonly="1"/>
                        </h3>

                            <field name="name" nolabel="1" readonly="1"/>

注意:给按钮设置权限组时,权限组ID必须包含所属模块前缀
         定义对象中的字段时,设置字段的属性 select=True 代表在表中为字段创建索引,在视图中设置字段的属性 select="1" 的用途暂时未知

示例代码:

<!-- views kl_qingjd_form -->
        <record
id="kl_qingjd_form"
model="ir.ui.view">
           
<field
name="name">kl.qingjd.form</field>
           
<field
name="model">kl.qingjd</field>
           
<field
name="type">form</field>
           
<field
name="priority">3</field>
           
<field name="arch"
type="xml">
               
<form string="请假单明细"
version="7.0">
                   
<header>
                       
<button string="送批" name="confirm" states="draft" type="workflow"
icon="gtk-yes"/
>
                       
<button string="批准" name="validate" states="confirm"
invisible="context.get('btn_validate_invisible', False)"
type="workflow" icon="gtk-apply"
groups="kl_qingjd.group_kl_qingjd_manager"/>
                       
<button string="拒绝" name="refuse" states="confirm,validate"
invisible="context.get('btn_validate_invisible', False)" type="workflow"
icon="gtk-no"
groups="kl_qingjd.group_kl_qingjd_manager"/>
                       
<button string="还原为草稿" name="set_to_draft"
states="cancel,refuse" type="object"
icon="gtk-convert"/>
                       
<field name="state" widget="statusbar"
statusbar_visible="draft,confirm,validate"
statusbar_colors='{"confirm":"blue","validate":"blue","refuse":"red"}'/>
                   
</header>
                   
<sheet>
                       
<group>
                           
<field name="employee_id" required="1"
on_change="onchange_employee(employee_id)"
attrs="{'readonly':[('state','!=','draft')]}"/>
                           
<field name="department_id"
attrs="{'readonly':[('state','!=','draft')]}"/>
                       
</group>
                       
<group>
                           
<field name="date_from" on_change="onchange_date_from(date_to, date_from)"
required="1"
attrs="{'readonly':[('state','!=','draft')]}"/>
                           
<field name="date_to" on_change="onchange_date_to(date_to, date_from)"
required="1"
attrs="{'readonly':[('state','!=','draft')]}"/>
                           
<field name="days" required="1"
attrs="{'readonly':[('state','!=','draft')]}"/>
                       
</group>
                       
<group>
                           
<field name="type_id" required="1"
attrs="{'readonly':[('state','!=','draft')]}"/>
                           
<field name="notes"
attrs="{'readonly':[('state','!=','draft')]}"/>
                       
</group>
                       
<group>
                           
<field name="refuse_notes"
attrs="{'readonly':[('state','!=','confirm'),('state','!=','validate')],
'invisible':[('state','!=','confirm'),('state','!=','validate'),('state','!=','refuse')]}"/
>
                       
</group>
                   
</sheet>
               
</form>
           
</field>
        </record>

<!-- views kl_qingjd_tree -->
  <record
id="kl_qingjd_tree" model="ir.ui.view">
   <field
name="name">kl.qingjd.tree</field>
   <field
name="model">kl.qingjd</field>
   <field
name="type">tree</field>
   <field
name="priority">2</field>
   <field name="arch"
type="xml">
    <tree string="请假单列表"
colors="red:state == 'refuse';blue:state == 'draft';black:state in
('confirm','validate')">
     <field
name="employee_id" select="1"/>
     <field
name="type_id" select="1"/>
     <field
name="days" string="天数"
sum="合计"/>
     <field
name="date_from" select="1"/>
     <field
name="date_to" select="1"/>
     <field
name="department_id" select="1"/>
     <field
name="notes" />
     <field name="state"
select="1"/>
     <field name="manager_id"
select="1"/>
     <field
name="create_uid" select="1"/> <!-- 此处需要读取创建者ID时,必须在对象中包含create_uid列
-->
    </tree>
   </field>
  </record>

<record model="ir.ui.view"
id="dispatch_work_order_form">
           
<field
name="name">dispatch.work_order.form</field>
           
<field
name="model">dispatch.work_order</field>
           
<field
name="type">form</field>
           
<field name="arch"
type="xml">
               
<form string="工单"
version="7.0">
                   
<header>
                   
 
                       
<button name="dispatch_work_order_deal" string="派工" states="draft" 
icon="gtk-yes"/>
                       
<button name="dispatch_work_order_done" string="报工" states="dealing"
icon="gtk-apply"
/>
                       
<button name="dispatch_work_order_reply" string="交单" states="done"
icon="gtk-convert"
/>
                       
<button name="dispatch_work_order_visit" string="回访" states="reply"
icon="gtk-apply" />

<field name="state" widget="statusbar" nolabel="1"
statusbar_visible="draft,dealing,done,reply,visit" 
statusbar_colors='{"draft":"blue","dealing":"blue","reply":"blue"}'/>
                       
<style>
                       
.openerp .oe_form .oe_form_group {margin: 0}
                       
</style>
                   
</header>
                   
<sheet>
                       
<h3>
                           
<label
string="派工单"/>
                           
<field name="name" class="oe_inline"
readonly="1"/>
                       
</h3>
                       
<group
col="2">
                           
<group col="4"
colspan="4">
                               
<field name="customer" on_change="on_change_customer(customer)" 
attrs="{'readonly':[('state','!=','draft')]}"/>
                               
<field
name="mobile"/>
                               
<field
name="phone"/>
                               
<field
name="buy_date"/>
                           
</group>
                           
<group col="6"
colspan="6">
                               
<field name="area" 
on_change="on_change_area(area)"/>
                               
<field
name="workload"/>
                               
<field
name="travelling_expenses"/>
                           
</group>
                           
<group col="2"
colspan="2">
                               
<field
name="address"/>
                           
</group>
                       
</group>
                   
<group
col="2">
                           
<group col="4"
colspan="4">
                      
<field
name="brand"/>
                
<field
name="series_number"/>
                           
</group>
                   
</group>
                   
<group
col="2">
                    
<field
name="description_of_fault"/>
                    
<field
name="note"/>
                   
</group>
                   
<group
col="2">
                           
<group col="6"
colspan="6">
                      
<field
name="client_source"/>
                      
<field
name="warranty_type"/>
                      
<field
name="buy_address"/>
                      
<field
name="appointment_date"/>
                      
<field
name="appointment_time"/>
                      
<field
name="repair_method"/>
                   
  </group>
                   
</group>

<group
col="2">
                           
<group col="4"
colspan="4">
                      
<field name="engineer"
on_change="on_change_engineer(engineer)"/>
                      
<field name="department"
readonly="True"/>
                   
  </group>
                           
<group col="2"
colspan="2">
                      
<field
name="check_result"/>
                      
<field
name="measure"/>
                   
  </group>
                           
<group col="6"
colspan="6">
                      
<field
name="service_time_1"/>
                      
<field
name="service_time_2"/>
                      
<field
name="amount"/>
                               
<field name="service_card" on_change="on_change_service_card(service_card)"
domain="[('state','=','1'),('customer','=',customer)]"
context="{'search_default_state1':1,
'search_default_customer':customer}"/>
                               
<field
name="service_card_remaining_times"/>
                               
<field
name="state_use_card"/>
                   
  </group>
                           
<group col="4"
colspan="4">
                      
<field
name="evaluate"/>
                      
<field
name="visit_time"/>
                   
  </group>
                           
<group col="2"
colspan="2">
                   
   <field
name="customer_feedback"/>
                   
  </group>
                   
</group>
                   
</sheet>

</form>
           
</field>
        </record>

openerp学习笔记 视图样式(表格行颜色、按钮,字段只读、隐藏,按钮状态、类型、图标、权限,group边距,聚合[合计、平均],样式)的更多相关文章

  1. openerp学习笔记 视图(tree\form)中隐藏按钮( 创建、编辑、删除 ),tree视图中启用编辑

    视图(tree\form)中隐藏按钮( 创建.编辑.删除 )create="false" edit="false" delete="false&quo ...

  2. openerp学习笔记 视图继承(tree、form、search)

    支持的视图类型:form.tree.search ... 支持的定位方法:                  <notebook position="inside"> ...

  3. openerp学习笔记 视图更新时删除已存在的菜单或其他对象

    删除菜单示例: <delete id="base.menu_module_updates" model="ir.ui.menu"/><dele ...

  4. openerp学习笔记 视图中字段只变化(on_change)联动其他字段值、选择和过滤

    1.修改产品数量时,自动计算产品销售金额.销售成本和销售利润<field name="num" on_change="on_change_product(produ ...

  5. python3.4学习笔记(五) IDLE显示行号问题,插件安装和其他开发工具介绍

    python3.4学习笔记(五) IDLE显示行号问题,插件安装和其他开发工具介绍 IDLE默认不能显示行号,使用ALT+G 跳到对应行号,在右下角有显示光标所在行.列.pycharm免费社区版.Su ...

  6. iView学习笔记(三):表格搜索,过滤及隐藏列操作

    iView学习笔记(三):表格搜索,过滤及隐藏某列操作 1.后端准备工作 环境说明 python版本:3.6.6 Django版本:1.11.8 数据库:MariaDB 5.5.60 新建Django ...

  7. bootstrap学习笔记之为导航条添加标题、二级菜单及状态 http://www.imooc.com/code/3120

    为导航条添加标题.二级菜单及状态 加入导航条标题 在Web页面制作中,常常在菜单前面都会有一个标题(文字字号比其它文字稍大一些),其实在Bootstrap框架也为大家做了这方面考虑,其通过" ...

  8. JS实战 · 表格行颜色间隔显示,并在鼠标指定行上高亮显示

    思路: 1.获取所有行对象,将需要间隔颜色显示的行对象进行动态的className属性指定:      前提是:先定义好类选择器,就是说给行对象赋予name. 2.高亮用到两个事件:onmouseov ...

  9. Asp.net MVC4高级编程学习笔记-视图学习第一课20171009

    首先解释下:本文只是对Asp.net MVC4高级编程这本书学习记录的学习笔记,书本内容感觉挺简单的,但学习容易忘记,因此在边看的同时边作下了笔记,可能其它朋友看的话没有情境和逻辑顺序还请谅解! 一. ...

随机推荐

  1. 2018.09.24 bzoj1016: [JSOI2008]最小生成树计数(并查集+搜索)

    传送门 正解是并查集+矩阵树定理. 但由于数据范围小搜索也可以过. 我们需要知道最小生成树的两个性质: 不同的最小生成树中,每种权值的边出现的个数是确定的 不同的生成树中,某一种权值的边连接完成后,形 ...

  2. yii2 beforeAction 重定向问题

    不跳转代码:return $this->redirect('http://www.yiichina.com/'); 跳转代码:return $this->redirect('http:// ...

  3. APMServ—优秀的PHP集成环境工具

    经常折腾wordpress和各种php开发的cms,免不了要在本地测试这些程序,所以选择一款好的php集成环境就至关重要啦.之前在月光博客上看到有一篇“常见的WAMP集成环境”介绍,然后先后试用过XA ...

  4. Windows10和CentOS7双系统安装的一些小技巧

    我个人是先安装好了win10系统,且win10是单独在一个120g的盘里:而centOS7则是安装在另一个500g的磁盘的其中的380g里: 这里要着重注意的是,500g里分成380g的盘不要在win ...

  5. scrapy windows 安装

    windows 7 系统下参照官网安装总是会提示出错,现在整理一下安装的流程 1.安装 python 2.7,添加环境变量 C:\Python27\;C:\Python27\Scripts\; 在 C ...

  6. maven项目诡异的问题

    install 的 war包中 dao 文件夹下没有xml文件 解决:重新注册为maven项目

  7. chrome添加 postman扩展程序图文简介

    Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件.无论是web前端开发 或 android.ios开发,只要涉及调用后端接口,postman这类型工具就必不可少了.相对于 ...

  8. mysql-5.7.10普通安装

    这里安装的是最新的MySQL 5.7.10,下载网址为:http://dev.mysql.com/downloads/mysql/,本文选择是的"Linux - Generic"下 ...

  9. 数据分析工具R和RStudio入门介绍

    https://www.cnblogs.com/yjd_hycf_space/p/6672995.html Python&R语言-python和r相遇:https://www.cnblogs. ...

  10. 高博-《视觉SLAM十四讲》

    0 讲座 (1)SLAM定义 对比雷达传感器和视觉传感器的优缺点(主要介绍视觉SLAM) 单目:不知道尺度信息 双目:知道尺度信息,但测量范围根据预定的基线相关 RGBD:知道深度信息,但是深度信息对 ...