没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|其它|编辑:郝浩|2005-10-12 10:38:00.000|阅读 1692 次
概述:
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
PowerBuilder中的TreeView 控件为树状游览,类似于WINDOWS的资源管理器,其特点是信息项呈树状层次结构,能更清晰地表现主、细目关系
,操作非常方便。在应用中可将其与DataWindow 配合使用,
一个提供信息的分类体系,一个提供具体信息,达到珠连碧合的奇妙效果。它特别适用于多级信息的分类检索,
是多级菜单所无法比似的,它的表现形式深受程序设计人员和广大用户的喜爱,在许多应用软件中都能看到她的英姿。
在PowerBuilder下,TreeView
控件的应用较其它控件要复杂得多,刚接触它时往往有些不知所措。但如果将它的机理搞清楚,掌握它也不是很难的事。下面我结合长白公司图书分类检索的实例,把TreeView
控 件的使用方法和大家探讨一下。
一、应用TreeView 控件的一般步骤
1、 建立一个应用,并设好与数据库的接口,这是操作数据库的前提。
2、 在应用中建一应用窗口W_1,在其上加入二个名为dw_3和dw_4的datawindow控制对象和一个名为TV_1的TreeView对象。
3、 修改DW_3属性
General:把Datawindow object name填写一个已存在的名为DW_date的datawindow(注意:它与datawindow控制对象是不同的),用于生成树视图项,将其Visible项设为不可见。
4、 修改DW_4属性
General:把Datawindow object name填写一个已存在的名为DW_TS的datawindow对象,用于显示查询出的具体内容。
5、 编辑TV_1的属性
TreeView的树视图项不能直接编辑,必须在Script中编写程序。
Picture:在Picture Name中加入四个不同的图标,用于代表树视图中的两个层次(一、二级)、两种状态(未选、选中)。
General:可根据具体应用设定是否选中,其中:
Delete Items:运行中是否允许删除表项。
Disable PragDrog: 运行中是否允许拖放表项。
Edit Labels: 运行中是否允许单击表项来改变表项的标题。
Show Buttons:是否在表项放显示+-按钮,有示相对的扩展和收缩。
Hide Selection:当该控件失去焦点时,选中项是否以高亮度显示。
Show Line:表项间是否加一竖线。
Lines At Root:所有根层表项是否用竖线连接。
Indentation:子表项相对于父表项的向右缩进度。
6、 编写TV_1的Script
这里是TreeView控件的关键,也是难点。
二、TreeView 控件的信息构成及创建
树视图项TreeViewItem是TreeView
控件的基本信息单位,树视图项的生成一般有二种方法,一种是先生成根层视图项,再在应用中动态生成下级视图项,另一种是把全部树视图项一次和成。两种方法各有优点,请根据具体情况选用,本例中采用后一种方法。
1、 树视图项TreeViewItem的主要属性
Label:String 型,树视图项的显示信息。
Data:Any型,树视图项的内部值。
Level:Integer型,树视图项在树视图中级别。
Children:Boolean 型,它决定该项是否有下一层(如图中书名)。
PictureIndex:Integer 型,该项非选中时所用的图标在图标队列中的编号。
SelectedPictureIndex:Integer型,该项选中时所用的图标在图标队列中的编号。
2、 生成TreeViewItem项用到的函数
InsertItemFirst():将加入项作为第一项
InsertItemLast():将加入项作为最后一项
InsertItem():将加入项插入到指定项的后面
InsertItemSort():按顺序放置。
3、 TreeView的常用事件
Constructor: 该事件在控件创建时触发,可在这里构造TreeViewItem。
Click:单击TreeViewItem项时,执行查询程序。
Double Click: 双击TreeViewItem项时,执行查询程序。
ItemPopulate 事件: 该事件在某TreeViewItem项首次展开时触发, 触发的同时系统会将 该TreeViewItem项的句柄通过参数handle
传递过来。它主要用来生成对应项的下层信息项。主要用于第一种方法。
三、 事件代码
1、树视图控件TV_1的constructor事件代码
integer li_rowcount,li_rowstring
li_current_dn,li_last_dn,li_current_ei,li_last_ei//声明二个树视图的实例变量
treeviewitem itvi_level_one,itvi_level_two//long ii_h_l_one//long
ii_h_l_twodw_3.settransobject(sqlca)//dw_3为隐含的数据窗口,存有生成树的数据
li_rowcount=dw_3.retrieve()//行数dw_3.setsort("lb,pm")dw_3.sort()//生成树视图的各级树视图项
for li_row=1 to li_rowcountli_current_dn=dw_3.object.lb[li_row]//DW_3对象中"LB类别"
li_current_ei=dw_3.object.pm[li_row]//DW_3对象中"PM品名"
if isnull (li_current_ei) thenli_current_ei=""end ifif
li_current_dn< >li_last_dn then//IF LB不与一级视图项重复//设置一级树视图项
itvi_level_one.label=dw_3.object.LB[li_row]//视图项的显示信息
itvi_level_one.level=1 //级别
itvi_level_one.data=li_current_dn//视图项的内部信息
itvi_level_one.pictureindex=1//没选中时所用的图标序号
itvi_level_one.selectedpictureindex=3//选中时使用的图标序号
itvi_level_one.children=(li_current_ei< >' ')//树视图是否有下一级
ii_h_l_one=this.insertitemlast(0,itvi_level_one)//将项加入到一级树的最后一项
end if//设置二级树视图项
if li_current_dn< >li_last_ei thenif li_current_ei<>' ' ifend
ifli_last_dn=li_current_dn//设比较项
li_last_ei=li_current_einext
2、tv_1控件的clicked事件代码
string s1treeviewitem iithis.getitem(handle,ii)s1=string(ii.label)choose case
ii.levelcase 1//过滤类别
dw_4.setfilter("lb='"+s1+"'")dw_4.filter()case
2dw_4.setfilter("pm='"+s1+"'")dw_4.filter()//过滤书名
end
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com
面对“数字中国”建设和中国制造2025战略实施的机遇期,中车信息公司紧跟时代的步伐,以“集约化、专业化、标准化、精益化、一体化、平台化”为工作目标,大力推进信息服务、工业软件等核心产品及业务的发展。在慧都3D解决方案的实施下,清软英泰建成了多模型来源的综合轻量化显示平台、实现文件不失真的百倍压缩比、针对模型中的大模型文件,在展示平台上进行流畅展示,提升工作效率,优化了使用体验。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@evget.com
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
慧都科技 版权所有 Copyright 2003-
2025 渝ICP备12000582号-13 渝公网安备
50010702500608号