2012-12-31 40 views
2

如何比較OpenERP6.1中oneTomany表中的兩行?比較OpenERP6.1中one2many表中的兩行

我有一個主表,說'XX',我有一個TOMYY表,說'YY'對應於 那個表。

現在,我有'YY'表中的三列。每次我創建記錄到 此表中,我想檢查三列中的值是否相同。

也就是說,如果我點擊創建按鈕,並與 「快樂的」,「新」,「年」值進入了第一排,

下一次,當你輸入相同的值,您應該被提示 這些值不應重複的消息。

回答

0

爲什麼不能使用_constraint?您只有在保存記錄時纔會發出警告。

1

您可以使用兩種方法的至少一個: 1.使用_sql_constraint與你列獨一無二的,就像在

_sql_constraints = [ 
    ('number_uniq', 'unique(number, company_id, journal_id, type)', 'Invoice Number must be unique per Company!'), 
] 

從account.invoice對象,或

覆蓋創建/寫入方法爲yy對象併爲你的字段寫一個onchange函數。

+0

很多感謝user7888049..when我們重寫創建/寫入方法時,只有在主表中保存記錄後纔會顯示消息。我的要求是在YY對象中創建行後顯示消息。現在,爲了使onchange函數起作用,我們需要至少一行保存在YY對象中。但即使我們看到在YY對象中創建的行,它也不會實際保存在數據庫表中,除非保存主要對象的按鈕被點擊.....你能否爲此提出一個解決方案? – Alchemist777

+0

爲每個字段hapy,new,year寫上onchange。在每個onchange字段中,在數據庫中搜索當前記錄中當前記錄的其他兩個字段的值(來自視圖的值)one2many中的值,並且如果在記錄中找到編輯字段的當前值,則會引發錯誤。爲此,也使用上下文。在product_id字段的sale.order.line中可以找到複雜的onchange。有關上下文示例,請查看sale.view_order_form。 – user1888049