hur.cn - 华软网

 热门搜索

PB中如何遍历TreeView

  作者:未知    来源:网络    更新时间:2019/7/30
PB中如何遍历TreeView,我找了一个没有看到ChildNodes类似这样的结点...
请高手指点
------华软网友回答------
TreeViewItem ltvi_flm,ltvi_flm_ch,ltvi_flm_p
long ll_tvi,ll_tvi_ch,ll_tvi_p,ll_count
boolean lb_flag=false
string ls_cddm,ls_type

If atr_view.GetItem(al_handle,ltvi_flm) = -1 Then Return -1
ls_cddm = ltvi_flm.data
ll_count = 0
//检查该项菜单是否在权限表中存留
select count(*)
into :ll_count
from tb_qxb
where cddm=:ls_cddm and yhdm=:as_yhdm
using sqlca;
if ll_count<1 then return 0  //表示不存留
//如果存留则设置为打勾
ltvi_flm.StatePictureIndex=2
atr_view.SetItem( al_handle, ltvi_flm )
//检查该节点下的子节点
ll_tvi_ch =  atr_view.FindItem(ChildTreeItem!, al_handle)

do while ll_tvi_ch<>-1
//获适当前子节点
atr_view.GetItem(ll_tvi_ch,ltvi_flm_ch)
ls_cddm = ltvi_flm_ch.data
//判断是否存留
ll_count = 0
select count(*)
into :ll_count
from tb_qxb
where cddm=:ls_cddm and yhdm=:as_yhdm
using sqlca;
if ll_count>0 then
ltvi_flm_ch.StatePictureIndex=2
atr_view.SetItem( ll_tvi_ch, ltvi_flm_ch )
of_settv(atr_view,as_yhdm,ll_tvi_ch)
end if


ll_tvi_ch =  atr_view.FindItem(NextTreeItem!, ll_tvi_ch)
loop

return 0
------华软网友回复------
函数TreeList(long handle)
long ll_Handle
Treeviewitem ltvi_Item
ll_Handle = Tv_Tree.finditem(ChildTreeItem!,handle)
do while ll_Handle <> -1
   Tv_Tree.Getitem(ltvi_Item,ll_Handle)
   //根据ltvi_Item做响应的操作
   ltvi_Item即掏出的节点,
   ltvi_Item.statepictureindex 节点状态,一般用来区分复选框
   ltvi_Item.label 节点题目
   ltvi_Item.data 节点创建时寄存的数据
   TreeList(ll_Handle)
   ll_Handle = Tv_Tree.finditem(NextTreeItem!,handle)
loop
调用TreeList(0)即可完成整颗树的遍历

------华软网友回复------
谢谢,两位这么细心,我看看!!
------华软网友回复------
递归调用
------华软网友回复------
结帐
------华软网友回复------
  class="deleted_message"> 该回复被版主删除
------华软网友回复------
  class="deleted_message"> 该回复被版主删除        
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。