- 浏览: 271308 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
sunlin:
水文 其他erp就没这样的问题? 不能单方面拿sap说 ...
【转】揭秘SAP在华真相:天价收费与用户之灾 -
zjut_xiongfeng:
用当前日期所在月的第一天,比如2010-7-30的当前月第一天 ...
pb函数库之日期、时间函数 -
550627069:
你好!问下 在PB中显示当前日期的前一个月 应该怎么做?求教
pb函数库之日期、时间函数
树形结构在Windows环境中被普遍应用,它以简捷的界面深受用户喜爱。但在数据库开发中面对层次多、结构复杂的数据,如何快速地构造树形目录呢?
实现关键技术
在PowerBuilder所提供的控件中包含了Treeview控件,但树的具体形成还需用户编写脚本实现,即它的列表项要在程序中动态添加,而这些列表数据通常由用户已录入在数据库中,并作为数据库维护的一项内容。
为了能快速实现数据库的树形结构,我们可以采用编码法,即利用编码表来实现。
编码表的基本字段包括编码和编码名称,其编码规则是以数字、字母的位数来区分不同层次,同一层编码位数相同,层次按位数递增,程序通过判断编码位数来决定所在层数。
例如:第一层为10~99两位,第二层为1010~1099四位,用户需要做的是先要设计树的结构和对应编码,并把相应名称进行录入,然后程序在读取这些数据时形成树。
编码法的优点是可以适应任何复杂的层次数据,实现方法简单,且树内容有变动时,无需更改程序代码。
范例程序与主要代码分析
我们以建立一个城市名称的树形结构为例,来说明编码法的应用。
首先建立编码表:city_tab(行政编码、行政名称),其对应的数据窗口是dw_tree(处于隐藏状态),对应树控件为tv_1。
接着在录入界面下输入各城市名称、区域名称及对应编码,最后在窗口的OPEN事件上输入以下代码:
long tvi_root,tvi_next,tvi_next1,tvi_next2,tvi_root1,currenthandle,currentnext
int i,j,z,k
string city_bm,city_name
treeviewitem tvi
//定义一个树形数据类型的变量
tv_1.setredraw(false)
dw_tree.settransobject(trooptrans) //连接数据库
dw_tree.retrieve()
i=dw_tree.rowcount()
j=1
//定义树形变量的属性,设置根目录的标签,若在编码表中有此根目录,则不用在此生成
tvi.label="城市"
//生成根目录
// 目录未打开时的图片索引,此图片可在树形控件中设定
tvi.pictureindex=1
//目录打开时的图片索引
tvi.selectedpictureindex=3
tvi_root=tv_1.insertitemlast(0,tvi)
do while j<=i
//从隐含的编码数据窗口检索数据,第一行开始取区域内码,因为编码表按编码序排,所以可自动按序建层次
city_bm=dw_tree.getitemstring(j,"city_bm")
city_name=dw_tree.getitemstring(j,"city_name")
//取区域名称
k=len(city_bm)
z=int(k)//取内码的位数
choose case z
case 2
tvi.label=city_name
//把编码值赋给tvi
tvi.data=city_bm tvi.pictureindex=2
tvi.selectedpictureindex=3
//以根项目为父项目,插入第二层项目,以后凡是检索到位数是二的,均在此生成二层目录
tvi_root1=tv_1.insertitemlast(tvi_root,tvi)
case 4
//以后凡是检索到位数是四位,均生成第三层目录
tvi.label=city_name
tvi.data=city_bm
tvi.pictureindex=2
tvi.selectedpictureindex=3
tvi_next=tv_1.insertitemlast(tvi_root1,tvi)
end choose
j=j+1
loop
tv_1.setredraw(true)
currenthandle=tv_1.finditem(roottreeitem!,0)
//查找根目录下的第一项目
tv_1.eXPanditem(currenthandle) //缺省打开此项目
图1
图1是运行此段程序后形成的树形结构,该程序在Windows 98、PowerBuilder 6.5下运行通过。
发表评论
-
关于pb游标的使用
2010-08-19 09:58 8890提到游标这个词,人们 ... -
如何将COLUMN的显示风格在EDIT、DDDW、DDLB之间相互切换:
2010-08-19 08:45 1561//如何将COLUMN的显示风格在EDIT、DDDW、DDLB ... -
pb从数据窗口获得数据的方法总结
2010-08-19 08:40 1871通过PowerBuilder的数据窗 ... -
在PB中如何动态注册ACCESS的ODBC数据库连接
2010-08-18 09:28 2958在PB中如何动态注册ACCESS的ODBC数据库连接 //获 ... -
datawindow的参考手册
2010-08-18 08:24 850http://www.docin.com/p-63792034 ... -
sap powerbuilder 接口
2010-08-10 13:40 1593//Declaration String ls_app_se ... -
权限设计的探讨
2010-08-06 16:13 1326但凡涉及多用户不同权限的网络或者单机程序,都会有权限管理的问题 ... -
数据管道的用法
2010-04-22 08:58 1433我们首先看看数据管道 ... -
使用PowerBuilder同时访问多个数据库
2010-04-21 16:00 1289某个客户应用可能需要在同一窗口同时访问两个服务器上的两个不同种 ... -
优化你的PowerBuilder程序
2010-04-21 15:50 964一段程序,完成了所需要的功能固然重要,但是提高执行效率,提高代 ... -
Power Builder 中动态SQL语句的写法
2010-04-16 10:49 1545PowerBuilder是目前最流行的数据库开发工具之一。Po ... -
Datawindow每页显示固定行
2010-04-14 18:52 944使Datawindow每页显示固定行 ---- 第一步:增加 ... -
日期计算函数
2010-04-11 14:00 900Day() 功能得到日期型 ... -
最小化,最大化,正常化窗口
2010-04-01 10:46 904This statement minimizes the Da ... -
datawindow 技巧
2010-04-01 09:08 6063网上看了很多datawindow的技巧,找了很多的例子,发现网 ... -
PowerScript – 常用函数和语句 -文件操作
2010-04-01 08:51 1059文件操作在程序设计中是不可缺少的。可以用文件函数来打开一 ... -
数据安全检测
2010-03-30 18:39 855--------------of_buildselect ... -
sqlca.sqlcode的数值含义
2010-03-29 16:23 1667如果一个 SQL 语句发生了错误,那么 sqlca.sq ... -
pb函数库之日期、时间函数
2010-03-25 09:59 2659Day()功能得到日期型数据中的号数(1到31之间的整数值 ... -
MESSAGE传递的机制及实例
2010-03-23 09:19 671MESSAGE是PFC消息传递的一个全局变量,是一个通用的数据 ...
相关推荐
在PB中实现datawindow树形结构
利用PB数据管道实现数据库之间数据同步,使数据库之间同步
用PB实现SQLSERVER数据库与异种数据库的转换 PB源码
用PB实现SQLSERVER数据库与异种数据库的转换 PB源码
GetFileOpenName获得打开路径 GetFileSaveName 获得保存路径 pb实现数据库的备份、还原
实现数据库连接是使用PB进行数据库系统开发的重要内容之一,如何编程实现数据库自动连接是提高软件开发效率和影响软件设计质量的重要内容。文章结合实际工作和研发实践,对PB编程实现数据库自动连接的三种技术进行设计...
学习PB与SQL Server数据库的连接
在pb中调用word来编辑保存在数据库中的word文件
pb中判断数据库服务是否存在,sqlserver数据库服务的状态控制启动关闭,
PB实现sql数据库自动备份 数据恢复 特殊数据处理 数据上传下载
ASA数据库自动注册数据源,在PB开发实现ASA数据库自动注册数据源,值得拥有!
PB中实现升级,可以通过数据库来实现。采取自动判断版本,并能自动升级。
总结了PB11.5连接数据的四种方法: 一、使用 SNC SQL Native Client 方式连接数据库 二、使用OLE DB方式连接数据库 三、使用 ADO.NET 连接数据库 四、使用 ODBC连接数据库 个人比较推荐使用OLE DB方式和 SNC SQL ...
pb保存图片到数据库
ACCESS数据库是最简单的数据库,也是OFFICE自带的工具软件之一,所以学会用PB连接access数据库很有必要.
PB-数据库保存图片并在Datawindow中显示.rar
PB编程中对数据库的备份和还原是必须的工作,本代码主要使用PB对备份/还原SQL Server数据库的实现.
pb中通过程序自动附加附加sqlserver 数据库,并进行数据库初始化
PB9数据库存取图片,可以把图片存入sql数据库,再用pb读取到本地文件夹中
pb连接student表 实现数据查询功能新插入等技术