首页 VFP中用TreeView控件显示一对多关系

VFP中用TreeView控件显示一对多关系

举报
开通vip

VFP中用TreeView控件显示一对多关系VFP中用TreeView控件显示一对多关系 电脑知识与技术??????研究开发? VFP中用TreeView控件显示一对多关系 赵建功鲁保玉 漯河职业技术学院.河南漯河462002 摘要:本文介绍了TreeView控件在VFP中的用法,结合一个程序实例阐述了用 TreeView控件显示多层一对多 关系的数据表的方法. 关键词:VFP;TreeView控件;显示;多层一对多关系 中图分类号:TP311;文献标识码:A 1引言 在VFP应用程序中,通常用Textbox(文本框)等控 件显示一对多关系中...

VFP中用TreeView控件显示一对多关系
VFP中用TreeView控件显示一对多关系 电脑知识与技术??????研究开发? VFP中用TreeView控件显示一对多关系 赵建功鲁保玉 漯河职业技术学院.河南漯河462002 摘要:本文介绍了TreeView控件在VFP中的用法,结合一个程序实例阐述了用 TreeView控件显示多层一对多 关系的数据 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 的方法. 关键词:VFP;TreeView控件;显示;多层一对多关系 中图分类号:TP311;文献标识码:A 1引言 在VFP应用程序中,通常用Textbox(文本框)等控 件显示一对多关系中"一"的一方数据表,用Grid( 表格 关于规范使用各类表格的通知入职表格免费下载关于主播时间做一个表格详细英语字母大小写表格下载简历表格模板下载 1 控件显示一对多关系中"多"的一方数据表.这种方式由 于控件和数据表是相互关联的,所以具有方便数据编辑 的优点.但是.对于那种"一对多再对多"即多层一对多 关系的数据库结构时,这种方式则显得即不直观又不美 观 TreeView控件是在VFP的数据处理中很有用的一 个ActiveX控件.它能够以一种树形目录的方式来显示 分层列表信息.Windows资源管理器和注册表编辑器就 是TreeView使用的例子.用TreeView控件来显示多层 一 对多关系的数据表.是一种简洁明了而又非常直观的 形式. 2TreeVJew控件 TreeView控件显示Node对象的分层列表,每个 Node对象均由一个标签和一个可选的位图组成. TreeView一般用于显示文档标 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 ,索引入口,磁盘上的 文件和目录,或能被有效地分层显示的其它种类信息. 控件的外观有八种可用的替换样式.它们是文本,位图, 直线和+/一号的组合.Node对象可以任一种组合出现. TreeView控件使用由ImageList属性指定的ImageList 控件,来存储显示于Node对象的位图和图标.任何时 刻,TreeView控件只能使用一个ImageList.这意味着, 当TreeView控件的Style属性被设置成显示图象的样 式时.TreeView控件中每一项的旁边都有一个同样大小 的图象. TreeView控件是COMCTIj2.OCX文件中的一组 ActiveX控件的一部分.为了在应用程序中使用Tree. View控件,必须将COMCTL32.OCX文件添加到工程 中.在发行应用程序时.要在用户的MicrosoftWindows System或System32目录中安装COMCTL32.OCX文件. 3在TreeView控件中加入节点 向TreeView控件中加入节点.使用TreeView控件 中Note(节点)对象的Add方法.Add的用法如下: Add(relative,relationship,key,text,image,selectedim- age) 各参数的含义如下: relative:参照节点的键值,向TreeView控件中加入 节点时,你能够决定所添加的节点与业已存在的节点之 间的关系.Relative参数的作用就是指明已存在的节点 的名称(键值).当参照节点为顶级节点时,省略relative 参数. relationship:指明欲添加的节点与业已存在的节点 之间的关系.其可选值及具体含义如下: 0:顶级节点.新添加的节点放置在参照节点的最上 面. 1:末级节点,新添加的节点放置在参照节点的最下 面. 2:次级节点.新添加的节点紧跟在参照节点的后 面. 3:上级节点.新添加的节点紧靠在参照节点的前 面. 4:子节点.新添加的节点为参照节点的子节点. key:新添加节点的键值.该键值必须是唯一的.键 值是字符串类型且必须以字母打头. text:新添加节点的标题. …881 电脑知识与技术??研究开发 image和selectedimage:图像索引值.为整型可选参 数.指明新添加的节点在选中与没选中时所显示的不 同图像.通常,这些图像是存放在ImageList控件中的. 在TreeVieW控件中你可以设置该控件的ImageList值. 4用TreeView控件显示一对多关系 下面.本文以一个学籍管理系统中的应用实例来 阐述用TreeView控件显示多层一对多关系的方法.本 例用一个TreeView控件表述,了一个学校由系部到专 业,班级的各级管理机构的分层结构(图1). 图1用TreeView控件显示一对多关系表 本文所介绍的程序实例,巧妙地运用多重循环,实 现了一对多再对多关系在TreeView控件中的分层显 示.最外层的循环是顶级节点,对应于一对多关系中最 前面的数据表.最内层的是末级节点,对应于一对多再 对多关系中最后面的数据表.循环嵌套的层数为一对多 关系中数据表的个数.每层循环次数即为各级节点个 数.各级节点的键值是所对应数据表的主关键字,若主 关键字不是字符类型必须转换为字符串,若主关键字不 是以字母打头,要在其前面加上字母.下面举例说明. 图2为数据库中3个一对多关系的数据表,图3 是它们的关系图. 圜国固图2多层一对多关系的数据表 电奠知识与技术 图 表code_zy中的索引id_xb=left(id,2),表code—bj 中的索引id_zy=left(id,4) 程序 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 步骤如下: (1)创建表单FormTree,在其数据环境中依次加入 表code_ xb,code— zy,code—bj.在code_zy的Filter属性 中填入表达式code—xb.id==left(code—zy.id,2),在code—bj 的Filter属性中填入表达式codezy.id==left(code—bj.id, 4). (2)在表单FormTree中添加ImageList控件 OleImage.编辑控件Olelmage的ImageListCtrl属性加入 一 些要用到的图标.本例中共加入了4个图标,分别表 示"系部","专业","班级"和各级节点选中时的图标.这 4个图标的索引值依次为l,2,3,4. f31在表单FormTree中添加TreeView控件 OleTree.OleTree控件的相关属性值设置如下: Style属性设置为7,显示直线,+,-号,图象和文 本. ineStyle属性设置为l,根节点显示直线. L Indentation属性为节点前面的直线的长度,本例中 设置为26. Sorted属性设置为.F..节点不按Text属性值的字 母顺序排列. Checkboxes属性设置为.F..节点前面不显示复选 框. (4)在控件OleTree的Init事件中加入如下程序代 码.该段代码的功能就是激昂本例中一对多再对多关 系得3个数据表中的内容,按照相应得层次结构显示 reeView控件中: 在T this.imagelist=thisform.oleimage selectcode_ xb gotop dowhile.not.eofO cXB=XB+code_ xb.id this.nodes.add(,4,cXB,allt(code_xb.name),l,4) 一添加顶级节点 selectcode— zy gotop dowhile.not.eofO cZY=ZY+code_ zy.id this.nodes.add(cXB,4,cZY,code_zy.nanle,2,4) 电脑知识与技术....??研究开发? 添加第二级节点' selectcode—bj gotop dowhile.not.eof0 cBJ=BJ+code—bj.id this.nodes.add(cZY,4,cBJ,code_bj.name,3,4) 添加第三级节点 skip enddo selectcode— zy skip enddo selectcode_ xb skip enddo 程序中,XB+code—xb.id,ZY+code—zy.id, BJ+code—bj.id分别是"系部","专业","班级"各层 节点的键值,code_xb.name,code—zy.name,code_bj. name则分别是各层节点的所显示的文本,也就是"系 别","专业"和"班级"的名称. 上述程序的执行过程为描述如下: (1)执行第一层循环,将code_xb表中的第1条记录 添加到顶级节点中.该节点的键值为XB01. (2)执行第二层循环,在键值为XB01的顶级节 点下添加子节点,将code_zy表中与code— xb表相匹配 的第1条记录添加到第二级节点中,该节点的键值为 ZY0101. (3)执行第三层循环,在键值为ZY0101的二级 节点下添加子节点.将code—bj表中与code—zy表相匹 配的第1条记录添加到第三级节点中,该节点的键值为 BJ010101. 继续执行第三层循环.在键值为ZY0101的二 级节点T~]Jtl子节点,将code—bj表中与code—zy表相 匹配的第2条记录添加到第三级节点中,该节点的键值 为BJ010102.照这样循环执行下去,直到code—bj 表中与code_ zy表相匹配的记录全部添加到第三级节 点中,这些节点的键值依次为BJ010103, BJ010104……,然后跳出第三层循环. (4)继续执行第二层循环,在键值为XB01的顶 级节点下添加子节点,将code_zy表中与code_xb表相 配的第2条记录添加到第二级节点中,该节点的键值 为ZYO102.然后重复执行(3),在键值为ZYO102 的二级节点下添加子节点,将code—bj表中与 codezy表相匹配的各条记录添加到第三级节点中,这 些节点的键值依次为BJO10201,BJO10202, BJO10203…….然后跳出第三层循环再继续执行第二 层循环.这样,第二级节点的键值依次为ZY0101, ZYO102,ZYO103……直到code_zy表中与 code_ xb表相匹配的记录全部添加到第二级节点中. (5)继续执行第一层循环,将code_xb表中的第2条记录 添加到顶级节点中.该节点的键值为XB02.然后重 复执行(2)和(3),第二级节点的键值依次为ZY0201 ,ZY0202,ZY0203……,第三级节点的键值 依次为BJ020101,BJ020102……. 这样循环下去,直到code—xb表中的所有记录添加 完毕. 运行在表单FormTree即可将图2中的一系列一对 多关系表显示为如图1所示的树形目录结构. 5结束语 本文中的示例程序所表示的是一个三层结构的一 对多关系.对于更多层次的一对多关系,只须增加程序 中的循环结构的嵌套层次数即可.TreeView控件还有 其它一些属性,方法和事件.由于示例程序中未用到, 所以也就没有介绍.利用这些属性,方法和事件通过编 程完全可以用TreeView控件实现对其所显示的数据表 的修改操作,但笔者认为,要实现对数据表的修改与编 辑,最好还是用Textbox和Grid等具有可读写属性的控 件比较好.用TreeView控件来显示多层一对多关系具 有其独到之处.但是,就其所显示的数据表来说,它是" 只读"的,不能用它来对数据表进行编辑,这也是其局限 性所在. 参考文献: 【1】史济民.软件工程原理方法与应用【M】.北京:高等 教育出版社,1988. 【2】张琦.VisualFoxPro面向对象编程指南【M】.北京: 清华大学出版社,1999. [3]MajorFOXPR网络工作室.TreeView控件应用详 解.www.yesky.con.2000.05.25. 收稿日期:2005年2月 2o.5.8船
本文档为【VFP中用TreeView控件显示一对多关系】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_153723
暂无简介~
格式:doc
大小:23KB
软件:Word
页数:8
分类:生活休闲
上传时间:2017-11-29
浏览量:75