如何将这些表达式转换为反向波兰表示法?

时间:2016-12-14 14:22:27

标签: odoo-8 postfix-notation

我正在使用Odoo 8,我想设置几个域名。我认为我理解反向波兰语符号,但域名不起作用所以我想我错了。

我想用反向波兰表示法实现的域名是:

  • A和B和C以及(D或(E和F)):我尝试使用表达式 ABC或DEF 来实现它,但它不起作用。

  • A和B以及(C或D或(E和F)):我尝试使用表达式 AB或或CDEF ,但它既没有效果。

  

注意:我不在域中编写AND(如果您没有指定任何内容   在Odoo中,它应该使用& )。

我的域名错误,因为我总是没有记录。

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

我有答案。尽管如果你没有指定任何东西,Odoo默认采用AND,当有表达式必须在其他表达式之前执行时你必须编写AND,并且Odoo不知道哪个是因为你有一个复杂的长表达式。

在我的情况下,E和F必须在任何其他表达式之前执行,所以我们不能在没有AND的情况下离开它们,所以:

  • A和B和C以及(D或(E和F)):解决方案是 A B C或D和E F
  • A和B以及(C或D或(E和F)):溶液 A B或C D和E F

在Odoo的XML域中,这些域将是:

  • [A,B,C,'|',D,'&',E,F]
  • [A,B,'|','|',C,D,'&',E,F]

每个字母都是('field','operator','value')之类的表达式。

  

注意:必须转义&符号。

修改

我在这里回答了一个问题:

I don´t understand Normal Polish Notation (NPN or PN). How to build a complex domain in Odoo?

我在其中详细解释了解决复杂域名的好方法。我希望对某人有所帮助。