转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件使用 >> 常用软件 >> 正文
PB数据窗口中按钮的封装         

PB数据窗口中按钮的封装

作者:闵涛 文章来源:闵涛的学习笔记 点击数:921 更新时间:2009/4/24 21:43:16
P>> 众所周知在数据库的操作中,对数据表记录的添加、删除、保存等操作是最基本和最常用的,可以说这些操作是数据表的标准操作。在很多数据库的开发工具中均提供有上述操作的按钮对象,但在 PowerBuilder 6.0以前的版本中并没有提供上述按钮对象,一种常见的解决方法是自己做一个类似于工具条的用户对象,将上述按钮加进该对象中,但在数据窗口需要使用上述操作时还需要编程与该用户对象通讯,以调用其中的功能。

 > 在新推出的PowerBuilder 6.0 以及后续版本中,可以直接在数据窗口对象中放置按钮对象,而且开发人员即可以给这些按钮制定缺省的操作,也可以自己定义按钮的功能。在可以指定的缺省操作中就包含了上面提到的所有数据表的标准操作,这样在数据窗口需要相应的按钮时,只需要加入按钮对象然后指定其功能就行了。

 > 上述做法对于少量的数据窗口而言是合适的,但如果要对大量的数据窗口都采用这种方法添加按钮,其工作量是非常可观的,而且还不能保证界面的一致性。实际上我们可以利用PowerBuilder面向对象的编程技术,实现一个包含标准操作按钮的数据窗口对象,这样在需要用到标准操作的时候,只需要从该对象继承即可。下面具体给出该对象的实现方法:

 > 由于在用户对象画板中不能直接往数据窗口中添加按钮,因此,需要用改变数据窗口语法串的方法来添加按钮,我们用一个专用的函数来实现这一功能。首先,建立一个新的全局函数,取名为f_AddDWButton,它带有一个字符串参数as_oldsyntax,其返回值为一字符串,下面是其实现代码:

//功能:修改数据窗口语法串,为其增加常用功能按钮
//入口参数:as_oldsyntax 原有数据窗口语法串
//返回值: ls_NewSyntax 修改后的语法串
//应用条件:数据窗口中有Footer区, 高度为88的区域是按钮带区

String ls_AddString, ls_NewSyntax

ls_NewSyntax = as_oldsyntax

//添加按钮语法串
//检索按钮
ls_AddString = button(name=cb_retrieve band=footer  + &
 font.charset="0" font.face="Arial"  + &
 font.family="2" font.height="-9"
 font.pitch="2" font.weight="400"  + &
 background.mode="2"
 background.color="12639424"  +&
 filename="" action="2" 
 vtextalign="0" htextalign="0"  +&
 x="14" y="4" height="80"
 width="292" color="8388608"  +&
 text="检索" defaultpicture=
 no suppresseventprocessing=no )~r~n
ls_NewSyntax = ls_NewSyntax + ls_Ad   ring

//首页按钮
ls_AddString = button(name=cb_top band=footer  + &
 font.charset="0" font.face="Arial"
 font.family="2"  + &
 font.height="-9" font.pitch="2"
 font.weight="400"  + &
 background.mode="2"
 background.color="12639424"  + &
 filename="" action="6" 
 vtextalign="0" htextalign="0"  + &
 x="333" y="4" height="80"
 width="146" color="8388608"  + &
 text="首页" defaultpicture=
 no suppresseventprocessing=no )~r~n
ls_NewSyntax = ls_NewSyntax + ls_AddString

//上页按钮
ls_AddString = button(name=cb_prior band=footer  + &
 font.charset="0" font.face="Arial" 
 font.family="2"  + &
 font.height="-9" font.pitch="2"
 font.weight="400"  + &
 background.mode="2" 
 background.color="12639424"  + &
 filename="" action="5" 
 vtextalign="0" htextalign="0"  + &
 x="484" y="4" height="80"
 width="146" color="8388608"  + &
 text="上页" defaultpicture=
 no suppresseventprocessing=no )~r~n
ls_NewSyntax = ls_NewSyntax + ls_AddString
……
//添加按钮
ls_AddString = button(name=cb_append band=footer  + &
 font.charset="0" font.face="Arial" 
 font.family="2"  + &
 font.height="-9" font.pitch="2"
 font.weight="400"  + &
 background.mode="2" 
 background.color="12639424"  + &
 filename="" action="11" 
 vtextalign="0" htextalign="0"  + &
 x="964" y="4" height="80" 
 width="146" color="8388608"  + &
 text="添加" defaultpicture=
 no suppresseventprocessing=no )~r~n
ls_NewSyntax = ls_NewSyntax + ls_AddString
//保存按钮
ls_AddString = button(name=cb_update band=footer  + &
 font.charset="0" font.face="Arial"
 font.family="2"  + &
 font.height="-9" font.pitch="2"
 font.weight="400"  + &
 background.mode="2"
 background.color="12639424"  + &
 filename="" action="13" 
 vtextalign="0" htextalign="0"  + &
 x="1266" y="4" height="80"
 width="146" color="8388608"  + &
 text="保存" defaultpicture=
 no suppresseventprocessing=no )~r~n
ls_NewSyntax = ls_NewSyntax + ls_AddString

ls_NewSyntax = ls_NewSyntax + ls_AddString 
return ls_newsyntax

 > 有了上述函数之后,第二步就可以做数据窗口了:建立一个标准的可视用户对象,该对象类型为datawindow,取名为:u_dw_toolbutton,然后在该用户对象的constructor事件中添加如下代码:

//建立数据窗口按钮
String ls_Syntax
//获取设计时的数据窗口语法串
ls_Syntax = String( this.object.DataWindow.Syntax )
//添加按钮语法串
ls_Syntax = f_AddDWButton( ls_Syntax )
if this.Create( ls_Syntax ) $#@60; $#@62; 1 then
 Error.object = this.ClassName()
 Error.ObjectEvent = "Create DataWindow from Syntax"
 Error.Line = 6
 Error.Number = SQLCA.SQLDBCode
 Error.text = SQLCA.SQLErrText
 //Display error
 Open( w_error )
End If

 > 将上述工作保存后,就万事大吉了,以后只需要从u_dw_toolbutton对象继承就可以拥有标准操作按钮了。(注意:在数据窗口中要有Footer区,且该区高度要大于80PBU)

 > 从上面的例子中我们可以看到,PowerBuider不仅有许多封装好的高级控件,同时还具有强大的程序语言设计能力,在数据库的开发工具中,能将两者结合得如此完美的,尚不多见。


[办公软件]在sybase中插入图片、PDF、文本文件  [办公软件]安装Sybase ASE
[办公软件]linux指令大全(完整篇)  [办公软件]Linux新手入门常用命令大全
[办公软件]在RedHat Linux 9里安装gaim0.80  [办公软件]浅谈Linux 下Java 1.5 汉字方块问题解决方法
[办公软件]Linux程序员必读:中文化与GB18030标准  [办公软件]linux指令大全
[办公软件]制作Linux启动盘的四种方法  [办公软件]Linux文件系统的反删除方法
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · 办公软件  · 系统软件
    · 常用软件  · 聊天工具
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台