1. 程式人生 > 其它 >odoo開發教程五:高階檢視

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