close

PowerBuilder (36) - 如何過濾下拉數據窗口?


如果下拉裏面會數據太多,會讓用戶浪費時間會尋找數據上,為方便用戶尋找並減少操作時間,這時候就需要在下拉的數據中做一下過濾。

以下圖為例,如果我希望選班級後,學生的下拉中就只有該班級的學生名單,那該如何做呢?

過濾前 過濾後
image image


只要在 dw_1 的 itemchanged event 內寫以下代碼就可以了:

string    ls_class, ls_filter
datawindowchild ldc_std

// Get DataWindowChild
if dw_1.getchild('sid', ldc_std) = -1 then
    messagebox('Error', 'Student is not a datawindowchild!')
    return
end if

// 如果 itemchanged 的是 class 才做
if upper(dwo.name) = 'CLASS' then
    ls_class = data // 取得最新的值
    ls_filter = "class='" + ls_class + "'" // 併湊過濾字符
    
    // 設置過濾
    ldc_std.setfilter(ls_filter)
    
    // 執行過濾
    ldc_std.filter() 
end if

想還原,顯示所有的話,Setfilter('') 就可以了。

arrow
arrow
    創作者介紹
    創作者 過時程式員 的頭像
    過時程式員

    過時程式員的部落格

    過時程式員 發表在 痞客邦 留言(0) 人氣()