OpenERP7.0 Domain條件表達式寫法小結

OpenERP7.0Domin條件表達式寫法總結
1Domin條件表達式規則 最簡單的格式:[('字段', '操作符', )] 例: [('shenqr.user_id', '=', uid)] 說明: domain中的單個條件是一個三個元素組成的元組,所以務必加上() 元組中第一個是對象的一個column,也就是字段名; 元組中第二個是比較運算符 “=, !=, >, >=, <, <=, like, ilike, in, not in, child_of, parent_left, parent_right“ 注意:在xml文件中使用時,'>=' '&gt;='表示 ,'<='要用 '&lt;='表示,'!='最好'&gt;&lt;'表示,'>'最好 '&gt'表示,'<'最好用 '&lt;' 表示 元組中第三個就是用來比較的值了。 多個條件用“|”or),“&”and),“!”(no)邏輯運算符鏈接。 邏輯運算符作爲前綴放置於條件前面。“|”與“&”必須兩個條件鏈接,“!”對一個條件取反。 默認邏輯運算符爲“&”注意:在xml文件中使用時,'&'要用'&amp;'表示 2) 不帶邏輯運算符的簡單表達式 過濾狀態爲待批[('state', '=', 'wait_prove')] 過濾狀態爲草稿待批 [('state', 'in', ('draft', 'wait_prove'))] 或者 [('state', 'in', ['draft', 'wait_prove'])] 過濾請假天數大於3[('tians', '&gt;', 3)] 3) 帶邏輯運算符的簡單表達式 假設a , b分別是不帶邏輯運算符的簡單表達式 a = ('state','&gt;&lt;','draft') b = ('tians', '&lt;=', 1) a and b: [ a, b ] [ '&amp' , a , b ] a or b: [ '|', a,b ] Eg: 請假模塊,副經理登錄時待審批的請假單(狀態是待批,並且請假天數在一天以內)菜單過濾條件: <field name="domain">[('state','=','wait_prove'),('tians', '&lt;=', 1)]</field> 4帶邏輯運算符的稍複雜的表達式 同上,假設a , b, c分別是不帶邏輯運算符的簡單表達式 a and b and c : [a, b, c] 或則 [ '&amp;', '&amp;', a, b, c] a or b or c: ['|', '|', a , b , c] a and b or c: ['|', '&amp;', a, b, c] a and (b or c): ['&amp;', a, '|', b, c] Eg: 經理待審批的請假單(狀態是待批,並且請假天數大於一天,並且是本部門的職員請假單,並且還不包含自己的請假單)菜單過濾條件 <field name="domain"> [('state', '=', 'wait_prove'), ('tians', '&gt;', 1), ('shenqr.user_id','&lt;&gt;',uid),('shenqr.department_id','=',department_id),('shenqr.user_id.groups_id', '=', 59)] </field> 5 帶邏輯運算符的更復雜的表達式 同上,假設a , b, c, e, f, g分別是不帶邏輯運算符的簡單表達式 (a or b and c) or ( d and e ) : ['|', '&amp;','|', a, b, c, '&amp;', d, e, 3)] Eg: 總經理待審批的請假單(所有部門副經理或經理狀態爲待批的請假單,或3天以上部門經理批准過的請假單)菜單過濾條件: <field name="domain">['|', '&amp;','|', ('shenqr.user_id.groups_id', '=', 60), ('shenqr.user_id.groups_id', '=', 61), ('state', '=', 'wait_prove'), '&amp;', ('state','=','depmanager_proved'),('tians', '&gt;', 3)]</field> (a or b and c) or (d and e) or (f and g) ['|','|', '&amp;','|', a, b, c, '&amp;', d,e,'&amp;', f,g] Eg: 總經理全部的請假單(所有部門副經理或經理狀態爲待批的請假單,或3天以上部門經理批准過的請假單,或3天以上狀態爲同意或駁回的請假單據)菜單過濾條件: <field name="domain">['|','|', '&amp;','|', ('shenqr.user_id.groups_id', '=', 60), ('shenqr.user_id.groups_id', '=', 61), ('state', '=', 'wait_prove'), '&amp;', ('state','=','depmanager_proved'),('tians', '&gt;', 3),'&amp;', ('state','in',['proved','rejected']),('tians', '&gt;', 3)]</field> 5) 參考資料 http://www.cnblogs.com/cnshen/p/3189306.html http://shine-it.net/index.php?topic=5864.0 6注意和7.0之前的版本差異較大: v6.0的部分寫法如下圖:




原文:http://blog.csdn.net/littlebo01/article/details/17509761


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章