2016-05-17 4 views
0

openerpのビューでどのようにコードを実行することができますか(C#の例)openerpの場合のネストされた構文

IF(type != 'out_refund' AND (state == "open" OR !sent)){ 
    «print» 
} 

私はこのコードを持っているが、そのが動作していない現時点で:

<button name="invoice_pay_customer" type="object" string="Register Payment" 
attrs="{'invisible': ['&',('type','=','out_refund'),'|', ('state','!=','open'), ('sent','=',True) ] }" 
groups="base.group_user"/> 

私が間違って何をしているのですか?

答えて

3

De Morgan's laws
〜(A及びB)=〜A又は〜B
〜(A又はB)=〜Aと〜B

場合B =(C又は〜D)とAへあなたがそれを見たくないときは、
〜(〜Aと(Cまたは〜D))を表示したいときは
〜Aと(Cまたは〜D) = Aまたは〜(CまたはD〜)= Aまたは(〜CおよびD)
さて、あなたはpolish notationにそれを変換する必要があります。OR(AND〜CDを)

A:タイプ== 'out_refund'
B:送ら==真

注:XMLで、あなたは場所で&amp;を使用する必要がある状態が==
Cを "オープン" &。これはopenERPの作業になります。
私はtypestateとし、sentはフィールドであると仮定しました。それ以外の場合は動作しません。

attrs="{'invisible': ['|', ('type','=','out_refund'), '&amp;', ('state','!=','open'), ('sent','=',True) ] }" 
+0

私の問題は、«&#038»表記だった、私は常にコードに&を想定してきました。 もう1つのもの、type、state、およびsentは、引用符で囲まれていなければなりません: 'type'、 '='、 'out_refund' ありがとうございます。 – JoseSilva

関連する問題