文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院程序开发PowerBuilderPowerBuilder应用开发系列讲座(30)
精品推荐
特别推荐
·PowerBuilder实用技巧八则
热点TOP10
·PowerBuilder简介
·在PB中用OLE存取blob类型数据
·在PB中如何实现数据模糊查询
·使用XML技术实现OWC对数据库的展示
·PowerBuilder数据录入同步显示
·导出数据到Excel概述
·PB动态报表格式自由定义的实现
·PB程序中在普通激光打印机上实现条码打印
·PB应用ODBC访问不同数据库
·利用PB数据窗口特征制作进度条
·PowerBuilder应用开发系列讲座(6)
·PB8.0应用程序编译发布技术研究
·PB代码优化
·在PB中用Flash制作Splash封面
·PowerBuilder应用开发系列讲座(39)
·在pb中用语音读金额
·PowerBuilder的数据窗口
·Direct3D9初级教程
·关于PB播放AVI文件的补充
·在PowerBulider中读写IC卡

PowerBuilder应用开发系列讲座(30)

日期:2007年5月2日 作者: 查看:[大字体 中字体 小字体]


在数据窗口中使用滚动条


  在数据窗口中,我们总不可避免要使用到滚动条。在缺省状态下,当用户点击垂直滚动条时,当前的数据窗口滚动显示一页或一行新内容,可是有时我们希望在用户点击滚动条时,系统有另外的响应。在数据窗口的事件中,全局变量message中wordparm属性指示了是何种滚动类型导致了这个事件的发生。

WordParm的值垂直滚动类型
0行向上滚动
1行向下滚动
2页向上滚动
3页向下滚动
4竖直移动

  通过判断这些滚动类型,我们就可以改变它的缺省动作,工对滚动方式进行控制。例如在某些情况下,我们希望用点击滚动条时,记录能够一行一行的滚动。下列的代码可以tabular、freeform和grid表现形式的数据窗口中,实现这样的功。在数据窗口的OTHER事件中:

integerli_wordparmli_wordparm=Message.WodParmifMessage.
Number=277thenifli_wordparm=1orli_wordparm =3thn//捕捉行向下滚动和页向下滚动的事件,使屏幕向下滚动一条记录,并将数据窗口
//的聚焦向下移动一行dw_1.ScrollToRow(dw_1.GetRow()+1)elseifli_wordpar
m=0orli_wordparm=2then
//捕捉行向下滚动和页向下滚动的事件,使屏幕向下
滚动一条记录,并将数据窗口
//的聚焦向上移动一行dw_1.ScrollToRow(dw_1.GetRow
()-1)elseRETURNendif
//避免缺省的数据窗口的滚屏行为Message.Processed=
TRUEendif  

  在开发过程中,我们可能会大量的使用Master/Detal形式的数据窗口来表现数据。所谓Master/Detail风格就是在一窗口中有两个数据窗口组成主表和细目表,分别显示数据中的两张相关联的表,这一格式可用于展现给定事物的两数据的关系。
  使用Master/Detail形式的一种可能性是使两个数据窗口显示同一套数据,其中Master的数据用于浏览,不能修改,而Detail的数据窗口显示的是与Master窗口的相关的更为详细的信息,是可以修改的。这时您希望用户只能够滚动Master窗口,同时使Detail窗口显示响应的信息,而不希望用户能够使用滚动条来滚动Detail数据窗口,翻看无关的信息。
  下面的代码就是用于避免用户滚动Detail数据窗口,翻看到其它行的? 。
  事件名称:Keypressed
  描述:Keypressed为一个用户自定义事件,在数据窗口控件的Script画笔中定义,它的事件编号为pbm_dwnkey,当用户有按键操作时触发。


Script:
IF(KeyDown(keytab!))OR(KeyDown(keyEnter!))OR
(KeyDown(keyDownArrow!))&
OR(KeyDown(KeyUpArrow!))OR(KeyDown(KeyPageDown!))
OR&
KeyDown(KeyPageUp!))&
THEN
This.SetRedraw(False)
//当用户按下上述键时,系统将不与响应,避免数据窗口
自动进行相应的操作
ENDIF


  在上面的的事件中,我们使用了SetReDraw()函数,这将阻塞用户对数据窗口诸如更新等操作,我们必须在下列事件中取消用户对数据窗口进行正常操作的阻塞。
  事件名称:RowFocusChanged

