1. 程式人生 > >樹型部件分層載入資料實現思路,提高速度,提高效率

樹型部件分層載入資料實現思路,提高速度,提高效率

我們知道,樹型部件中可以以樹型展示資料出來。例如我們把組織機構展示出來,可以寫業務表:
select  dept_id,dept_name,upper_id from sa_dept_dict
然後再設定樹型關鍵列未 dept_id,上級列未upper_id。這樣就出來了一個樹型的資料。

這樣在一般業務中是沒有問題的,如果我們設想一下sa_dept_dict表中有成千上萬條資料,這樣直接一下全部讀出來形成一棵樹,效率可能就很慢。那如何來解決較好呢。

我們知道因為樹型是可以一個一個節點展開的,那就可以先預設載入第一級的資料出來,然後點選第一級的某一個值,再把該值的第二級加載出來,這樣點某一個就只加載某一個的直接下級,資料量一下就少很多了,效率提高就非常明顯。


例如:開始開啟樹型的時候,只查詢第一層的資料出來。

select  dept_id,dept_name,upper_id from sa_dept_dict where  upper_id =0

然後,在樹型部件的“資料行雙擊事件”中,再寫以下程式碼。


dim dt=樹型部件1.DataTable

if 樹型部件1.TreeList.FocusedNode.Nodes.Count=0 then
    '載入選擇節點的子資料。並填寫到樹型部件中,實現分層載入資料。
    dim dt1=executeSelect("select dept_id,dept_name,upper_id from sa_dept_dict where upper_id="&樹型部件1.GetFocusedNodeValue("DEPT_ID"))

   for each dr in dt1.Rows 
      dt.Rows.Add(dr.ItemArray)
    next 
end if

這樣就實現了分層載入資料,大家可以試試,資料量越大,效果越明顯。比如總共上萬條資料後,分層載入資料就非常有必要。

轉載請註明出處: