2017-04-04 120 views
0

我有這三列的數據窗口對象:返回到默認值的PowerBuilder 11

  • 狀態 - 這是一個複選框
  • 標準 - 這是一個dropdownDW
  • 另一

當狀態爲1(選中),然後criteria.Protect='0'。如果用戶從標準列表中選擇「另一個標準」,則another.Protect='0'和用戶可以寫他想要的任何東西。

問題是當用戶改變主意並取消選中狀態時。 標準和另一列有他以前選擇/寫入的最後值。如何重置dropdownDW或如何返回默認值?

在itemchange事件中,我有這樣的:

choose case dwo.name 
    case "status" 
    if data ='0' then 
     dw_list.modify("criteria.Protect='1'") 
     dw_list.modify("another.Protect='1'") 
    else 
     dw_list.modify("criteria.Protect='0'") 
    end if 

回答

0
String ls_criteriaProtect 
String ls_anotherProtect 

//Save default values: 
ls_criteriaProtect = dw_list.describe("criteria.Protect") 
ls_anotherProtect = dw_list.describe("another.Protect") 

choose case dwo.name 
    case "status" 
    if data ='0' then 
     dw_list.modify("criteria.Protect='1'") 
     dw_list.modify("another.Protect='1'") 
    else 
     dw_list.modify("criteria.Protect='0'") 
    end if 
    case else 

     //Apply initial values: 
     dw_list.modify("criteria.Protect='" + ls_criteriaProtect + "'") 
     dw_list.modify("another.Protect='" + ls_anotherProtect + "'") 
End Choose 
+0

的OP想如果用戶取消選中複選框來執行一種回滾。 – Seki

+0

這與「commit」或「rollback」無關......當用戶改變主意並取消選中複選框時,OP只想將「criteria」和「another」列中的值重置爲默認值。 只需將「this.setItem(row,」criteria「,)」和「this.setItem(row,」another「,)」添加到現有的itemChanged事件中。 –

0

使用在數據窗口對象中的地位列的保護屬性的表達式。

喜歡的東西:

case (describe('criteria.protect') when '0' then 1 else 0)