Odoo中文网|Odoo实施培训

标题: OpenERP 视图 & XML基础 [打印本页]

作者: 七公子    时间: 2015-9-1 13:57
标题: OpenERP 视图 & XML基础
核心提示:模块中有多种用途的XML文件,但所有XML文件的语法结构都是一样的Xml代码 < data>< openerp>•noupdate=1表示,模块升级时候不更新本文件数据。
模块中有多种用途的XML文件,但所有XML文件的语法结构都是一样的
Xml代码

    1. xml version="1.0"?>  
    2. <openerp>  
    3. <data noupdate="1">  
    4. ...  
    5. data>  
    6. openerp>  
    复制代码

  • • noupdate=“1” 表示,模块升级时候不更新本文件数据。
  •     module_name_data.xml
  •     module_name_view.xml
  •     module_name_wizard.xml
  •     module_name_workflow.xml
  •     module_name_report.xml
  •     module_name_demo.xml
  • (一)什么是视图(View)

Object用于存储业务数据,View用于向用户展现数据以及
输入数据。View的构成包括field,seprator,group,button等用
户界面设计元素。


(二)视图的类型
•列表(Tree View) - List
Xml代码

    1. <record model="ir.ui.view" id="openacademy_training_tree">  
    2.     <field name="name">openacademy.trainingfield>  
    3.     <field name="model">openacademy.trainingfield>  
    4.     <field name="type">treefield>  
    5.     <field name="arch" type="xml">  
    6.         <tree string="Trainings">  
    7.             <field name="name" />  
    8.             <field name="date_start" />  
    9.         tree>  
    10.     field>  
    11. record>  
    复制代码


注:V6.x 中 增加了 color, toolbar 两个属性,例:
Xml代码

    1. <tree colors="blue:usage=='view';darkred:usage=='internal'">  
    2.     <field name="usage"/>  
    3.     ...  
    4. tree>  
    复制代码


Editable实现记录的列表原地编辑    [tr]
可选值:
•bottom: 新记录在列表的最后插入
•top: 新记录在列表的最上面插入

•列表(Tree View) - TreeXml代码

  • <strong>• 层次结构的树形视图 (parent_id, child_ids)strong>  
    1. <record model="ir.ui.view" id="openacademy_category_tree">  
    2.     <field name="name">openacademy.category.treefield>  
    3.     <field name="model">openacademy.categoryfield>  
    4.     <field name="field_parent">child_idsfield>  
    5.     <field name="type">treefield>  
    6.     <field name="arch" type="xml">  
    7.         <tree string="Categories">  
    8.             <field name="name" />  
    9.         tree>  
    10.     field>  
    11. record>  
    复制代码





Xml代码

  • • 用于Action中的列表视图  
  •   
    1. <record model="ir.actions.act_window" id="openacademy_category_tree_act">  
    2.     <field name="name">All Categoriesfield>  
    3.     <field name="res_model">openacademy.categoryfield>  
    4.     <field name="view_type">treefield>  
    5.     <field name="view_mode">tree,formfield>  
    6.     <field name="domain">[('parent_id', '=', False)]field>  
    7. record>  
    复制代码

  •   
  • • 此例的Domain 过滤出所有一级目录(没有父亲)。  

Xml代码

  • 下例实现“展开按钮”显示子目录。
  •   
    1. <record model="ir.actions.act_window" id="cursus_by_category_act">  
    2.     <field name="res_model">openacademy.cursusfield>  
    3.     <field name="view_type">formfield>  
    4.     <field name="view_mode">tree,formfield>  
    5.     <field name="domain">[('category_id', 'child_of', [active_id])]field>  
    6. record>  
    7.   
    8. <record model="ir.values" id="ir_action_cursus_by_category">  
    9.     <field name="key2" eval="'tree_but_open'" />  
    10.     <field name="model" eval="'openacademy.category'" />  
    11.     <field name="name">Cursusfield>  
    12.     <field name="value" eval="'ir.actions.act_window,%d'%cursus_by_category_act" />  
    13.     <field name="object" eval="True" />  
    14. record>  
    复制代码



•表单(Form View)Xml代码

    1. <record model="ir.ui.view" id="openacademy_training_form">  
    2.     <field name="name">openacademy.trainingfield>  
    3.     <field name="model">openacademy.trainingfield>   
    4.     <field name="type">formfield>  
    5.     <field name="arch" type="xml">  
    6.         <form string="Training">  
    7.             <field name="name" select="1" />  
    8.            <field name="date_start" select="1" />  
    9.         form>  
    10.     field>  
    11. record>  
    复制代码



•查询栏(Search View)
•日历(Calendar View)Xml代码

    1. <record model="ir.ui.view" id="openacademy_training_calendar">  
    2.     <field name="name">openacademy.training.calendarfield>  
    3.     <field name="model">openacademy.trainingfield>  
    4.     <field name="type">calendarfield>  
    5.     <field name="arch" type="xml">  
    6.         <calendar string="Training" date_start="date_start" date_stop="date_stop">  
    7.             <field name="name" />  
    8.         calendar>  
    9.     field>  
    10. record>  
    复制代码

  •   
  • •date_start 开始日期  
  • •date_stop 结束日期 (可选)  


•框图(Diagram View)
•图形(Graph View)Xml代码

    1. <record model="ir.ui.view" id="view_id">  
    2.     <field name="name">view_namefield>  
    3.     <field name="model">object_namefield>  
    4.     <field name="type">graphfield>  
    5.     <field name="arch" type="xml">  
    6.         <graph string=“Graph Title” type="pie">  
    7.             <field name="first_field"/>  
    8.             <field name="second_field" operator="+" />  
    9.         graph>  
    10.     field>  
    11. record>  
    复制代码
  • <strong>• graph 的 type属性可选值:strong>  
  • •pie 饼图  
  • •bar 柱状图  


•甘特图(Gantt View)

File Description
Xml代码
  1. xml version="1.0" encoding="UTF-8" ?>  
  2. <openerp>  
  3. <data>  
  4.       
  5.     <record model="ir.ui.view" id="openacademy_training_form">  
  6.     ...  
  7.     record>  
  8.       
  9.     <record model="ir.actions.act_window" id="openacademy_training_act">  
  10.     ...  
  11.     record>  
  12.   
  13.     <menuitem name="Tools" id="openacademy_training_mi"  
  14. action="openacademy_training_act" />  
  15.   
  16.     <shortcut name="Draft Purchase Order (Proposals)" model="purchase.order"  
  17. logins="demo" menu="m" />  
  18. data>  
  19. openerp>
复制代码













欢迎光临 Odoo中文网|Odoo实施培训 (http://www.chinaodoo.net/) Powered by Discuz! X3.2