Script:
This.ScrollToRow(myrow)
//myrow是一个实例变量,它的值是这个数据窗口当前应当显示的记录数
This.SetRedraw(True)
//允许对数据窗口进行操作
事件名称:ItemFocusChanged
Script:
This.SetRedraw(True)
//允许用户在同一条记录内进行水平滚动

  在有些情况下,我们会使Master和Detail两个数据窗口显示相同的内容,我们可以使用ShareData()函数令Detail数据窗口共享Master窗口的数据,如何在使用滚动条滚动其中的一个窗口时,另一个窗口能够同步进行滚动呢?如果您没有对Master数据窗口使用RetrieveasNeeded选项,这一个功能的实现是十分简单的。
  假设Master数据窗口名称为dw_1,对其SCROLLVERTICAL事件编程如下:

integervmax_1,vpos_1,vmax_2,vpos_2
stringr_code
decimalvmax_1_percent
vmax_1=integer(dw_1.describe(datawindow.verticalscrollmaximum)) vpos_1=integer(dw_1.describe(datawindow.verticalscrollposition)) vmax_2=integer(dw_2.describe(datawindow.verticalscrollmaximum)) vmax_1_percent=vpos_1/vmax_1
vpos_2=vmax_1_percent*vmax_2
r_code=dw_2.modify(datawindow.verticalscrollposition=+string(vpos_2)) //检验是否修改成功
ifr_codethen
beep(6)
mle_1.text=dw_1scroll=+r_code+vpos_2= +string(vpos_2)
//在scrollvertical事件中无法使用MessageBox弹出错误信息框
endif
Detail数据窗口名称[qu1]为dw_2,对其SCROLLVERTICAL事件编程如下:
integervmax_1,vpos_1,vmax_2,vpos_2
stringr_code
decimalvmax_2_percent
vmax_2=integer(dw_2.describe(datawindow.verticalscrollmaximum)) vpos_2=integer(dw_2.describe(datawindow.verticalscrollposition)) vmax_1=integer(dw_1.describe(datawindow.verticalscrollmaximum)) vmax_2_percent=vpos_2/vmax_2
vpos_1=vmax_2_percent*vmax_1
r_code=dw_1.modify(datawindow.verticalscrollposition=+string(vpos_1)) //检验是否修改成功
ifr_codethen
beep(6)
mle_1.text=dw_1mod+r_code
endif

  谈到这里,我们又要引入一个新话题,这就是在某些事件中避免使用MessageBox的问题:当用户进行的错误操作时,我们应当在屏幕上弹出一个提示框,警告发生的错误或提示将要发生的事情,以引起用户的注意;有些程序员也喜欢在调试程序时,使用MessageBox函数显示当前的系统状态。可是在PowerBuilder的某些改变控件聚焦的事件中,系统是无法显示信息框的,我们必须使用response类型的窗口来取代信息框:在这些事件中使用POST方式调用一个新事件,在新事件中打开这个response窗口。
  某些窗口控件(包括按钮在内)是由于聚焦的改变而捕获鼠标的,在这些控件的某些事件中应避免使用MessageBox函数的。这些事件包括这样几类:
  1.事件名称:


[1] [2] 下一页 




上一篇:PowerBuilder应用开发系列讲座(18)

下一篇:PowerBuilder应用开发系列讲座(7)

PowerBuilder应用开发系列讲座(30) 相关文章:
·EZ-USB 68013A开发指南
·QQ空间篮球大图模块:科比系列【2】
·Visual Studio 2005集成开发环境图解
·华为3com系列产品配置手册汇总
·每周电脑应用技巧荟萃
·英文字体创意设计及应用作品欣赏
·Windows XP 的超级应用技巧28例
·Windows XP最新应用技巧六则
·QQ空间篮球大图模块:科比系列【3】
·windows 2003服务器配置VPN实现各种网络环境VSS协同开发
PowerBuilder应用开发系列讲座(30) 相关软件:
·婚育视频讲座-新婚ABC
·孙鑫VC++从入门到精通开发详解视频教程FLASH版
·婚育视频讲座-避孕套趣话
·SQL Server 2000 基础系列课程视频
·婚育视频讲座-爱的奇迹
·中国少年儿童智力开发百科全书(上中下)高清PDF全彩图书
·自我按摩系列
·鬼古女悬疑系列
·罗伯特清崎 富爸爸穷爸爸讲座
·余世维《成功经理人讲座》完整电子书

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.net
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.net All Rights Reserved. 鄂ICP备05000083号Powered by:viphot