2011-11-30 207 views
4

我有四個字段的表單:如何根據其他字段值更改OpenERP選擇字段中的選項?

  • 作物 - 選擇
  • 活動從 - 最新
  • 積極地 - 最新
  • 塊區 - 選擇

我怎樣才能使塊區域中的可用選項取決於用戶爲其他字段選擇的值?

+0

你的問題很難遵循:它聽起來像它可以從一些代碼示例中獲益,解釋你的問題的當前狀態。 – jro

+0

我試圖澄清你的問題,@Santu。我理解正確嗎? –

+0

我注意到你沒有接受你的其他問題的答案,@Santu。如果有任何答案有幫助,請點擊每個答案旁邊的大複選標記將其標記爲已接受。這有助於其他有相同問題的人,這是一種感謝幫助你的人的方式。 –

回答

3

我不知道您是否可以使用選擇字段來完成此操作,但是當另一個字段更改值時,您可以更改多對一字段的域。您也可以只使用BlockArea字段域中的其他字段,而不必根本改變它。查看partner address screen爲state_id字段設置域的方式。你可能會發現this related question有幫助。

如果您確實需要在另一個字段更改時更改域,則the on_change event可以在其返回的字典中包含domain條目。

我發現a discussion thread,說你可以使用這個小工具上多到一個領域,因此這可能爲你工作,如果你在現場設置了domain。我沒有自己嘗試過。

1

要限制基於其他字段值的可用選項,您可以使用domain

引用的相關線:

class project_issue(crm.crm_case, osv.osv): 
    _columns = { 
     'project_id':fields.many2one('project.project', 'Project'), 
     'type_id': fields.many2one ('project.task.type', 'Stages', domain="[('project_ids', '=', project_id)]"), 
    } 

在這個例子中type_id可用的選項是取出從project.task.type表,這取決於project_id字段的值作爲一個例子,這是標準的模塊project_issue上使用。

1

嘗試on_change功能..創建on_change功能,在函數的最後返回域條件的字段block_area 例如

def onchange_for_block_area(self,cr,uid,ids,crop,from_date,to_date,context): 
    domain=[] 
    # 
    #some statements for finding the domain 
    # 
    return {'domain':{'block_area': domain}} 

提供上的字段作物,FROM_DATE和TO_DATE的平變化函數

相關問題