- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Powerbuilder通用排序模块设计与实现
基于Powerbuilder通用排序模块设计与实现
摘 要: 利用PowerBuilder的数据窗口,设计一个数据管理信息系统通用的排序模块,发挥对数据窗口任意字段组合的排序功能。利用此排序模块,可极大地提高管理信息系统的编程效率,具有很强的实用性。
关键词: Powerbuilder 数据窗口 字段 排序 通用模块设计
引言
在利用Powerbuilder开发的数据库信息管理系统中,用户常常有按某种顺序查看数据的要求,而这种要求是会动态改变的,这就要求开发者不能将查询出来的数据以固定的顺序展示给用户 ,而必须提供按用户要求对数据进行灵活多变的排序功能。因此,为了节约开发时间,提高开发效率,设计一种通用的排序程序模块显得非常有必要。
把要排序的数据窗口作为参数传递给此通用排序模块,然后获取列名,通过访问数据窗口的属性,组合成排序字符串,即可实现排序功能。
一、创建一个Tabular类型的数据窗口对象,选择Exteral数据源,取名为:d_columns_dddw。
该数据窗口作为下拉子数据窗口用于存储要排序的表的列号和字段名。
表1 d_columns_dddw的各字段
二、创建一个Tabular类型的数据窗口对象,选择Exteral数据源,取名为d_sort。
该数据窗口对象的外观如图1所示。该数据窗口对象用于输入要排序的表的字段名、优先级和升降序,各字段如表2所示。
表2 d_sort的各字段
图1 d_sort的设计效果
(一)grade字段属性。Style Type:Edit。
(二)column_number字段属性。Style Type:DropDownDW;DataWindow:d_columnsdddw;Display Column:column_name;Data Column:column_number。
(三)sort_order字段属性。Style Type:CheckBox;Text:升序;Data Value for on:A;Data Value for off:D。
三、创建一个UserObject用户对象数据窗口uo_dw_sort。
Standard Visual;Types:datawindow;DataObject:d_sort,如图2所示:
图2 用户对象数据窗口uo_dw_sort
四、创建一个response类型的窗口w_sort),添加相关控件。
具体如表3和图3所示,功能是设置组合排序的条件,得出排序结果。数据窗口控件dw_sort的创建方法是:单击工具栏上的UserObject图标,在弹出式窗口中选择已经创建好的uo_dw_sort对象。
表3 窗口w_sort上的控件
图3 排序条件设置窗口w_sort
(一)声明窗口w_sort的实例变量
Private:DataWindow idw_ToSortOn //用来接收传递过来的要排序的数据窗口对象
(二)数据窗口dw_sort中的事件函数
通过数据窗口dw_sort的用户自定义事件来实现对排序条件的组合设置,主要有增加、插入、删除记录和高亮显示记录行等功能。
1.constructor事件。
This.SetRowFocusIndicator(Hand!) //记录行前面设置为手形
2.用户自定义事件。
(1)ue_addrow()。功能:在记录末增加一行过滤条件记录,并调用wf_setgrade()设置优先级。脚本略。
(2)ue_insertrow()。功能:在当前行之后插入一行记录,并调用wf_setgrade()设置优先级。脚本略。
(3)ue_deleterow()。功能:删除一行过滤条件,并调用wf_setgrade()设置优先级。脚本略。
(4)ue_dddw_mousemove()。功能:捕捉下拉数据窗口事件,高亮显示鼠标经过的记录行。脚本略。
(三)窗口w_ sort中的事件函数
1.wf_strip()。功能:用空格替换特殊字符,去掉非法字符。
//Function Name:wf_strip;Access:private;Return Type:None
//Argument Name:as_arg;Argument Type:string; Pass By:reference
Integer li_length,li_pos
li_length=Len(as_arg)
Forli_pos=1 To li_length
Choose Case Mid(as_a
文档评论(0)