本文主要是介绍PB下使用TreeView控件实现多级分类检索,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
PowerBuilder中的TreeView控件为树状列表,其特点是信息项呈树状层次结构,且形式灵活,可展开也可回缩,使用鼠标进行控制,操作简便。因此在应用中,可将其与DataWindow配合,一个提供信息的分类体系,一个提供具体信息,实现信息的多级分类检索,这样可大大地方便查询,提高系统的实用性。
一、TreeView控件的信息构成及创建
二、TreeView控件实现多级分类检索涉及的主要事件
三、具体应用实例
//建立一个图标队列,供其中的TreeViewItem项引用,在这里建立主要是为了能够控制图标大小
//首先设定图标显示尺寸
This.PictureHeight=15
This.PictureWidth=16
//图标队列由4个图标构成,前3个用于标识医嘱类项目的级别,第4个用于标识项目的选中状态
This.AddPicture("DosEdit5!
This.AddPicture("custom023!")
This.AddPicture("custom036!")
This.AddPicture("Custom050!")
//建立第一级医嘱类项目,本级项目共两个,一个是长期医嘱项目,一个是临时医嘱项目
tv_New.Label='长期医嘱'
tv_New.Data='0'
tv_New.PictureIndex=1
tv_New.SelectedPictureIndex=4
tv_New.Children=True
This.InsertItemLast(0,
tv_New.Label='临时医嘱'
tv_New.Data=' 1’
This.InsertItemLast(0,
TreeView控件的ItemPopulate事件
Integer
string
Long
TreeViewItem
//由句柄获得TreeViewItem项,存入变量tv_Current
GetLtem(handle,
Level=tv_Current,
tv_New.
tv_New.SelectedPictureIndex=
//根据展开级别,建立当前展开项目
CHOOSE
CASE
//展开第2级医嘱类项目
tv_New.Children=True
Parm1=
//通过ds_yzzl检索当前项目类所具有的医嘱种类
n=
//依次到ds_yzzl中提取医嘱种类,建立该项目
FOR
//取ds_yzzl中zl字段的显示内容和内部值,
作为这里对应项的显示文字和内部值
tv_New.Label=ds_yzzl.Describe("evaluate
('lookupdisplay(zl)',"+
tv_New.Data=ds_yzzl.GetItemString(i,
This.InsertItemLast(handle,
NEXT
CASE
//展开第3级医嘱类项目
tv_New.Children=false
//由句柄获取其父项的句柄
11_Parent=FindItem(ParentTreeItem!,handle)
GetItem(11_Parent,
Parm1=tv_Parent.Data
Parm2=tv_Current.Data
//通过ds_yzjtlx检索当前医嘱类所具有的具体医嘱类型
n=ds_yzjtlx.retrieve(Parm1,
//依次到ds_yzjtlx中提取具体医嘱类型,建立该项目
FOR
tv_New.Label=ds_yzjtlx.Describe("evaluate
('lookupdisplay(jtlx)',"&+
tv_New.Data=
This.InsertItemLast(handle,
NEXT
END
TreeView控件的SelectionChanged事件
integer
string
long
TreeViewItem
GetItem(newhandle,
Level=tv_Current.Level
//判断当前项目是否为第3级医嘱类,
如是让旁边的DataWindow列出实施该项医嘱的病人清单
//否则,将其置空。
IF
11_Parent=FindItem(ParentTreeItem!,newhandle)
getitem(11_Parent,
Parm2=tv_Parent.data
11_Parent=FindItem(ParentTreeItem!,
GetItem(11_Parent,
Parm1=tv_Parent.data
Parm3=tv_Current.data
dw_1.SetFilter("xz='"+Parm1"'and
+parm2+"'and
dw_1.
ELSE
dw_1.SetFilter('1=2')
dw_1.
end
这篇关于PB下使用TreeView控件实现多级分类检索的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!