2013-07-12 47 views
0

我試圖根據用戶在表單上填寫的amountPayinterestType字段來計算付款的利息。當用戶點擊提交時,我需要在興趣領域插入讓我們說amountPay * 0.05是否可以從OpenERP中的相同形式的另一個字段計算字段的值?

的問題是,作爲interestfunction field和它搜索當前amountPayinterestType記錄價值,但因爲這些值已尚未保存失敗。

我注意到如果保存後我編輯字段並再次保存,那麼我得到正確的興趣。

有沒有什麼辦法可以做到這一點動態只需點擊提交1次?

任何提示在正確的方向將非常感謝,謝謝!

回答

1

如果我正確地理解了您,則表單中的amountPay和interestType字段將作爲輸入字段。如果興趣是功能性字段,則每次顯示錶單時(加載時,保存等)後,都會顯示計算出的功能字段值,但您可以使用on_change來執行所需的操作。

將on_change添加到amountPay和interestType字段。這可以調用傳遞這兩個字段的on_change方法。

在on_change方法中,計算正確的興趣並像這樣返回它。

def on_change_interest_fields(self, cr, uid, ids, amountPay, interestType, context): 
    interest = amountPay * 0.5 
    return {'value': {'interest': interest,},} 

儘管興趣領域是隻讀功能領域,表格中保存的值將更改爲值字典中返回的值。然後,當使用保存或重新載入表格時,功能區域將被正確計算和顯示。這種方法唯一的缺點是你正在複製功能域使用的邏輯。爲了解決這個問題,將函數字段所調用的方法中的邏輯拉到可以從函數字段方法和on_change方法調用的單獨方法中。

最後一點小點,記住python不是java。要遵循PEP008和OpenERP慣​​例,您的字段應該是amount_pay和interest_type。

+0

再一次你是對的!非常感謝所有幫助! – JordanBelf

相關問題