fill_tree(long al_handle):long ll_no,ll_cnt,ll_child,ll_h string ls_bh,ls_mc,ls_pcode treeviewitem tv_child,tv_two if al_handle < 0 then return end if a_tv.getitem(al_handle,tv_child) ls_pcode = string(tv_child.data) declare mycur cursor for select bh,mc from jxc_kw where (zt = :n_user.zt) and (trim(pcode) = :ls_pcode);//pcode为数据库中的父字段 open mycur; fetch mycur into :ls_bh,:ls_mc; if sqlca.sqlcode <> 0 then a_tv.getitem(al_handle,tv_two) tv_two.pictureindex = 3 tv_two.selectedpictureindex = 4 a_tv.setitem(al_handle,tv_two) close mycur; return //没有找到子点就把图变成index 为3,4的图,以区别 end if do while SQLCA.SQLCODE = 0 ll_h = a_tv.insertitemlast(al_handle,ls_mc,1) tv_two.data = trim(ls_bh) tv_two.label = trim(ls_bh) + '-' + trim(ls_mc) tv_two.pictureindex = 1 tv_two.selectedpictureindex = 2 a_tv.setitem(ll_h,tv_two) fill_tree(ll_h) fetch mycur into :ls_bh,:ls_mc; loop close mycur;
能否详细点,或给一个例子呢?e_mail:[email protected] 一定会给分的!!
好的,谢谢!
[PKID][PID][NAME][TYPE]然后在其中添加一条初始化记录,代表根目录,如名称为root或者是别的。
PKID是目录的主健,由数据库自动生成。
PID代表父目录
TYPE表示目录的类型
在代码中,创建一个DataSet,先读取root的所有子目录放入一个该DataSet的一个DataTable中,如果你想一次性的读入所有的目录记录,你需要遍历第一个DataTable,分别为他们创建子DataTable,考虑到性能的原因,你可以每次只读取2层,当用户选中一个选项时,再到数据库中取出这个记录下的直接子目录。
string ls_bh,ls_mc,ls_pcode
treeviewitem tv_child,tv_two
if al_handle < 0 then
return
end if
a_tv.getitem(al_handle,tv_child)
ls_pcode = string(tv_child.data)
declare mycur cursor for select bh,mc from jxc_kw
where (zt = :n_user.zt) and (trim(pcode) = :ls_pcode);//pcode为数据库中的父字段
open mycur;
fetch mycur into :ls_bh,:ls_mc;
if sqlca.sqlcode <> 0 then
a_tv.getitem(al_handle,tv_two)
tv_two.pictureindex = 3
tv_two.selectedpictureindex = 4
a_tv.setitem(al_handle,tv_two)
close mycur;
return
//没有找到子点就把图变成index 为3,4的图,以区别
end if
do while SQLCA.SQLCODE = 0
ll_h = a_tv.insertitemlast(al_handle,ls_mc,1)
tv_two.data = trim(ls_bh)
tv_two.label = trim(ls_bh) + '-' + trim(ls_mc)
tv_two.pictureindex = 1
tv_two.selectedpictureindex = 2
a_tv.setitem(ll_h,tv_two)
fill_tree(ll_h)
fetch mycur into :ls_bh,:ls_mc;
loop
close mycur;
这是我要实现树形结构!
A
B1 B2
C1 C2
D1 D2
大家能否提供算法,我马上就给分了!
和 tree用这个node的数据去数据库里找以它为父亲为它的数据行,找到就全填到自已下面。每找到一个子节点都同样调用这个函数,传入自已的node ... .. 不就搞成递归了吗?当然,第一级的必须从属一个特殊的节点因为你一开始要传入一个根节点
我去试一下!分下次就送给你!
还有,如何才能跟你联系呢?能交个朋友吗?QQ:21201161