欢迎来到天天文库
浏览记录
ID:31778648
大小:54.58 KB
页数:5页
时间:2019-01-18
《基于数据窗口技术用户可管理界面软件实现》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、基于数据窗口技术用户可管理界面软件实现摘要:利用Powerbuilder数据窗口技术实现最终用户对应用软件界面的管理,并将用户对界面的修改结果持久存储到数据库,软件开发者无需对软件重新编译和连接,提高了软件的适应性,降低了软件维护成本。关键词:数据窗口;用户可管理界面软件;用户界面;Powerbuilder中图分类号:TP311文献标识码:A文章编号:1009-3044(2014)08-1654-03用户可管理界面软件也称为用户可配置界面软件,是指允许软件使用者,也就是软件的最终用户通过软件自带的功能对用户界面进行管理,如修改界面的外观,增加或减少界面元素等,并且将这些变化持久存储,而无需软
2、件开发商对已发布的软件进行重新编译和发布,因此用户可管理界面软件可以提高软件的适用性,降低软件的维护成本。用户可管理界面软件既是一种技术,也是一种编程思想和方法,可以在任何开发工具中加以贯彻。该文给出的是基于Powerbuilder数据窗口技术的一种实现。1总体设计思路Powerbuilder应用程序中,界面元素包括窗口、菜单、窗口中的各种控件等,数据窗口(DataWindow)控件是窗口控件的一种,数据窗口控件通过与数据窗口对象相结合,用多种风格向用户展示数据并将用户对数据操作的结果保存到数据库中,因此数据窗口构成了应用程序界面的最主要的元素。该文主要介绍数据窗口界面用户可管理的实现,窗口
3、及窗口中其它控件的实现思想与此类似。对用户界面的管理包括获取用户界面的各种界面元素、对界面元素的属性进行重新设置、持久存储修改结果、界面再次被载入时通过最后一次的修改结果重构数据窗口等主要内容。总体结构图如图1所示。2系统实现首先构造一个数据窗口类型的用户可视对象,所有的编程都是面向该用户对象的,应用程序中的数据窗口控件都继承自该对象,因此不会增加程序员的工作量。2.1数据窗口语法的读取及数据窗口的重构数据窗口的重构是指使用已经存储的数据窗口语法重新构建数据窗口,代码可以放入数据窗口控件的constractor事件中。首先检查数据库中是否保存有该数据窗口的语法,若存在,则取得该数据窗口的语法
4、,通过该语法重建该数据窗口;若用户未对该数据窗口进行过管理配置,则不存在该数据窗口语法的存储信息,这时直接使用原始数据窗口。数据窗口构建(constractor)事件代码如下:stringls_datawindowname,ls_datawindow_script,ls_errorbloblb_scriptls_datawindow_name二this.dataobjectlongll_count//检查数据库中是否已保存了该数据窗口的语法selectcount(*)into:ll_countfromdw_describe_scriptwheredatawindow_name=:ls_dat
5、awindow_nanie;ifll_count>0then//已存在该数据窗口的语法,则取得原有语法selectblobdatawindow_scripinto:lbscriptfromdw_describe_scriptwheredatawindow_name=:ls_datawindow_nanie;ls_datawindow_script=string(lb_script)//通过所取得的数据窗口语法重建数据窗口this.create(ls_datawindow_script,ls_error)iflen(ls_error)>0thenMessageBox(错误信息”,“创建数据窗口
6、错误:〜r”+ls_error)endifendif其中dw_describe_script表包括数据窗口对象名(datawindow_name)及数据窗口语法(datawindow_scrip)等列。2.2数据窗口语法的获取及保存当用户对数据窗口进行了修改后,可在数据窗口控件的destructor事件中获取修改后的数据窗口语法,并保存到数据库中。保存数据窗口语法的代码如下:string1s_datawindow_name,ls_datawindow_scriptbloblb_scriptlongll_rowsls_datawindow_name=this.dataobject//取得数据窗
7、口对象名字//取得数据窗口语法ls_datawindow_script二this.Describe(”datawindow.syntax”)lb_script二blob(ls_datawindow_script)〃检查数据库中是否已保存有该数据窗口语法selectcount(*)into:ll_rowsfromdw_describe_scriptwheredatawindow_name=:ls_datawin
此文档下载收益归作者所有