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的部分写法如下图:





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值