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