注册 登录
编程论坛 PowerBuilder

急问一个建树的问题?

tdhcaowei 发布于 2008-07-11 10:33, 1743 次点击
我想建一棵树,可是树的第三层目录生成不了,可能是第二个检索出了问题
大家帮我看看,怎么弄?
long NewItem,rootitem
integer  count1, count2 , i , j
//说明一个TreeViewItem对象变量
TreeViewItem tv_item
String name,code
DataStore ds_dept , ds_emp
//建立数据存储对象
ds_dept=Create DataStore
ds_emp=Create DataStore
ds_dept.dataobject="d_bmdm"
ds_emp.dataobject="dw_free_yhqx"
ds_dept.SetTransObject (sqlca)
ds_emp.SetTransObject (sqlca)

//首先插入根项目
tv_1.DeleteItem (rootitem)
tv_item.label="部门名称"
tv_item.PictureIndex=1
tv_item.selectedPictureIndex=2
rootitem=tv_1.InsertitemFirst (0 , tv_item)
//循环插入各个部门项目及部门下的雇员项目
ds_dept.retrieve ( )
count1 = ds_dept.RowCount ( )
for i =1 to count1
   name = ds_dept.GetItemString (i ,2)
tv_item.label = name
tv_item.data=ds_dept.getitemstring(i,1)

tv_item.PictureIndex =1
tv_item.SelectedPictureIndex =2
//插入一个部门项目
NewItem = tv_1.InsertItemLast (rootitem , tv_item)
//循环插入一个部门下的所有雇员项目
code =tv_item.data
//messagebox("",code)//返回结果是成功的
ds_emp.setfilter("YHBM='"+code+"'")
ds_emp.filter()

count2=ds_emp.rowcount()


for j =1 to count2
       tv_item.label = ds_emp.GetItemString (j ,1)
       tv_item.PictureIndex = 1
    tv_item.SelectedPictureIndex =2
       //插入一个雇员项目
       
next
next
1 回复
#2
jxyga1112008-07-11 17:31
do while sqlca.sqlcode=0
    ll_child=tv_1.insertitemlast(ll_parent,ls_parnetname,2)
    declare crsr_child cursor for select id,name from hsl_1
    where parentid=:ls_parentid;
    open crsr_child;
    fetchchild into :ls_childid,:ls_childname;
    do while sqlca.sqlcode =0
        TreeViewItem lt_item
        lt_item.label=ls_childname
        lt_item.data=ls_childid
        lt_item.pictureindex=3
        lt_item.selectedpictureindex=3
        tv_1.insertitemlast(ll_child,lt_item)
        fetch crsr_child into :ls_childid,:ls_childname;
    loop
    close crsr_child;
這是我做的樹,你自己參考一下
1