数据库编程
  | Asp教程 | Asp.Net教程 | CGI教程 | PHP教程 | Jsp教程 | XML教程 | C++教程 | C#教程 | VC教程 | VB教程 | Delphi教程 | 汇编语言 | 其它语言 | JAVA教程 | 数据库编程 | 移动开发
您当前的位置:首页 > 编程开发 > 数据库编程 > 正文

English translation RSS 2.0 Atom 1.0 XHTML 1.0 Transitional RSS 1.0

在Powerbuilder中实现并应用树形视图
来源:  作者:   更新时间:[2006-08-14]  点击次数:0次
聚杰网 数据库编程


  树形视图控件最适合显示具有层次关系的数据,在Windows9x/2k中文件和文件夹(子目录)之间的关系就是用树形视图来表现的。在数据库中,树形视图是管理大量数据的好方法,因为用户只需简单地点击鼠标就可以选择自己需要的数据。

  当我们对数据的表现有以下要求时,我们可首先考虑使用树形视图控件:

   * 显示层次结构中元素之间的关系;

   * 元素在层次结构之间漫游(元素间的拷贝、移动等);

   * 描述每个元素相关信息;

   * 将大量数据检索的过程划分为若干步骤,只表现其中需要的部分。

  在Powerbuilder中,对树形视图的编程是窗口中较为复杂的部分,它无法像数据窗口那样使用一条Retrieve()函数就可以将数据表现出来。下面我们结合树的数据结构及其存储和遍历,探讨一下树形视图的构建和应用。

  1. 树的数据结构及其存储结构

  树是一种常见的非线性的数据结构,使用非常广泛。一般人们用孩子表示法、孩子兄弟表示法(二叉树表示法)和双亲表示法来存贮一棵树。其中前两种表示法或因各结点不同构或冗余度太大,或因存贮量太大而不适合在PowerBuilder中应用,而数据库中表的结构和特性正与树的双亲结点表示法的要求相符合,因而最好是采用双亲节点表示法。

  树的双亲节点表示法利用了每个节点(除根节点外)只有唯一的双亲的性质,每个结点的结构分为两个域,即Data域和Link域。Data域用以存储本节点的有关信息,Link域为指向双亲节点的指针。

  2.数据库中表的设置

  为了便于说明问题,我们以商品传销网为例,传销网中每个人都对应到树中的一个节点。我们把有关数据存储在表Persons中。

  根据树的双亲节点表示法的特点,同时考虑到便于查询,将Data域分成本人代号(code)和本人姓名(name)两个字段,而Link域对应到上线代号字段(pcode)。虽然在关系型数据库中,数据的操作是以集合为基础的,而集合中的元素是没有顺序的,但在构建树形视图时必须一个一个地将节点添加进去,且PowerBuilder不支持指针型变量,因而我们在表Persons中增加一字段Handno,记录每个结点的句柄,配合Pcode字段,以实现"指针"的功能,其原理是:通过查找本结点的上线代号来查找其双亲结点的句柄号。由于树形视图等级结构非常明显,我们采用按层次遍历树,所以我们在Persons表中再增加一个字段Grade,便于按层次顺序构建树形视图。表Persons的结构如下表,主键为code列。当然可在表中设置一个或多个字段,以存储各结点的其他信息,但本文旨在说明问题,故不予考虑。

  表Persons的结构如表1所示。

  表1 Persons表的结构


分页:[1] 2 3 4 5 6

返回文章列表
·上一篇: Sql语句密码验证安全漏洞 ·下一篇Microsoft SQL Server 查询处理器的内部机制与结构
 

 
 
本类排行 本站推荐
通过缓存数据库结果提高PHP性
Spring JDBC抽象框架简化Web
N种方法教你把更多屏幕“让”
Eclipse RCP+Spring建胖客户
用VS.NET 2005重构你的代码
将文件导入到数据库中的方法
Visual FoxPro 9.0更强大了
Visual FoxPro 9.0 的报表设
Visual FoxPro 9 集成开发环
Visual FoxPro 9中新的数据处
 
 快 速 搜 索
 
 相关文章

 ·在PowerBuilder中动态调用函数
 ·在PowerPoint2000中使用FLASH电
 ·快速在PowerPoint文档中添加图表
 ·在PowerPoint中制作彩色的数学公式
 ·在PowerPoint中轻松插入Excel表格
 ·在PowerPoint课件中插入数学公式
 ·快速在PowerPoint文档中添加图表办公软件学用PowerPoint
 ·RoboGroup以互动远程学习系统进入中国
 ·3Group与微软签署全球移动服务协议
 论坛热帖