CN101241433A - 一种基于关系型数据库应用程序动态工具条的实现方法 - Google Patents
一种基于关系型数据库应用程序动态工具条的实现方法 Download PDFInfo
- Publication number
- CN101241433A CN101241433A CNA2008100143300A CN200810014330A CN101241433A CN 101241433 A CN101241433 A CN 101241433A CN A2008100143300 A CNA2008100143300 A CN A2008100143300A CN 200810014330 A CN200810014330 A CN 200810014330A CN 101241433 A CN101241433 A CN 101241433A
- Authority
- CN
- China
- Prior art keywords
- tool bar
- toolbar
- button
- tool
- bar
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- User Interface Of Digital Computer (AREA)
Abstract
本发明公开一种基于关系型数据库应用程序动态工具条的实现方法,该方法能够提高程序功能控制的易扩展性,操作快捷性,根据需求能够动态调整,把功能操作控制封装好调用接口,把动态工具条的设计,使用单独提取出来做成公用对象,通过指定工具条按钮控制的相应接口来完成对功能的控制,该方法包含工具条分组设计、工具条按钮设计、动态工具条设计、静态工具条设计、工具条状态控制及工具条菜单展示。特点是应用程序功能开发与界面设计分开处理,程序开发人员可以专心开发相应功能实现并封装为外部可以调用接口,界面设计人员根据接口设计工具条布局与外观。
Description
技术领域
本发明涉及一种计算机应用技术,具体地说是一种计算机应用程序内部操作控制方式,可以提高计算机应用程序程序操作控制的快捷性,易扩展性,动态性。特别涉及软件开发企业开发数据库类应用程序领域。
背景技术
当前应用软件的开发模式对功能的操作是在开发功能时提供菜单操作或者提供命令按钮操作,一般在程序开发阶段就设计好了。程序运行中不能动态调整。扩展性差。个性化比较差。如果需要调整只能修改源代码,进行重新编译,测试,最后提交用户,这样开发效率低下,使软件的开发成本居高不下,不容易使用维护。并且影响程序部署后的维护工作。
发明目的
为了提高程序功能控制的易扩展性,操作快捷性,根据需求能够动态调整,把功能操作控制封装好调用接口。把动态工具条的设计,使用单独提取出来做成公用对象,通过指定工具条按钮控制的相应接口来完成对功能的控制。
本发明的组件设计为一个专业工具条对象,其中包含工具条分组设计、工具条按钮设计、动态工具条设计、静态工具条设计、工具条状态控制及工具条菜单展示。
具体实现步骤包括:
1)定义应用程序工具条关系型数据库存放标准和定义工具条引用规则:
工具条存放分工具条分组与工具条按钮两部分,中间建立关联关系,工具条引用根据唯一工具条编号查找到相关分组信息,然后根据分组信息查找到相关工具条按钮定义用于生成工具条;
2)工具条定义工具功能模块:
根据关系型数据结构,设计工具条定义工具和调整工具,包括
a、工具条分组增加,删除,指定排序规则,是否使用缓存,是否换行,工具条分组格式;
b、工具条按钮实现增加,删除,上移,下移,删除,参照,下拉工具条,保存功能;
c、工具条按钮属性设置可以设置工具条按钮按钮名称,唯一id号,显示文本,触发事件,触发事件参数,tooltip信息,显示图标,非否分割条类型,是否可见,是否可用,是否显示按钮文本,是否下拉按钮,是否完全下拉按钮;
3)通过工具条展现组件功能模块实现具体的工具条展现组件,具体步骤如下;
a、根据工具条编号与工具条分组id获取工具条按钮数据集合;
b、根据数据集合形成图像各种状态资源文件并缓存到本地;
c、根据资源文件与数据集工具条信息形成工具条;
d、工具条生命周期结束时清除资源文件与缓存信息;
4)工具条展现容器组件功能模块;实现工具体展现容器,用于管理多个工具条,处理工具条显示顺序,分行显示,工具条分组隐藏显示属性,工具条按钮动态适应外部容器环境进行展示;设置工具条分组结构,提供of_updatelayout()方法控制布局和控制工具条展现容器组件的resize事件进行外部环境适应处理;
5)工具条动态调用服务对象功能模块的方法,根据唯一工具条编号动态创建工具条展现容器,动态在展现容器上生成工具条组件,还包括:
(1)根据指令销毁工具条展现容器和工具条组件释放资源;
(2)根据指令指定工具条按钮操作对象;
(3)根据指令切换工具条父对象;
(4)根据指令显示和隐藏工具条。
本发明具有的功能和有益效果
1)应用程序功能开发与界面设计分开处理。程序开发人员可以专心开发相应功能实现并封装为外部可以调用接口。界面设计人员根据接口设计工具条布局与外观。
2)工具条调用接口可以通过配置实现。无需开发人员修改代码。降低了企业的开发维护成本。
3)工具条按钮外观更加美观,使用更加方便,比菜单模式更易于使用。节约用户查找功能时间,在用户操作中能够减少用户鼠标移动距离。易于用户操作
4)支持静态数据源形成工具条。开发人员可以直接指定工具条的固定数据源形成工具条。
5)支持动态关系型数据库数据源形成工具条。可以直接传入工具条编号更具工具条服务自动形成工具条。
6)支持工具条缓冲技术,加速工具条的加载。工具条创建使用了图片,文本。并且记录了工具条按钮的位置,大小,状态等各种信息。利用缓存技术在下次打开时可以从缓存直接加载,大大提高了工具条的加载性能。
7)支持工具按钮自动隐藏,自适应外部容器大小。当工具条所在容器不足以容纳工具条显示时,工具条会自动隐藏部分工具条并以下来菜单方式显示。
8)支持工具条按钮的选中状态处理。工具条组件提供了按钮选中状态的控制方法。可以方便的设置按钮的状态
9)支持工具条按钮的隐藏状态处理。工具条组件提供了按钮隐藏状态的控制方法。可以方便的设置按钮的隐藏状态
10)支持工具条按钮的文本是否显示处理
11)支持工具条按钮的是否可用状态处理
12)支持工具下拉处理。工具条组件提供了下拉按钮的处理。下拉支持整个按钮单击下拉与只有下拉箭头区单击进行下拉两种处理模式。
13)支持工具条分组管理。工具条分组可以自由定义,方便的切换显示顺序,是否换行显示。
14)支持工具条的快捷键处理。工具条按钮支持键盘快捷键操作。可以极大提高最终用户的使用效率。快捷键可以有最终用户设置配置表进行更改,使更符合自己的操作习惯。
15)支持工具条分割条分组处理。
16)支持工具条换肤功能。工具条支持usetheme的设置。
17)支持按钮与外部功能交互性操作。工具条根据关系型数据库配置表声称后,开发人员可以根据工具条服务提供的控制方法跟工具条进行方便的交互操作,可以控制工具条按钮的状态,文本等各种属性。
18)工具条支持16×16与24×24两种显示模式。可以根据需要设置这两种显示模式。
19)工具条按钮支持潜入其它对象。工具条按钮除了显示按钮状态外,还可以潜入文本框,下拉列表,分组框等各种其它控件。这可以使工具条显示内容更加丰富。
附图说明
图1是工具条生成过程图;
图2是工具条应用结构图;
表1是工具条分组存放标准特征表:
表2是工具条按钮存放标准特征表。
具体实施方式
参照说明书附图对本发明的方法作以下详细的说明。
实施分工具条定义,工具条服务引用,应用程序控制工具条三部分。
1根据实际业务需求利用工具条设计工具进行工具条设计。包括工具条分组,工具条按钮设计。
需要处理的关系型数据表有
PPTOOLBARGROUP 工具条分组
PPTOOLBAR 工具条按钮
2在需要工具条对象调用工具条服务,传入相应工具条编号。主要步骤。
A、实例化工具条服务n_psp_toolbar
B、加载工具条iu_toolbar.of_loadtoolbar(parentobject,toolbar,xpos,ypos)
C、指定工具条调用接口对象
3应用程序中控制工具条。通过调用服务的相关公开方法实现。
实施例
工具条加载有以下2种使用方式:
加载方式1
步骤1实例化工具条服务对象
N_psp_toolbar iu_toolbar
iu_toolbar=create n_psp_toolbar
步骤2加载工具条
iu_toolbar.of_loadtoolbar(parentobject,toolbar,xpos,ypos)
加载工具条时需要指定
1工具条加载后的依存对象
2工具条编号
3工具条在依存对象的坐标
步骤3指定工具条调用接口对象
iu_toolbar.of_triggerobject(this)
加载方式2
直接把工具条组件放到需要放置工具条的窗口或者其它容器对象上。指定数据来源对象后调用工具条的初始化事件。
Uo_dwtoolabr.ids_toolbar=ds_source
Uo_dwtoolbar.init()
工具条控制方式如下:
控制工具条是否可用
public subroutine of_buttonenable(string as_buttonname,booleanab_enable)
控制工具条是否可见
public subroutine of_buttonyisible(string as_buttonname[],booleanab_visible)
设置工具条位置
public subroutine of_settoolbarposition(string as_postion)
获取工具条编号
public function string of_gettbbh()
控制工具条文本是否显示
public subroutine of_buttontextdisplay(string as_buttonname,booleanab_visible)
设置工具条编号
public subroutine of_settbbh(string as_tbbh)
更改工具条显示文本
public subroutine of_buttontextset(string as_buttonname,stringas_text)
数组方式更改工具条显示文本
public subroutine of_buttontextset(string as_buttonname[],stringas_text[])
数组方式设置按钮是否可用
public subrout ine of_buttonenable(string as_buttonname[],booleanab_enable)
数组方式设置按钮文本是否显示
public subroutine of_buttontextdisplay(string as_buttonname[],booleanab_visible)
拒绝按钮在resize时进行重画
public subroutine of_buttonsuspenddraw()]
允许按钮在resize时进行重画
public subroutine of_buttonresumedraw()
控制按钮是否选中
public subroutine of_buttoncheck(string as_buttonname,booleanab_enable)
数组方式控制按钮是否选中
public subroutine of_buttoncheck(string as_buttonname[],booleanab_enable)
返回按钮选中状态
public function boolean of_isbuttoncheck(string as_buttonname)
返回按钮可用状态
public function boolean of_isbuttonenabled(string as_buttonname)
返回按钮可见状态
public function boolean of_isbuttonvisible(string as_buttonname)
获得按钮名字
public function string of_getbuttonname(readonly string as_buttonid)
获得按钮图像名字
public function string of_getbuttonimagename(readonly stringas_buttonid)
判断是否是热键按钮
public function boolean of_isbuttonhot(readonly string as_buttonid,readonly u_dwtoolbar auo_toolbar)
判断是否是正常状态按钮
public function boolean of_isbuttonnormal(readonly string as_buttonid,readonly u_dwtoolbar auo_toolbar)
判断按钮是否被按下
public funct ion boolean of_isbuttonpressed(readonly string as_buttonid,readonly u_dwtoolbar auo_toolbar,readonly str_dwtoolbarbuttonastr_buttons[])
工具条分组控制方式如下:
增加多个工具条
public subrout ine of_addtoolbars(readonly u_dwtoolbar adw_toolbars[])
增加单个工具条
public subroutine of_addtoolbar(readonly u_dwtoolbar adw_toolbar)
设置功具条布局
public subroutine of_updatelayout()
设置工具条显示属性
public subroutine of_toolbarshow(readonly integer ai_index,readonlyboolean ab_show)
删除单个工具条
public subroutine of_removetoolbar(readonly u_dwtoolbar adw_toolbar)
删除最后一个工具条
public subroutine of_removelasttoolbar(readonly boolean ab_hide)
控制工具条适应外部环境
public function integer of_settoolbarend(integer ai_parentwidth)
本发明正应用于企业管理软件的开发,其架构如附图3所示。开发人员通过把开发的功能封装后,界面设计人员根据设计文档直接生成工具条关系型数据。利用工具条服务组件直接就可以动态生成工具条。就可以展示其美观大方的界面。快捷的开发过程。
最终用户,实施人员也可以直接利用工具条设计工具设计自己需要的工具条挂接到相应功能上。大大提高了应用敏捷性,更好的使用客户不断变化的需求。
基于组件的良好的开放性,独立性,可实现性。该发明不仅在浪潮内部进行推广使用,在社会上也具有很好的推广使用价值。
表1:
别名 | 列名 | 数据类型 | 空值 | 缺省 | 规则 | 注释 |
工具条编号 | PPTOOLBARGROUP_TBBH | Varchar(10) | Not null | |||
分组id号 | PPTOOLBARGROUP_ID | VARchar(10) | Not null | |||
分组名称 | PPTOOLBARGROUP_NAME | VarChar(255) | Not nul | |||
分组排序号 | PPTOOLBARGROUP_SORT | Interger | Not null | 确定显示顺序 | ||
是否启用新的一行显示 | PPTOOLBARGROUP_NEWLINE | Integer | Not null | 0 | 0不启用新行1启用新行 | |
工具条分组图标格式 | PPTOOLBARGROUP_IMAGELIST | VARchar(255) | Not null | 0 | ||
工具条是否进行缓存处理 | PPTOOLBARGROUP_CACHETOOLBARDEF | Integer | Not null | 0 | 0不进行缓存1缓存处理 | |
工具条是否显示控制标示 | PPTOOLBARGROUP_GRIPPER | Integer | Not null | 0 | 0不显示1显示 | |
表2
别名 | 列名 | 数据类型 | 空值 | 缺省 | 规则 | 注释 |
工具条编号 | PPTOOLBAR_TBBH | Varchar(10) | Not null | |||
工具条按钮id | PPTOOLBAR_ID | Integer | Not null | |||
工具条按钮父项id | PPTOOLBAR_PARENTID | Integer | Not null | |||
工具条按钮名称 | PPTOOLBAR_NAME | Varchar(255) | Not null | |||
工具条按钮文本 | PPTOOLBAR_TEXT | Varchar(255) | Null | |||
工具条按钮显示顺序 | PPTOOLBAR_SORT_ORDER | Integer | Not null | |||
工具条按钮接口 | PPTOOLBAR_EVENT | Varchar(255) | Null | |||
接口参数 | PPTOOLBAR_EVENTEXPRESS | Varchar(255) | null | |||
工具条按钮扩展 | PPTOOLBAR_EXTEND | Varchar(255) | null | |||
工具条按钮扩展参数 | PPTOOLBAR_EXTENDEXPRESS | Varchar(255) | null | |||
工具条按钮是否可见 | PPTOOLBAR_VISIBLE | Integer | Default 0 | 0 | 0按钮不可见1按钮可见 | |
工具条分组号 | PPTOOLBAR_TOOLBARGROUP | VarChar(20) | Not Null | |||
工具条按钮tooltip提示信息 | PPTOOLBAR_TOOLTIP | varChar(254) | Null | 。 | ||
工具条按钮显示图形 | PPTOOLBAR_IMAGE | varChar(254) | ||||
是否分割符 | PPTOOLBAR_DIVIDER | Char(1) | 0普通按钮1按钮分割条 | |||
是否可用 | PPTOOLBAR_DISABLED | BIT | Defaul 0 | 0按钮不可用1按钮可用 | ||
是否有下拉类型按钮 | PPTOOLBAR_DROPDOWN | Char(2) | Null | 0正常按钮1下拉按钮 | ||
是否整个按钮可以下拉 | PPTOOLBAR_DROPWHOLE | Char(1) | Null | 0 | 0只有箭头区可以下拉1整个区域可以下拉 | |
Tag数据 | PPTOOLBAR_TAGDATA | BIT | Not null | 0 | ||
工具条按钮嵌入的其他对象名 | PPTOOLBAR_DWOBJECT | BIT | Not null | 0 | 工具条可以嵌入其他对象 |
Claims (1)
1、一种基于关系型数据库应用程序动态工具条的实现方法,其特征在于,实现步骤包括:
1)定义应用程序工具条关系型数据库存放标准和定义工具条引用规则:
工具条存放分工具条分组与工具条按钮两部分,中间建立关联关系,工具条引用根据唯一工具条编号查找到相关分组信息,然后根据分组信息查找到相关工具条按钮定义用于生成工具条;
2)工具条定义工具功能模块:
根据关系型数据结构,设计工具条定义工具和调整工具,包括
a、工具条分组增加,删除,指定排序规则,是否使用缓存,是否换行,工具条分组格式;
b、工具条按钮实现增加,删除,上移,下移,删除,参照,下拉工具条,保存功能;
c、工具条按钮属性设置可以设置工具条按钮按钮名称,唯一id号,显示文本,触发事件,触发事件参数,tooltip信息,显示图标,非否分割条类型,是否可见,是否可用,是否显示按钮文本,是否下拉按钮,是否完全下拉按钮;
3)通过工具条展现组件功能模块实现具体的工具条展现组件,具体步骤如下;
a、根据工具条编号与工具条分组id获取工具条按钮数据集合;
b、根据数据集合形成图像各种状态资源文件并缓存到本地;
c、根据资源文件与数据集工具条信息形成工具条;
d、工具条生命周期结束时清除资源文件与缓存信息;
4)工具条展现容器组件功能模块;实现工具体展现容器,用于管理多个工具条,处理工具条显示顺序,分行显示,工具条分组隐藏显示属性,工具条按钮动态适应外部容器环境进行展示;设置工具条分组结构,提供of_updatelayout()方法控制布局和控制工具条展现容器组件的resize事件进行外部环境适应处理;
5)工具条动态调用服务对象功能模块的方法,根据唯一工具条编号动态创建工具条展现容器,动态在展现容器上生成工具条组件,还包括:
(1)根据指令销毁工具条展现容器和工具条组件释放资源;
(2)根据指令指定工具条按钮操作对象;
(3)根据指令切换工具条父对象;
(4)根据指令显示和隐藏工具条。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008100143300A CN101241433A (zh) | 2008-03-04 | 2008-03-04 | 一种基于关系型数据库应用程序动态工具条的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008100143300A CN101241433A (zh) | 2008-03-04 | 2008-03-04 | 一种基于关系型数据库应用程序动态工具条的实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101241433A true CN101241433A (zh) | 2008-08-13 |
Family
ID=39932986
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008100143300A Pending CN101241433A (zh) | 2008-03-04 | 2008-03-04 | 一种基于关系型数据库应用程序动态工具条的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101241433A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010145393A1 (zh) * | 2009-06-15 | 2010-12-23 | 中兴通讯股份有限公司 | 一种实现动态调整工具条按钮显示的方法和系统 |
CN101408843B (zh) * | 2008-11-18 | 2012-05-09 | 广东威创视讯科技股份有限公司 | 一种生成程序菜单的方法及其装置 |
CN101727315B (zh) * | 2008-10-14 | 2013-11-06 | 上海科泰世纪科技有限公司 | 实现按钮类面板控件操作显示的方法 |
WO2013170525A1 (zh) * | 2012-05-16 | 2013-11-21 | Liu Yong | 一种以逻辑流程图示方式展示或绘制计算机应用程序组织逻辑流程关系的方法及装置 |
CN105260191A (zh) * | 2015-11-03 | 2016-01-20 | 中国电子科技集团公司第四十一研究所 | 一种基于配置的测试程序与操作员界面数据交互方法 |
CN106020832A (zh) * | 2016-05-25 | 2016-10-12 | 大唐网络有限公司 | 应用程序的界面信息的生成方法和装置 |
-
2008
- 2008-03-04 CN CNA2008100143300A patent/CN101241433A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727315B (zh) * | 2008-10-14 | 2013-11-06 | 上海科泰世纪科技有限公司 | 实现按钮类面板控件操作显示的方法 |
CN101408843B (zh) * | 2008-11-18 | 2012-05-09 | 广东威创视讯科技股份有限公司 | 一种生成程序菜单的方法及其装置 |
WO2010145393A1 (zh) * | 2009-06-15 | 2010-12-23 | 中兴通讯股份有限公司 | 一种实现动态调整工具条按钮显示的方法和系统 |
WO2013170525A1 (zh) * | 2012-05-16 | 2013-11-21 | Liu Yong | 一种以逻辑流程图示方式展示或绘制计算机应用程序组织逻辑流程关系的方法及装置 |
CN105260191A (zh) * | 2015-11-03 | 2016-01-20 | 中国电子科技集团公司第四十一研究所 | 一种基于配置的测试程序与操作员界面数据交互方法 |
CN105260191B (zh) * | 2015-11-03 | 2018-08-14 | 中国电子科技集团公司第四十一研究所 | 一种基于配置的测试程序与操作员界面数据交互方法 |
CN106020832A (zh) * | 2016-05-25 | 2016-10-12 | 大唐网络有限公司 | 应用程序的界面信息的生成方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6097391A (en) | Method and apparatus for graphically manipulating objects | |
US7337409B2 (en) | Customizable drag and drop for industrial software applications | |
US5760770A (en) | System and method for defining a view to display data | |
US5668964A (en) | Graphical user interface for creating a new notebook with a dragged page | |
EP1866730B1 (en) | Method and apparatus for application window grouping and management | |
JP3565850B2 (ja) | オブジェクト指向通知フレームワークシステム | |
CN101226486B (zh) | 利用计算机实现的剪贴板捕获信息的方法和设备 | |
CN103229141B (zh) | 管理用户界面中的工作空间 | |
US5974372A (en) | Graphical user interface (GUI) language translator | |
US5912666A (en) | Object-oriented global cursor tool | |
EP3203354B1 (en) | Selective enabling of multi-input controls | |
CN101241433A (zh) | 一种基于关系型数据库应用程序动态工具条的实现方法 | |
US20060136833A1 (en) | Apparatus and method for chaining objects in a pointer drag path | |
US20120212424A1 (en) | Method and system for assigning the position of a touchpad device | |
JPH08505252A (ja) | オブジェクト指向アプリケーション・インターフェイス | |
US9448705B2 (en) | Configuring graphical displays | |
JPH08505719A (ja) | メニュー・ステート・システム | |
JPH08505720A (ja) | コマンド・システム | |
EP0672277A1 (en) | A method and system for in-place interaction with embedded objects | |
CN101377738B (zh) | 实现电子文档翻页的方法 | |
CN101702126B (zh) | 一种图形界面编辑方法及装置 | |
CN104205103B (zh) | 用于将cad系统耦合到数据库和规划系统用以在两个系统之间交换数据的方法 | |
US20020154166A1 (en) | Graphical user interface check-list button control and method | |
US20040243919A1 (en) | Synchronized processing of views and drawing tools in a multiple document interface application | |
CN102023805B (zh) | 一种软件界面文本信息的辅助浏览方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20080813 |