第一步:製作第一層
TreeViewItem ltvi_Item integer li_Cnt, li_Rows li_Rows = dw_emp.rowcount( ) For li_Cnt = 1 to li_Rows //當emp_parentid為空值新增為ROOT if len(trim(dw_emp.Object.emp_parentid[li_Cnt]))>0 then continue SetPointer(HourGlass!) // Add a root for each department ltvi_Item.level=1 //ltvi_Item 在TreeView control 中的級別 ltvi_Item.label = dw_emp.Object.emp_name[li_Cnt] //ltvi_Item的顯示資料 ltvi_Item.data = dw_emp.Object.emp_id[li_Cnt] //ltvi_Item的內部資料 ltvi_Item.pictureindex = 1 //ltvi_Item顯示的圖案編號 ltvi_Item.selectedpictureindex = 2 //ltvi_Item被選中時顯示的圖案編號 ltvi_Item.children = True //ltvi_Item是否有子項的標誌(+) tv_1.InsertItemLast(0, ltvi_Item) //將加入的ltvi_Item放在指定項的後面 Next第二步:製作所展開的下一層 當第一層第一次展開時觸發[ItemPopulate]事件,將其子內容加入
Integer li_Rows, li_Cnt Boolean lb_flg lb_flg = false long ll_tvi,rhandle TreeViewItem ltvi_Dept, ltvi_Emp If GetItem(handle, ltvi_Dept) = -1 Then Return SetPointer(HourGlass!) // Populate the department with its employees //dw_emp為資料來源 li_Rows = dw_emp.rowcount() ltvi_Emp.pictureindex = 1 ltvi_Emp.selectedpictureindex = 2 ltvi_Emp.children = True For li_Cnt = 1 To li_Rows if ltvi_Dept.data = dw_emp.Object.emp_parentid[li_Cnt] then ltvi_Emp.label = dw_emp.Object.emp_name[li_Cnt] ltvi_Emp.data = dw_emp.Object.emp_id[li_Cnt] InsertItemSort(handle, ltvi_Emp) //插入時排序 lb_flg = true end if Next //取消沒有 children item 的(+)號 if lb_flg = false then ltvi_Dept.pictureindex = 1 ltvi_Dept.selectedpictureindex = 2 ltvi_Dept.children = false ltvi_Dept.label = ltvi_Dept.label ltvi_Dept.data = ltvi_Dept.data SetItem ( handle, ltvi_Dept ) end if
沒有留言:
張貼留言