PB6.5怎么用

PB6.5怎么用,第1张

使用方法:
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事件代码 wanqi 1999628
integer li_rowcount,li_row
string 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_two
dw_3settransobject(sqlca)//dw_3
为隐含的数据窗口,存有生成树的数据
li_rowcount=dw_3retrieve()//行数
dw_3setsort("lb,pm")
dw_3sort()
//生成树视图的各级树视图项
for li_row=1 to li_rowcount
li_current_dn=dw_3objectlb[li_row]
//DW_3对象中"LB类别"
li_current_ei=dw_3objectpm[li_row]
//DW_3对象中"PM品名"
if isnull (li_current_ei) then
li_current_ei=""
end if

if li_current_dn$#@60; $#@62;li_last_dn then
//IF LB不与一级视图项重复
//设置一级树视图项
itvi_level_onelabel=dw_3objectLB[li_row]
//视图项的显示信息
itvi_level_onelevel=1 //级别
itvi_level_onedata=li_current_dn
//视图项的内部信息
itvi_level_onepictureindex=1
//没选中时所用的图标序号
itvi_level_oneselectedpictureindex=3
//选中时使用的图标序号
itvi_level_onechildren=(li_current_ei$#@60; $#@62; )
//树视图是否有下一级
ii_h_l_one=thisinsertitemlast(0,itvi_level_one)
//将项加入到一级树的最后一项
end if
//设置二级树视图项
if li_current_dn$#@60; $#@62;li_last_ei then
if li_current_ei$#@60;$#@62; then
itvi_level_twolabel=dw_3objectpm[li_row]
itvi_level_twolevel=2
itvi_level_twodata=li_current_dn
itvi_level_twopictureindex=2
itvi_level_twoselectedpictureindex=4
itvi_level_twodata=li_current_ei
itvi_level_twochildren=false
ii_h_l_two=thisinsertitemlast
(ii_h_l_one,itvi_level_two)
//将项加入到二级树的最后一项
end if
end if
li_last_dn=li_current_dn//设比较项
li_last_ei=li_current_ei
next

如果打不开,那你就把PBW文件和PBT文件删除,然后重新建一个PBW文件,然后再双击你的PBL中的应用,就会提示要创建一个PBT文件,你就创建它。创建好以后,在PBT的属性中增加需要关联的多个PBL,就可以完整的打开你需要打开的源码程序了!

调用了function:of_check_registerno(ls_serialno,ls_registerno)进行注册码的判断。
这个of_check_registerno有两个string类型的参数,你得查看这个of_check_registerno里面的语句才能知道注册码的校验算法。这一段代码里面都是调用function,没有具体算法。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13358853.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-21
下一篇 2023-07-21

发表评论

登录后才能评论

评论列表(0条)

保存