PB中TreeView控件的深度优化搜索算法程序

转载 2012年04月05日 16:19:18

PB中TreeView控件的深度优化搜索算法程序

(加入日期:2002-6-8)

保存文章至硬盘】【打印文章】【字体:

分享到: 0
《计算机世界》2000年第11期B14版登载的“也谈‘在PB的TreeView控件中实现自动查询’” 一文中在实现对TreeView的搜索查询时,使用了两个数组来记录数据,然后通过查找数据元素来实现查询。而本文通过树的深度优先算法来实现TreeView的查询。

---- 由于PB的TreeView控件没有提供查找项的功能,因此本程序算是对此一缺憾的补缺。

---- 调用语法:

---- findtreeitem(tv_tree, findby, data)

---- 调用参数:

tv_tree: TreeView, 指明在tv_tree树中查找
findby: boolean, 指明查找方式
false - 按标签(Label)查找
true - 按附加数据(data)查找
data: any, 指明要查找的内容
返回值:long型。若找到,返回找到的项的Handle;
若没有找到,返回0;
若出错,返回-1


---- 程序代码如下:
public function long findtreeitem(TreeView tv_tree,
boolean findby, any data);

long ll_hdl[]
integer li_cnt
treeviewitem lt_tvi

li_cnt = 1
ll_hdl[1] = tv_tree.FindItem(RootTreeItem!, 0)
do while li_cnt > 0
if tv_tree.GetItem(ll_hdl[li_cnt], lt_tvi)
= -1 then return -1
if findby then
if lt_tvi.data = data then
return ll_hdl[li_cnt]
end if
else
if lt_tvi.label = string(data) then
return ll_hdl[li_cnt]
end if
end if
if lt_tvi.children then
li_cnt ++
ll_hdl[li_cnt] = tv_tree.FindItem(
ChildTreeItem!, ll_hdl[li_cnt - 1])
else
ll_hdl[li_cnt] = tv_tree.FindItem(
NextTreeItem!, ll_hdl[li_cnt])
end if
do while ll_hdl[li_cnt] <= 0
li_cnt --
if li_cnt = 0 then exit
ll_hdl[li_cnt] = tv_tree.FindItem(
NextTreeItem!, ll_hdl[li_cnt])
loop
loop
return 0

end function

PB中TreeView控件的深度优化搜索算法程序

《计算机世界》2000年第11期B14版登载的“也谈‘在PB的TreeView控件中实现自动查询’” 一文中在实现对TreeView的搜索查询时,使用了两个数组来记录数据,然后通过查找数据元素来实现查...
  • u014112224
  • u014112224
  • 2014年06月24日 16:31
  • 302

pb TreeView控件

pb TreeView控件 PowerBuilder中的TreeView 控件为树状游览,类似于WINDOWS的资源管理器,其特点是信息项呈树状层次结构,能更清晰地表现主、细目关系 ,操作非常方便。...
  • tlammon
  • tlammon
  • 2016年03月17日 19:47
  • 609

treeview的构造实例

PowerBuilder中的TreeView 控件为树状游览,类似于WINDOWS的资源管理器,其特点是信息项呈树状层次结构,能更清晰地表现主、细目关系 ,操作非常方便。在应用中可将其与DataWin...
  • momingpb
  • momingpb
  • 2010年01月27日 17:02
  • 967

PB实现TreeView多级分类检索(案例)

contructor事件:long ll_row,i TreeViewItem tv_new //建立一个图标队列,供其中的TreeViewItem项引用,在这里建立主要是为了能够控制图标大小 //首...
  • tlammon
  • tlammon
  • 2016年03月25日 01:12
  • 995

PB TreeView 控件实现查找功能

long ll_handle,ll_level,ll_handletree[] int li_find string ls_find treeviewitem ltvi_1 SetPointer(h...
  • smilysoft
  • smilysoft
  • 2016年06月01日 17:58
  • 1124

PB下使用TreeView控件实现多级分类检索

PowerBuilder中的TreeView控件为树状列表,其特点是信息项呈树状层次结构,且形式灵活,可展开也可回缩,使用鼠标进行控制,操作简便。因此在应用中,可将其与DataWindow配合,一个提...
  • tlammon
  • tlammon
  • 2016年03月23日 01:24
  • 868

PB中TreeView控件使用技巧

PowerBuilder中的TreeView 控件为树状游览,类似于WINDOWS的资源管理器,其特点是信息项呈树状层次结构,能更清晰地表现主、细目关系 ,操作非常方便。在应用中可将其与DataWin...
  • chensheng913
  • chensheng913
  • 2004年06月27日 19:23
  • 10398

PB树项动态刷新的简单办法

常见的左边treeview右边dw的窗口界面里,左边的树绝大多数对应右边数据窗口中的某个或几个栏位,当树项中的某level的父项data也是右边数据窗口的某个栏位时, 用下边的简单方法能为指定层次实行...
  • zzxing
  • zzxing
  • 2008年04月08日 21:33
  • 1661

c# winform TreeView控件点击节点,它的子节点被全部选中或者取消选中

我们在分类组织数据的时候常常会用到T
  • u013485584
  • u013485584
  • 2014年10月09日 09:35
  • 537

PB控件属性之TreeView

TreeView 【其他】 ■TreeView控件可以以树型方式来组织项目,不仅显示直观、界面友好,而且项目的管理和操作更为方便,是当前比较流行的一个控件。 该控件的特点是在较小的空...
  • u012369435
  • u012369435
  • 2014年07月03日 11:38
  • 1245
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PB中TreeView控件的深度优化搜索算法程序
举报原因:
原因补充:

(最多只允许输入30个字)