| treeviewitem tvitem,tvitem1 long handleno string mcode,mname |
| long newitem, rootitem int rowcount1, rowcount2, grade1, i, j, k string code1, name1 connect; dw_1.settransobject(sqlca) dw_2.settransobject(sqlca) dw_3.settransobject(sqlca) dw_1.visible=false dw_2.visible=false dw_3.visible=false select max(grade) into :grade1 from persons; tv_1.setredraw(false) select code into :code1 from persons where grade=1; file://根节点只有一个 i=dw_1.retrieve(code1) tvitem.label="(1)"+dw_1.getitemstring(1,"code")+"/" +dw_1.getitemstring(1,"name") tvitem.pictureindex=1 tvitem.selectedpictureindex=1 rootitem=tv_1.insertitemlast(0,tvitem) file://建立根节点 dw_1.setitem(1,"handno",rootitem) file://存贮根节点句柄 dw_1.update() for i=2 to grade1 step 1 dw_3.retrieve(i) rowcount2=dw_3.rowcount() dw_2.retrieve(i - 1) rowcount1=dw_2.rowcount() for j=1 to rowcount1 step 1 rootitem=dw_2.getitemnumber(j,"handno") file://取双亲节点句柄号 code1=dw_2.getitemstring(j,"code") for k=1 to rowcount2 step 1 mcode=dw_3.getitemstring(k,"pcode") if mcode=code1 then name1=dw_3.getitemstring(k,"name") tvitem.label='('+string(i)+")"+code1+'/'+name1 tvitem.pictureindex=2 tvitem.selectedpictureindex=4 newitem=tv_1.insertitemsort(rootitem,tvitem)//插入新节点 dw_3.setitem(k,"handno",newitem) file://存贮新节点的句柄号 end if next next dw_3.update() next tv_1.setredraw(true) rootitem=tv_1.finditem(roottreeitem!,0) tv_1.expandall(rootitem) file://展开树形视图 tv_1.setfocus() |
| handleno=tv_1.finditem(currenttreeitem!,0) tv_1.selectitem(handleno) |
![]() 图1 树形视图示意图 |