一种数据库应用系统开发平台及开发方法

文档序号:6399887阅读:411来源:国知局

专利名称::一种数据库应用系统开发平台及开发方法
技术领域
:本发明涉及一种基于功能设计的数据库应用系统开发平台。
背景技术
:为了保证软件质量,提高软件可靠性、可重用性和可维护性,在进行软件开发时,采用了面向对象、构件等技术;但随着软件系统规模的不断加大及社会运节奏的加快,伴随着企业机构重组、业务重组、规模变化等必然产生的新的用户需求,使得需求变更越来越频繁,给软件系统的开发和维护带来了一系列问题,引发了所谓的‘软件危机’。为此,创建新的软件开发方法,解决‘软件危机’,已成为软件工作者的众望所归。对数据库应用系统而言,解决‘软件危机’的理想方法是:开发一个通用的数据库应用系统开发平台,第一,开发任一应用系统时,只作用户需求分析、系统功能设计、数据表设计、用户界面设计,不作或少作程序代码设计;第二,将应用系统的功能菜单名、菜单应实现的功能、菜单使用的数据表名或数据文件名、数据处理方法、数据流程规定,即用户的业务模型全部参数化后填写于一些控制表中,即可生成应用系统;第三,应用系统运行时,自动读取这些控制表参数,并动态生成程序执行代码,完成系统功能;第四,用户的业务模型改变时,只需增加、删除控制表的功能菜单,或修改菜单使用的数据表、菜单窗体和控制表参数,而无需修改代码即可完成系统维护。经过六年努力,针对局域网网络环境、Windows操作系统和Oracle数据库,采用数据库服务器、应用服务器、客户端工作站三层结构模式的“基于功能设计的数据库应用系统开发平台”开发成功,该平台基本上达到了人们对数据库应用系统开发工具的要求。
发明内容本发明的目的是提供一种基于功能设计的数据库应用系统开发平台,使用开发平台开发数据库应用系统时只需进行系统功能设计,而无需再编写程序代码或只对某些特殊数据处理功能编写代码,即可生成满足功能要求的应用系统。开发平台包含系统控制表、菜单构件包和代码生成器,所述菜单构件包是可重用的菜单分类执行模块;所述系统控制表是存储应用系统体系结构描述参数和菜单功能描述参数的载体,载体是关系数据库的数据表;所述代码生成器是根据系统控制表存储的参数动态生成执行代码的代码生成器。使用开发平台开发数据库应用系统时只需进行系统的功能模块设计,功能模块使用的菜单设计,菜单的功能设计,菜单使用的数据表设计,菜单窗体设计,再将菜单名、执行菜单使用的菜单构件包名、以及菜单的功能描述参数输入到系统控制表中,而无需再编写程序代码,或只对不能使用菜单构件包的菜单编写程序代码,即可生成应用系统。系统控制表的一个或多个记录对应应用系统的一个功能菜单,应用系统运行时按用户执行的功能菜单自动读取系统控制表的对应记录,根据这些记录存储的参数值确定功能菜单使用的菜单构件包名、菜单窗体名、数据表名,菜单使用的数据类型及表记录过滤条件、表记录索引和排序方法、菜单窗体数据显示与编辑规定、用户事件处理方法及后台进程处理方法;并动态生成程序执行代码,调用数据库数据或文件数据,加载菜单窗体,响应用户事件,控制菜单执行全过程,完成菜单功能。当增加或删除了系统控制表中的菜单记录,应用系统的菜单将随之增加或减少;当修改了系统控制表中的菜单功能描述参数,菜单的功能将随之改变。应用系统投入运行后,用户管理机构的变更是通过修改相关的管理机构数据表记录和使用开发平台的菜单权限设置功能实现的;应用系统功能的变更是通过修改系统控制表参数或修改菜单使用的数据表、菜单窗体实现的;即用户的业务模型变更不需要进行程序代码的修改。菜单构件包是根据数据库应用系统菜单执行数据处理的3种基本属性:‘菜单使用的数据表关联方式’、‘菜单对数据表的使用方式’、‘菜单使用的窗体类型’进行分类的可重用执行模块,开发平台共设计了20个菜单构件包。根据数据库应用系统菜单使用的数据表之间的关联方式对菜单构件包按如下方法分类:①单一数据表,称为‘单一主表’;②两层从属关联关系表,分别称为‘主表’、‘子表’,子表的多条记录从属于主表的一条记录,子表为多个时称为‘并列子表’;③三层从属关联关系表,分别称为‘主表’、‘子表’、‘子子表’,子表的多条记录从属于主表的一条记录,子子表的多条记录从属于子表的一条记录,子子表为多个时称为‘并列子子表’;④并列关系主表:单一数据表字段较多时分为多个表,其中的一个表称为‘主表’,其余多个表称为‘并列主表’,每一个并列主表的记录条数均与主表记录条数相同,且一一对应;⑤并列关系主表和从属子表,子表多条记录从属于并列关系主表中的一条记录;⑥索引关联关系表:将一个数据表某些字段值作为另一个数据表的索引,前一个表称为‘索引表’;⑦来源关联关系表:将一个数据表记录作为另一个数据表新增记录的数据来源,前一个表称为‘来源表’。数据库应用系统任一菜单可能使用单一数据表,也可能使用多个具有关联关系的数据表。根据数据库应用系统菜单对数据表的使用方式对菜单构件包按以下9种方法进行分类:①对单一数据表、并列关系主表、并列关系主表和从属子表、两层从属关联关系表及三层从属关联关系表记录进行查询或编辑;②为简化数据录入,保证数据一致性,对单一数据表、并列关系主表、两层从属关联关系表及三层从属关联关系表新增记录时,使用来源表记录作为这些表新增记录的数据来源;③为加快表记录调用速度,对单一数据表的表记录查询或编辑时使用索引表;④单一数据表由系统控制表规定分类字段、汇总字段及字段汇总方式,对表记录进行随机分类汇总;⑤单一数据表记录由系统控制表规定分类字段,对表记录进行随机分类查询;⑥单一数据表由系统控制表规定‘按时段统计’的日期字段,对表记录进行按时段统计与汇总;⑦单一数据表由用户根据需要选择一条或多条记录作为某种用途;⑧单一数据表由系统控制表规定‘实体定义字段’及存放‘实体状态变化的时间’字段名,查询每一实体在任一截止时间之前的实体状态及状态改变时间;⑨对单一数据表中用户随机选中的某一记录,按系统控制表规定的‘判断取值相等的字段名’和‘字段值比较条件’查找出该数据表中其它相关记录。根据数据库应用系统菜单使用的窗体类型对菜单构件包按以下方法进行分类:①窗体调用方式分为以下6种:主菜单调用;按钮菜单调用,即窗体功能按钮调用;分页菜单调用,由分页菜单名调用,每一个分页菜单名使用一个窗体;^OLE调用窗体;第三方软件嵌入式功能调用窗体;用户自编可执行程序调用窗体。②窗体使用的数据类型分为以下4种:只使用数据表的数值、字符、日期型字段数据;只使用数据表的大二进制字段数据;使用数据表的数值、字符、日期型字段数据和大二进制字段图像数据;使用文件数据。③窗体形式分为以下6种:单记录窗体:一个数据表的个人简历式窗体;可选单记录窗体:同一菜单中,一个数据表的不同类记录使用不同的单记录窗体;多记录窗体:一个数据表按行显示的多条记录窗体;带表头多记录窗体:窗体上部放置单一主表某一级索引下的多条记录字段值相同的字段,窗体下部按行放置取不同值字段的多条记录;上单下多窗体:窗体上部放置主表单记录,下部按行放置子表从属于该记录的多条记录;或窗体上部放置子表单记录,下部按行放置子子表从属于该记录的多条记录;左右窗体:窗体左右各放置一个多记录窗体,用于选记录作为某种用途,左边待选记录窗体,右边选中记录窗体。对数据库应用系统的所有数据表均使用统一的主键、外键及主外键关联方法,所述方法如下:单一主表、主表、并列主表,唯一主键xuhao;子表、并列子表,两个主键xuhao、xuhaol;子子表、并列子子表,三个主键xuhao、xuhaol、xuhao2;子表、并列子表、并列主表外键为主表主键xuhao;子子表或并列子子表外键为子表主键xuhao、xuhaol;主、夕卜键xuhao、xuhao1>xuhao2均定义为整数型;两层从属关联关系表、三层从属关联关系表、并列关系主表、并列关系主表和从属子表,根据主外键对从属表的表记录使用级联删除;索引关联关系表和来源关联关系表不使用级联删除。所述系统控制表按存储的参数类别分为三大类:系统主控参数、系统辅助控制参数、菜单后台进程处理方法参数;其中系统主控参数使用一个数据表存储,称为系统控制主表;系统辅助控制参数使用六个数据表存储,分别为:菜单操作权限设置表、表记录过滤方法表、选择录入方法表、管理对象表、数据表主关键字xuhao最大值表、数据表记录导出导入方法表;菜单后台进程处理方法参数由‘菜单后台进程处理方法表’存储。所述系统控制表的总体设计采用以下的方法:①每个系统控制表主关键字均定义为整数型,由系统控制主表的主关键字:菜单序号、菜单窗体序号、菜单窗体子序号和其它控制表进行关联,用于执行菜单时的菜单操作权限、菜单使用的数据表记录过滤、编辑调用选择录入、调用菜单后台进程处理时的调用参数;②应用系统体系结构描述参数和菜单的功能描述参数使用两种数据类型定义:整数型和字符串型,分别使用系统控制表的数值和字符字段来存储这些参数;③对参数值的定义,采用10种定义方法避免二义性。所述系统主控参数和系统辅助控制参数是:菜单类型、菜单名称、菜单排序方法及菜单执行方法参数;菜单使用的数据表、数据表的使用方式及数据表关联方法参数;菜单使用的数据表读记录方式参数、表记录过滤方法参数;菜单使用的数据表记录索引及排序参数;菜单使用的窗体参数,含窗体名、保存窗体的动态链接库名、窗体使用的数据表、窗体形式、调用可选窗体方法、日期与数值型字段显示格式;菜单窗体的功能按钮参数,含编辑按钮、后台进程调用按钮、OLE功能调用按钮、按钮菜单窗体调用按钮、菜单操作帮助按钮;菜单窗体表记录特殊编辑功能参数,含新增记录置公共变量,新增记录复制,选择录入置字段值,记录编辑屏蔽,字段编辑屏蔽,字段条件编辑屏蔽;编辑保存时数据表记录完整性与记录重复判断参数;执行流程控制参数;菜单后台进程处理调用参数;按时段汇总、期末实体状态查询、查找随机选中实体相关表记录、随机分类查询、随机分类汇总各自的处理方法参数;生成Web查询系统参数;菜单操作权限定义参数;管理对象,即系统使用人员业务职责管辖范围定义参数;数据表记录导出导入方法参数;保存数据表主关键字的最大值参数。所述菜单后台进程处理方法表的设计方法包括:①后台进程处理方法总体设计:将菜单后台进程处理方法分解为新增表记录、修改表记录、删除表记录三类数据表记录写方式,并设计了每一种写方式的执行参数,执行时根据这些参数动态生成SQL语句,完成数据表写操作;对于不能使用动态SQL语句实现的功能,通过调用编写的‘数据库过程’实现;设计时将用户业务数据表分为两大类:取值表和写值表,取值表为动态SQL语句的数据源,写值表为执行写操作的目标表;②菜单后台进程处理方法表的参数设计主关键字共6个:菜单序号、菜单窗体序号、调用的流程控制选项、调用的功能按钮序号、写方式、执行序号;后台进程调用是否执行的用户干预参数;流程控制全部选项修改字段值统一处理参数;写操作使用的取值表、写值表及使用的取值表记录与写值表记录参数;判断该方法表某一记录规定的写操作是否执行及执行次数参数;修改表记录或删除表记录的执行方法参数;写方式为新增表记录方式时,每执行一次写操作时写值表新增记录条数、新增记录的主关键字和用户业务关键字生成方法的定义参数;字段赋常量值方法参数;字段使用表达式赋值时,‘表达式类型’使用的枚举型参数;无条件多字段表达式赋值参数;条件多字段表达式赋值参数;将另一指定的数据表作为取值表,执行的写操作参数;sql语句赋值方法参数;调用数据库过程参数;后台进程处理不允许执行或执行完毕时的提示信息参数。所述开发平台对系统控制表存储的参数进行编辑及查询方法是:系统控制表可在应用系统内设置菜单进行编辑或查询,也可在应用系统之外的其它系统进行编辑或查询;每个系统控制表均采用各自的编辑与查询界面,完成其存储的各类参数录入或查询工作;编辑与查询界面的内容分为两大类,其一是参数注释,含参数名、参数使用说明和参数输入格式说明,其二是参数值编辑框;对系统控制表编辑与查询界面的每一个参数注释,均使用接近于人际交流的自然语言描述,因而系统控制表还可作为应用系统开发人员对系统设计进行交流的中间介质及开发方和用户方对系统功能进行交流的中间介质。所述应用系统是指由数据库服务器、应用服务器、客户工作站三层结构模式构成的应用系统。使用开发平台开发数据库应用系统时,遵从以下步骤将自动生成应用系统:(I)在数据库中建立开发平台的系统控制表及管理基础表;(2)进行用户需求分析,录入管理基础表数据分析管理机构,录入‘管理机构表’数据;分析管理规范,录入‘管理规范数据表’数据;分析管理层次,录入‘管理对象表’数据;录入‘人员职责表’数据;‘人员职责表’存放系统使用人员的身份资料;(3)根据用户需求分析确定应用系统的功能模块,及功能模块使用的功能菜单和功能菜单应实现的功能;确定菜单操作权限;并按开发平台数据表主、外键规定及用户业务要求建立菜单数据表;(4)根据功能菜单‘使用的数据表关联方式’,‘数据表的使用方式’,‘使用的菜单窗体类型’确定每一功能菜单使用的菜单构件包;(5)功能菜单不使用OLE调用窗体时,根据功能菜单使用的数据表及界面要求确定窗体形式,创建菜单窗体;确定窗体日期型字段显示方式、窗体数值型字段显示方式;菜单为Web查询菜单时编辑Web查询页面;(6)确定各类使用人员执行功能菜单时对菜单数据表记录的过滤条件;(7)确定菜单使用多个数据表时表的关联方式;使用来源表时的读字段规定;(8)确定功能菜单使用的数据表索引字段;日期型索引字段的索引方式;表记录的排序字段、排序方式;功能菜单使用OLE调用窗体时,OLE调用的类型字段及取值字段;(9)确定功能菜单的功能按钮,含编辑按钮、后台进程调用按钮、按钮菜单调用按钮、分页菜单使用的分页菜单名;(10)确定功能菜单对数据表记录的编辑屏蔽、记录的条件编辑屏蔽、分组编辑条件或方法;(11)确定功能菜单对数据表记录的字段屏蔽编辑、条件字段屏蔽编辑方法;(12)确定新增表记录置公共变量、常量规定;新增记录复制方法;(13)字段编辑调用选择录入方法时完成‘选择录入方法表’的参数设计;(14)确定使用随机分类汇总、随机分类查询、按时段统计汇总时,分类及汇总方法规定;(15)确定编辑保存时必录字段与表记录唯一性判断方法;(16)确定调用流程控制的流程控制选项规定;(17)确定菜单应实现的后台进程调用,后台进程调用的调用按钮及调用规定;(18)完成菜单后台进程处理的‘菜单后台进程处理方法表’的参数设计;(19)对不能使用菜单构件包的菜单编写处理程序;确定调用第三方软件方法;编写‘数据库过程’;(20)安装开发平台的执行程序、应用服务器程序;将菜单窗体拷贝到应用服务器;在系统控制表中录入上述菜单功能设计的相关参数;安装‘自编程序’及‘第三方软件’,运行开发平台执行程序进行菜单操作权限设置,在各工作站进行系统设置后,系统投入运行。完成下述工作后将自动生成Web查询系统:①对需执行Web查询的菜单编辑Web查询页面;②在系统控制主表中输入Web页面名;③将开发平台的Web查询程序拷贝到企业的Web服务器,Web查询系统即可投入运行;④执行Web查询时,将根据系统控制主表的菜单定义参数,数据表索引参数,Web页面名参数,动态生成Web查询菜单与Web查询页面。图1是使用开发平台开发数据库应用系统流程图。图2是系统控制主表的编辑界面I。图3是系统控制主表的编辑界面2。图4是系统控制主表的编辑界面3。图5是系统控制主表的编辑界面4。图6是系统控制主表的编辑界面5。图7是菜单后台进程处理方法表编辑界面I。图8是菜单后台进程处理方法表编辑界面2。图9是菜单后台进程处理方法表编辑界面3。图10是选择录入方法表编辑界面。图11是表记录过滤方法表编辑界面。图12是菜单操作权限设置界面。图13是管理对象表编辑界面。图14是数据表记录导出导入方法表编辑界面。具体实施例方式为了进一步了解本发明的内容,下面对本发明进行详细的描述。菜单构件包1、数据库应用系统的数据处理分析:数据库应用系统使用的数据,按存储方式分为两大类:一类是以数据表形式存放于数据库中的数据,称为数据库数据,另一类是文件数据。数据库数据又分为数据表的大二进制字段数据(文本、图形、图像、声音等数据),和数据表常用字段数据(数值型、字符型、日期型数据)两种。对文件数据的使用,通常采用数据表管理文件名,根据文件名和文件存储路径调用文件数据的方法。数据库应用系统是由一个一个的功能菜单组成的,应用系统的任一功能菜单,不外乎是将这几种不同的数据类型中的一种或几种从数据库或文件存储介质中读取出来显示到计算机屏幕,即术语‘窗体’上进行浏览或编辑,再进行一些后台数据处理工作,最后将执行结果保存到数据库或文件中。2、菜单使用的数据表关联方式:数据库应用系统任一菜单可能使用单一数据表,也可能使用多个具有关联关系的数据表,分类方法如下:①单一数据表,也称为‘单一主表’。②两层从属关联关系表:简称‘主子表’;两层表分别称为‘主表’和‘子表’,子表为主表的从属表,子表的多条记录从属于主表的一条记录;从属表可以是一个或多个,为多个时称为‘并列子表’。例:变电站值班记录:将变电站名、值班班次、值班日期等字段定义为主表,每一值的工作记录的多个属性字段,如工作时间、工作内容等定义为子表;则子表中某一值某一天的多条工作记录从属于主表的一条记录。③三层从属关联关系表:简称‘主子、子子表’;三层表分别称为‘主表’、‘子表’、‘子子表’,子表为主表的从属表,子表的多条记录从属于主表的一条记录,子子表为子表的从属表,子子表的多条记录从属于子表的一条记录;从属表可以是一个或多个,子表为多个时称为‘并列子表’,子子表为多个时称为‘并列子子表’。④并列关系主表:单一数据表,表字段较多,且不同的字段使用不同的窗体,为了设计方便,加快读表记录速度,将其分解为多个表;其中的一个表称为‘主表’,其余多个表称为‘并列主表’,并列主表中每一个表的记录个数与主表记录个数相同,且每一条记录对应主表的一条记录。例:年度工作汇总分为多个固定的页面,每页有不同的汇总项目,使用一个数据表保存时字段太多,调用速度慢;采用对每一页的汇总项目设置一个数据表来解决这个问题,同时各页使用的数据表记录又根据关联关系进行统一调用。⑤并列关系主表和从属子表:一个或多个子表从属于并列关系主表中的主表,子表的多条记录从属于主表的一个记录;子表为多个时称为‘并列子表’。⑥索引关联关系表:一个数据表是应用系统基础数据表,如‘物的集合名称表’或‘人的集合名称表’,另一个表是基础数据表记录的所有实体的子实体属性描述表,该表记录条数远多于基础数据表记录条数;将基础数据表称为‘索引表’,子实体属性描述表称为‘主表’;为了加快主表记录调用速度,使用索引表描述实体的关键字值作为索引,根据两个表描述实体使用的关键字值相等的关联关系调用主表记录,称为‘索引关联关系’。例:某供电公司有几百条输电线路,使用数据表‘输电线路名称表’存储线路属性;每条线路有几十基到几百基杆塔,使用数据表‘杆塔明细表’存储杆塔属性;杆塔明细表可能有几万条记录,直接调用时数度慢;在查询杆塔属性时,将‘输电线路名称表’作为索引表,‘杆塔明细表’作为主表,线路名称作为索引关键字,根据所选的线路名称调用杆塔明细表对应线路的杆塔记录,则记录少,调用速度快。⑦来源关联关系表:使用一些应用系统的‘基础数据表’记录或‘行业规范数据表’记录作为另一些数据表新增记录的数据来源,以加快录入速度和保证数据一致性,这些基础数据表或行业规范数据表被称为‘来源表’;执行时根据来源表和被编辑表之间的关联关系调用来源表记录,称为‘来源关联关系’。例:将数据表‘名医处方表’作为来源表,根据病人处方的医生名和处方名调用‘名医处方表’记录,作为输入病人处方时新增记录的数据来源,则可加快录入速度和保证数据一致性。3、菜单对数据表的使用方式:菜单对数据表的使用方式分为以下9种:①对单一数据表、并列关系主表、并列关系主表和从属子表、两层从属关联关系表或三层从属关联关系表表记录进行查询或编辑。②为简化数据录入,保证数据一致性,对单一数据表、并列关系主表、从属关联关系的主表、子表或子子表新增记录时,使用来源表记录作为这些表新增记录的数据来源;可一次新增来源表满足系统控制表规定条件的记录个数的记录,或随机选中的来源表记录个数的记录;并根据系统控制表规定,将来源表相应记录的一个或多个字段值拷贝到这些表新增记录的对应字段。例:前述输入病人处方,选择‘名医处方表’某名医的某处方后,将处方中的多个或全部药材名称记录新增到病人处方表,并拷贝所选药材的数量及单价。③为加快表记录调用速度,对单一数据表的表记录查询或编辑时使用索引表。④单一数据表由系统控制表规定分类字段、汇总字段及字段汇总方式,对表记录进行随机分类汇总;执行时按用户随机指定的一个或多个分类字段,根据分类字段取的不同值,或随机指定的分类值或分类值范围,进行分类统计与汇总。例:变电站设备台帐,分类字段为:变电站名、设备类别(主变、sf6断路器、油断路器、真空断路器、电压互感器、电流互感器等),汇总字段为‘设备原值’,汇总方式为‘求和’;当用户指定的分类字段为变电站名时,则按每一个变电站汇总设备原值;当指定的分类字段为设备类别时,则按每一种设备类别汇总设备原值;当选定某一变电站并将设备类别作为指定的分类字段时,则按设备类别汇总该变电站所有设备原值。⑤单一数据表记录由系统控制表规定分类字段,对表记录进行随机分类查询;执行时按用户随机指定的一个或多个分类字段的分类取值或取值范围进行分类查询;说明:随机分类查询和随机分类汇总使用的分类方法相同,但得到的结果是满足查询条件的数据表记录。⑥单一数据表由系统控制表规定‘按时段统计’的日期字段,对表记录进行按时段统计与汇总;执行时按用户对该字段随机指定的时段范围得到满足时段条件的数据表记录,并执行对系统控制表规定的汇总项目的汇总计算。例:对某一数据表自动生成年度、月度、季度、旬、周、日统计报表,或随机输入的时间间隔统计报表。⑦单一数据表由用户根据需要选择一条或多条记录作为某种用途。例:编辑出库单时,将仓库中一些需要调出的物资挑选出来。⑧单一数据表由系统控制表规定‘实体分类字段’及存放‘实体状态变化的时间’字段名,根据实体分类字段确定表记录的实体定义方法,查询每一实体在任一截止时间之前的实体状态及状态改变时间。例:指定时间为某年某月,统计‘变电站低频减负荷装置投退表’截止该月底时某变电站所有低频减负荷装置的‘投退状态’及‘最后一次投或退的发生时间’,这里,‘变电站名’和‘低频减负荷装置名称’为实体分类字段,‘投或退的发生时间’为‘实体状态变化的时间’字段。⑨对单一数据表中用户随机选中的某一记录,按系统控制表规定的‘判断取值相等的字段名’及系统控制表规定的‘字段值比较条件’查找出该数据表中其它相关记录,执行某项工作。例:在‘客户订单表中’,随机选中某一客户的某一订单记录,查询该客户本订单发生日期之前的所有订单记录;这里,‘客户名’为判断取值相等的字段名,‘订单发生日期之前’为规定的字段值比较条件。4、菜单使用的窗体类型:对菜单窗体按下述‘窗体调用方式’、‘窗体使用的数据类型’、‘窗体形式’进行分类,称为‘菜单使用的窗体类型’;①窗体调用方式分为以下6种:主菜单调用,称为‘主菜单窗体’;按钮菜单调用,即窗体功能按钮调用,称为‘按钮菜单窗体’;分页菜单调用,由分页菜单名调用,称为‘分页窗体’;例:如前述年度工作汇总有多个固定的页面,每页有一个‘页面名称’,将‘页面名称’作为菜单调用每一个页面,每一个页面使用一个分页窗体;.0LE调用窗体;例:调用CAD图,WORD文档等使用的窗体。第三方软件嵌入式功能调用窗体;例:应用系统某一菜单使用地理信息系统软件时嵌入的地图窗体。用户自编可执行程序调用窗体。②窗体使用的数据类型分为以下4种:只使用数据表的数值、字符、日期型字段数据;只使用数据表的大二进制字段数据;使用数据表的数值、字符、日期型字段数据和大二进制字段图像数据;例:个人简历嵌入照片;使用文件数据。③窗体形式分为以下6种:一个数据表的个人简历式窗体,窗体只使用数据表一条记录,称为‘单记录窗体’,简称‘单’;同一菜单中,一个数据表的不同类记录使用不同的单记录窗体,称为‘可选单记录窗体’,简称‘选单’;分为使用索引值选单,鼠标双击多记录中某一记录,根据该记录某一规定的字段取值选单两种;例:变电站设备台帐的设备类型包含主变、断路器等,主变和断路器的台帐参数不同,使用不同的单记录窗体;编辑、查询变电站设备台帐时,若为主变,使用主变单记录窗体,若为断路器,使用断路器单记录窗体;一个数据表按行显示的多条记录窗体,称为‘多记录窗体’,简称‘多’;同时可响应‘鼠标双击多记录事件’调用被双击记录对应的单记录窗体或可选单记录窗体,响应‘鼠标单击返回多记录按钮’事件,返回多记录窗体;.窗体上部放置单一主表某一级索引下的多条记录字段值相同的字段,窗体下部按行放置取不同值字段的多条记录,称为‘带表头多记录窗体’,简称‘多带头’,窗体上部的字段称为‘表头’;同时可响应‘鼠标双击多记录’事件调用被双击记录对应的单记录窗体,响应‘鼠标单击返回多记录按钮’事件,返回带表头多记录窗体;例:按部门查询、打印员工花名册时,将部门名作为表头放置在窗体上部,同一部门员工的多条记录按行放置在窗体下部。窗体上部放置主表单记录,下部按行放置子表从属于该记录的多条记录;或窗体上部放置子表单记录,下部按行放置子子表从属于该记录的多条记录;称为‘上单下多窗体’,简称‘上单下多’;同时可响应‘鼠标双击多记录’事件调用被双击记录对应的单记录窗体,响应‘鼠标单击返回多记录按钮’事件,返回上单下多窗体;或响应‘鼠标双击多记录’事件调用被双击记录对应的按钮菜单窗体,响应‘鼠标单击返回主菜单按钮’事件,返回上单下多窗体;例:如前述变电站值班记录,窗体上部放置主表的变电站名、值班班次、值班日期等字段,下部按行放置每一值的多条工作记录;窗体左右各放置一个多记录窗体,用于选记录作为某种用途,左边待选记录窗体,右边选中记录窗体,称为‘左右窗体’;响应‘鼠标双击记录’事件使记录在左右窗体之间移动(双击左边窗体某一记录,该记录移至右边窗体,双击右边窗体某一记录,该记录移至左边窗体);可根据需要一次选择左边待选记录窗体中的一条、多条或全部记录作为选中记录,移到右边选中记录窗体;两个窗体可使用同一数据表,也可使用不同数据表;例:如前述编辑出库单,左边窗体为仓库中可选物资记录,右边窗体为选中物资记录,鼠标双击左边或右边窗体的某一物资记录执行选中或放弃。5、菜单构件包设计原理:上述‘菜单使用的数据表关联方式’、‘菜单对数据表的使用方式’、‘菜单使用的窗体类型’,是开发平台对菜单执行数据处理的分类方法,称为‘菜单数据处理类型’。开发平台按菜单数据处理类型对数据库应用系统菜单进行分类,每一类菜单使用一个执行模块,称为‘菜单构件包’。菜单构件包采用类似于函数的设计方法,调用参数使用开发平台的系统控制表存储,应用系统运行时读取这些参数,动态生成执行代码,完成菜单功能。菜单构件包是基于菜单数据处理类型层面开发的执行模块,所以,数据库应用系统属于同一数据处理类型的所有菜单可使用同一个菜单构件包,实现了模块重用要求。6、菜单构件包对数据表的规范设计要求:为了加快表记录调用速度和便于菜单构件包设计,开发平台对应用系统的数据表有以下的规范设计要求:①对菜单使用的所有数据表,主键(primarykey)和外键(foreignkey)均定义为整数型,并使用统一的主键、外键及主外键关联方法,设计方法如下:单一主表、主表、并列主表,唯一主键xuhao;子表、并列子表,两个主键xuhao、xuhaol;子子表、并列子子表,三个主键xuhao、xuhaol、xuhao2;子表、并列子表、并列主表外键为主表主键xuhao;子子表、并列子子表外键为子表主键xuhao、xuhaol;主键xuhao、xuhaol、xuhao2均定义为整数型。②从属关联关系表(主子表,主子、子子表)、并列关系主表、并列关系主表和从属子表,根据主外键对从属表和并列主表的表记录使用级联删除;索引关联关系表和来源关联关系表不使用级联删除。③对菜单使用的各种类型数据表,均增加两个数值型字段,一个字符型字段,及一个日期型字段,并使用统一的字段名,用于存放数据表新增记录的编辑人身份及新增记录日期,使用的字段名如下:ejbmbhl:编辑人的部门编号;bzbh:编辑人的班组编号!operator:编辑人的人员编号;operdate:新增记录日期;前两个为数值型字段,operdate为日期型字段,operator为字符型字段;当新增表记录时,用登录人身份及系统时间置上述四个字段值,用于按操作人身份过滤表记录或其它功能使用。7、开发平台共设计了20个菜单构件包,列举如下:(I)一表一页窗体构件包,简称w_ltable_lpage,使用一个数据表,功能如下:对单一主表、两层及三层从属关联关系的主表,进行表记录查询、编辑;使用的窗体分为四种:多记录窗体,带表头多记录窗体,单记录窗体,可选单记录窗体;将单一主表记录导出为Excel表数据;将Excel表数据导入到单一主表;对单一主表某一字段值执行批替换。(2)主子表窗体构件包,简称w_zhu_zi;使用两层从属关联关系表:一个主表和一个子表;功能如下:主表字段作索引,使用上单下多窗体,对主表记录及子表从属记录进行查询、编辑;主表与子表字段作索引,使用单记录窗体,可选单记录窗体,多记录窗体对子表记录进行查询、编辑。(3)主子、子子表窗体构件包,简称w_zhu_zi_zizi;使用三层从属关联关系表:一个主表、一个子表和一个子子表;功能如下:主表和子表字段作索引,使用上单下多窗体,对子表记录和子子表从属记录进行查询、编辑;主表和子表字段作索引,使用单记录窗体,可选单记录窗体,多记录窗体,对子表或子子表记录进行查询、编辑。(4)主表、多子表、子子表分页窗体构件包,简称w_zhu_duozi_zizi;使用三层从属关联关系表:一个主表、并列子表和并列子子表;使用分页菜单名、主表和子表字段作索弓丨,对不同的表类或不同的表类组合:主表、子表、子子表、主表和子表、子表和子子表,使用分页窗体进行查询、编辑;分页窗体可以是单记录窗体、可选单记录窗体、多记录窗体、上单下多窗体;分页窗体可使用二级分页窗体,由二级分页菜单名调用;例:变电站检修工作使用三层从属关联关系表:‘检修工作计划表’为主表,‘班组人员分派表’、‘班组工作票表’、‘班组材料领用表’为并列子表,‘材料明细表’为‘班组材料领用表’的从属子子表;使用检修工作计划表的‘变电站名’、‘检修日期’和分页菜单名:‘班组人员分派’、‘工作票’、‘领料单’作为索引;首先根据选择的变电站名、检修日期得到主表关键字xuhao值,然后根据主表、子表、子子表的关联关系过滤子表、子子表记录;若选择分页菜单‘班组人员分派’,则使用多记录窗体查询班组人员分派的多记录;若选择分页菜单‘工作票’,则将班组工作票表的‘班组名’作为下一级索引,使用单记录窗体查询每一班的工作票的单记录;若选择分页菜单‘领料单’,则将班组材料领用表的‘班组名’作为下一级索引,选班组名后,显示该班领料单的‘领料单封面’窗体,窗体上面显示二级分页菜单名:‘领料单封面’和‘材料明细’,选‘材料明细’,则使用多记录窗体查询该班组材料明细的多记录,选‘领料单封面’,返回领料单封面窗体。(5)多表多页窗体构件包,简称w_ntable_npage;使用的表分为4种:①并列关系主表,②一个主表与并列子表,③并列关系主表与子表,④单一主表;使用的窗体:分页窗体;每一分页窗体可使用一个或两个表;窗体形式:单记录窗体、多记录窗体、上单下多窗体;功能:①使用主表字段与分页菜单名进行索引,调用相应分页窗体,执行对不同表或同一表不同字段的查询、编辑操作;②使用来源表新增主表记录,使用来源表字段和分页菜单名进行索引,调用相应分页窗体,执行对不同表或同一表不同字段的查询、编辑操作;例:如前述年度工作汇总使用并列关系主表,还可能有一个‘单项工作子表’,存储每一年年度工作汇总中该单项工作的多条记录;将年度工作汇总多个页面的页面名称作为菜单调用每一个页面,每一个页面使用一个分页菜单窗体;当调用该‘单项工作’时,使用多记录窗体,当调用其它页面时,使用单记录窗体。(6)使用来源表编辑主表或使用索引表查询、编辑主表,主表窗体构件包,简称w_ly_zhu;使用一个主表和一个来源表或一个主表和一个索引表;使用主表多记录窗体、单记录窗体或带表头多记录窗体;功能:①使用来源表和主表字段作索引,或只使用来源表字段作索引,执行使用来源表新增主表记录;②使用索引表字段作索引,对主表进行查询或编辑。(7)使用来源表编辑子表,主子表窗体构件包,简称w_ly_zi;使用一个主表、一个子表和一个来源表;使用主子表上单下多窗体;功能:使用主表作索引,根据主表与来源表关联关系调用来源表记录,执行使用来源表新增子表记录。例:每个变电站交接班时均有多个设备进行交接,将每个变电站需交接的设备用一个来源表存储,将变电站名与交接班时间用主表存储,每一次交接时的设备状态用子表存储;则每当新增一个变电站的交接班主表记录时,就从来源表拷贝该变电站需交接的全部设备记录到子表。(8)来源表选记录新增主表记录,左右窗体构件包,简称w_ly_xz_zhu;使用一个主表和一个来源表;使用左右窗体;功能:来源表和主表字段作索引或只使用来源表字段作索引,执行使用来源表选记录新增主表记录;来源表待选记录使用左边窗体,主表新增记录使用右边窗体。(9)主表左右窗体选记录构件包,简称w_zhu_xz_zhu;使用一个主表;使用左右窗体;功能:主表字段作索引,选记录,左边窗体待选记录,右边窗体选中记录。该构件包可作为主菜单使用,也可作为按钮菜单使用。(10)来源表选记录新增子表记录,左右窗体构件包,简称w_ly_xz_zi;使用一个主表、一个子表和一个来源表;使用左右窗体;功能:主表字段作索引,使用来源表选记录新增子表记录;左边窗体来源表待选记录,右边窗体子表新增记录。(11)来源表选记录新增子子表记录,左右窗体构件包,简称w_ly_xz_zizi;使用一个主表、一个子表和一个来源表;使用左右窗体;功能:主表、子表字段作索引,使用来源表选记录新增子子表记录;左边窗体来源表待选记录,右边窗体子子表新增记录。(12)来源表与主表关联,查询编辑主子关系表记录,上单下多窗体构件包,简称w_ly_zhu_zi;一个主表、一个子表和一个来源表;使用主子表上单下多窗体,窗体上部为主表单记录,下部为子表从属多记录;功能:①使用来源表记录新增主表记录,然后编辑主子表记录使用来源表字段作为索引,根据来源表与主表关联关系,查询主表、子表记录。(13)随机分类汇总构件包,简称w_grop_by_total;使用一个多记录窗体,窗体上部放置分类字段的分类值选择按钮,窗体下部放置分类汇总记录;功能:单一主表按用户选择的多个分类字段的每一字段全部不重复取值,或选择的分类取值,对表记录进行随机分类,其中日期型分类字段根据需要可选择:按年、按半年、按季度、按月、按半月、按旬、按周、按日、按时、按时分进行分类;并对多个规定的数值字段执行分类汇总,或统计记录个数;汇总方法包括:求和,求平均,求最大值,求最小值,求方差;执行时自动生成分类汇总记录。(14)随机分类查询窗体构件包,简称w_grop_by_query,使用一个多记录窗体,窗体上部放置分类字段的分类值选择按钮,窗体下部放置满足查询条件的记录;功能:单一主表按用户选择的多个分类字段中的每一字段取的分类值,或随机输入的日期型分类字段取值范围作为表记录过滤条件,对表记录进行过滤,得到满足查询条件的记录。日期分类字段取值范围可使用:①某一年,②某一年的:上半年、下半年、某季度、某一月,③某一月的:某一旬、某一周、某一日,④某一日之前,⑤某一日之后,⑥两个日期之间,⑦指定不同年的同一个月份,⑧指定不同年不同月的同一日;‘指定不同年的同一个月份’例子:某一数据表所有的12月份发生的记录;‘指定不同年不同月的同一日’例子:某一数据表所有的I日发生的记录。(15)按时段统计汇总构件包,简称w_ly_zi_by_date_total;使用上单下多记录窗体;存放执行统计的日期型字段由系统控制表指定;功能:单一主表按随机输入的统计时段,对表记录过滤得到满足统计条件的表记录,并执行对特定项目的分类汇总;使用上单下多窗体;窗体上部为统计时段及汇总项目,窗体下部为满足统计时段条件的实体多记录;例:各种年度、月度、季度或随机时段统计表。(16)期末实体状态查询构件包,简称w_ly_zhu_date_last;使用多记录窗体;功能:对单一主表,由系统控制表的实体分类字段确定表记录的实体定义方法,由系统控制表的日期型索引字段指定实体特定属性状态变化的时间字段名,由系统控制表的日期型字段索引方式指定实体状态变化查询的期末时间类别;日期型字段索引方式可以是年、月、日,对应的期末时间类别分别为:截至某一年最后一天24点、截至某一月最后一天24点、截至某一日24点;执行时将事件发生时间索引值作为期末时间条件,查询每一实体对应该截止时间之iu的特定状态及最后一次状态改变发生的时间;例:截至某一月最后一天24点,变电站全部开关的‘开’或‘合’状态,及最后一次‘开’或‘合’发生时间。(17)查找随机选中实体相关表记录构件包,简称w_ly_zhu_dt_filter_zhu;功能:单一主表用户随机选中某一条记录,按系统控制表规定的实体定义字段取值及比较条件过滤出选中实体的相关记录。使用一个主表与一个来源表;一个窗体,上边备选多记录,下边与选中记录相关的多记录;例:在‘客户订单表中’随机选中某一客户的某一订单记录,查询该客户本订单发生日期之前的所有订单记录。(18)调用大二进制和文件数据构件包,简称w_call_blob_file;功能:将文件数据写入数据表大二进制字段、将数据表大二进制字段数据转换为文件、对数据表大二进制字段数据或文件数据执行OLE调用;该构件包可作为主菜单使用,也可作为按钮菜单使用。(19)第三方软件调用构件包:由系统控制表定义菜单及使用的数据,对第三方软件进行嵌入式功能调用。(20)用户自编独立可执行程序调用构件包,使用菜单调用,执行用户自编程序,但不能使用由系统控制表定义的数据。注1:上述菜单构件包中的:w_ltable_lpage,w_zhu_zi,w_zhu_zi_zizi,w_ly_zhu,w_ly_zi,w_ly_xz_zhu,w_zhu_xz_zhu,w_ly_xz_zi,w_ly_xz_zizi,w_ly_zhu_zi可使用按钮菜单,对主菜单数据表及按钮菜单数据表或文件数据进行查询、编辑。注2:应用系统的每一主菜单均根据需要使用上述20个菜单构件包中的一个;按钮菜单除使用‘OLE调用窗体’和使用‘左右窗体’的构件包外,均不设置使用的构件包名;分页菜单只需主菜单定义使用的构件包名。系统控制表1、系统控制表的设计原理开发平台的整体设计思想是采用类似于函数的设计方法,将数据库应用系统的所有功能模块设计为由外部载体存放的参数调用的执行模式。数据库应用系统的系统功能是由一个个功能菜单组成的,系统运行的任一时刻,任一个用户只可能使用一个功能菜单,属于离散方式运行。关系数据库数据表的记录格式,能够满足数据库应用系统菜单离散方式运行的参数设计要求。开发平台将存储功能模块调用参数的关系数据库多个数据表,称为‘系统控制表’,对系统控制表的设计,有下述3个基本要求:①设计的参数满足描述应用系统体系结构和执行菜单构件包的需求;②参数的定义不应有二义性,调用功能模块时对这些参数的解释是唯一的;③对参数的编辑和修改是方便的。2、数据库应用系统体系结构描述参数和菜单功能描述参数避免二义性的设计方法:(-)数据库应用系统体系结构描述参数和菜单功能描述参数基本类型分为:非枚举型参数、枚举型参数和表达式参数三种,说明如下:①非枚举型参数包括整数参数和字符串参数两种,整数参数使用整数定义,字符串参数使用字符串定义;例如,多记录窗体的记录行数使用整数定义,菜单名,菜单使用的数据表名等使用字符串定义。②枚举型参数:参数的取值个数是可数的,则参数用枚举型参数定义;枚举型参数值使用标识枚举值的整数序号定义。例:‘菜单后台进程处理方法表’写记录方式分为六种,用枚举型参数描述如下:0判断是否退出调用,I新增记录,2修改记录,3删除记录,4有记录修改,无记录新增,5调用数据库过程;参数值使用枚举序号:0,1,2,3,4,5定义;如:参数值等于I时为‘新增记录’,在编辑参数和模块调用时不会产生二义性。③表达式参数:与数据库SQL语句中使用的表达式定义方法相同,如数据表记录的过滤条件表达式。㈡对参数定义的具体规定如下:第一:非枚举型整数参数用整数或整数序列定义,整数序列中的整数使用约定分隔符分开。第二:非枚举型字符串参数用字符串、字符串序列或文本定义;其中字符串序列用于多个字符串,字符串之间用约定分隔符分开。例:菜单使用的数据表名用字符串定义;数据表的多个索引字段名用逗号隔开的字符串序列定义;菜单的操作帮助用文本定义。第三:枚举型参数用标识枚举序号的整数定义。第四:参数为条件表达式、日期表达式、数值表达式、字符表达式、统计计算表达式时,使用数据库SQL语句中的对应表达式定义;称为‘表达式参数’。第五:当一个参数使用多个枚举型子参数时,称为‘枚举型子参数’,用整数序列或用一个整数定义该参数;当用整数序列定义时,子参数个数等于整数序列的整数个数,整数序列中的整数之间使用约定分隔符分开,每个整数对应一个子参数;当用一个整数定义时,子参数个数等于整数的位数,整数的每一位对应一个子参数;注意,使用一个整数定义时,枚举值不能超过9个。例1:数据表记录的排序使用枚举型参数:1升序,2降序,且用一个整数定义多个字段排序方法;当使用一个字段排序时,参数为I位整数;使用两个字段排序时,参数为两位整数,整数的十位标识第一个字段排序方法,个位标识第二个字段排序方法;某一数据表有两个排序字段:fieldl,field2,字段fieldl按降序排序,字段field2按升序排序,则参数使用整数‘21’标识。例2:日期字段索引方式使用枚举型参数:I年,2半年,3季度,4月,5半月,6旬,7周,8日,9时分,且用整数序列定义;某一数据表有一个日期索引字段datel,第一级索引按年索引,第二级索引按日索引,则参数使用整数序列‘1,8’标识。第六:一个参数使用多个可选用的枚举型参数时,称为‘枚举型可选参数’,使用不带分隔符的数字01序列定义,01序列的位数等于可选参数个数,每一位对应I个可选参数,某一位等于1,标识使用这一位对应的可选参数,等于0,标识不使用这一位对应的可选参数。例:表记录编辑按钮使用8位数字01序列定义,01序列的每一位对应的编辑按钮规定为:1新增主表记录,2删除主表记录,3新增子表记录,4删除子表记录,5新增子子表记录,6删除子子表记录,7保存,8放弃编辑;当8位数字01序列某一位等于1,则使用该位对应的编辑按钮,某一位等于0,则不使用该位对应的编辑按钮。如:01序列定义为‘11000011’,则使用的编辑按钮为:新增主表记录,删除主表记录,保存,放弃编辑。第七:一个参数使用多个子参数,子参数可以是非枚举型参数、枚举型参数或表达式参数,子参数之间用约定的分隔符隔开,称为‘组合参数’。第八:若组合参数中某一子参数使用字符串、字符串序列、整数序列或表达式定义时,将它们使用约定的标识符括住,标注为一个子参数。第九:用组合参数描述的参数有两种及两种以上的不同用法时,将每一种使用方法的组合参数使用约定的标识符括住,方法之间用约定的分隔符隔开。例:菜单窗体日期型字段显示格式定义为:[表类,{年字段名列表},{年月字段名列表},{年月日字段名列表},{年月日时分字段名列表}];其中‘表类’为枚举型子参数,见下述‘系统控制表公用的枚举型参数’,其余子参数用H括住的字符串序列定义;将菜单窗体每个表类的格式参数用[]括住,多个表类的格式参数用逗号隔开。第十:系统控制表公用的枚举型参数:①‘表类’,菜单窗体使用的数据表或执行读、写操作使用的数据表:I主表,2子表,3子子表,4来源表,5并列主表,6并列子表,7并列子子表,8按钮菜单新主表,9按钮菜单新主子表,10菜单构件包W_zhu_xz_zhu左边窗体表。说明:菜单使用的数据表名在系统控制表中用对应的‘表名’参数标识,菜单窗体使用的数据表或执行读、写操作使用的数据表用‘表类’标识,根据‘表类’调用相应的数据表;如:表类等于1,则调用‘主表名’标识的数据表。②‘公共变量’,应用系统运行时保存登录人身份的全局变量:1部门名,2班组名,3姓名,4班组类,5值班班次,6系统日期,7系统时间,8二级部门名,9管理的物的集合名,10管理的人的集合名,11部门类,12轮流值班的运行记录号,13部门号,14班组号,15单位名。3、系统控制表总体设计数据库应用系统的数据处理对象分为四层:功能菜单、数据表、表记录、表字段;系统进程分为两大类:前台进程和后台进程;系统控制表就是按数据库应用系统这四层数据处理及两类系统进程的不同要求设置处理参数。设计时将系统控制表存储的参数分为三大类:系统主控参数、系统辅助控制参数、菜单后台进程处理执行方法参数;其中前两类属于应用系统体系结构描述参数和调用菜单构件包时应实现的公用功能的执行方法参数,后一类是完成菜单后台进程特殊功能处理的执行方法参数。系统主控参数使用一个数据表存储,称为‘系统控制主表’;系统辅助控制参数使用六个数据表存储,分别为:‘菜单权限设置表’、‘表记录过滤方法表’、‘选择录入方法表’、‘管理对象表’、‘数据表主关键字xuhao最大值表’、‘数据表记录导出导入方法表’;菜单后台进程处理方法参数由‘菜单后台进程处理方法表’存储。每个系统控制表主关键字均定义为整数型;由系统控制主表的主关键字:菜单序号、菜单窗体序号、二级分页菜单序号和其它控制表进行关联,用于执行菜单时的菜单操作权限、菜单使用的数据表记录过滤、编辑调用选择录入、调用后台进程处理时的调用参数。4、系统控制主表设计4.1菜单分类与主关键字数据库应用系统使用的菜单分为三类:主菜单、按钮菜单、分页菜单。任一菜单可只有一个主菜单;也可包含一个主菜单和多个按钮菜单;或包含一个主菜单和多个分页菜单;分页菜单还可有多个二级分页菜单;分页菜单和按钮菜单统称‘子菜单’。主关键字共3个:菜单序号、菜单窗体序号、二级分页菜单序号。‘菜单序号’用于标识不同的主菜单;属于同一主菜单的多个按钮菜单或分页菜单用‘菜单窗体序号’区分,‘菜单序号’与主菜单相同;二级分页菜单用‘二级分页菜单序号’区分,‘菜单序号’与主菜单相同,‘菜单窗体序号’与分页菜单相同。主菜单的菜单窗体序号规定等于I,子菜单的菜单窗体序号规定大于I。应用系统运行时,首先执行系统控制表菜单窗体序号等于I的主菜单记录,然后再执行按钮菜单或分页菜单;若某一‘菜单序号’下无‘菜单窗体序号’等于I的菜单记录,则忽略该‘菜单序号’的全部记录;可以将主菜单的菜单窗体序号设置为小于或等于0,标识主菜单及下属的子菜单暂不使用,若想启用该菜单,将该参数改为I即可;但若删除了某一菜单记录,要想重新启用,则必须重新编辑菜单参数。4.2菜单名参数及使用说明使用的参数:一级菜单名、二级菜单名、三级菜单名、四级菜单名、五级菜单名,及各级菜单排序方法;主菜单名及排序方法;按钮菜单或分页菜单名;二级分页菜单名。菜单必须有主菜单名,前五级菜单可根据需要设置;应用系统运行时,一级菜单、二级菜单、三级菜单、四级菜单、五级菜单、主菜单和分页菜单将根据排序方法自动生成菜单索引树;按钮菜单名自动放在主菜单窗体上方的功能按钮区;二级分页菜单名自动放在分页窗体上方。所有菜单名均用字符串定义;前五级菜单及主菜单索引排序方法用整数定义;分页菜单索引用主关键字菜单窗体序号排序。4.3菜单执行方法,使用4个参数定义:①菜单执行方式,分为三种:I调用开发平台菜单构件包,2第三方软件嵌入式功能调用,3自编可执行程序调用。②执行菜单时使用的菜单构件包名、第三方软件名、自编程序名;它们与菜单执行方式对应。③当菜单使用W_ly_zhu构件包时,可变为W_ltable_lpage构件包执行查询,使用一个参数规定是否需要这样使用,O不,I是;执行时可在查询和编辑之间转换,登录人无编辑权限时,只能使用W_ltable_lpage构件包执行查询。④当值判断,O不,I是;等于I时,轮流值班的非当值人员不允许使用该菜单;等于O时,不做该判断;当某一类人员对某一个菜单都有菜单操作权限,但又需进一步规定只能由轮流值班的当值人员使用菜单时设置该参数。参数①③④用枚举型参数定义,参数②用字符串定义;注:‘调用开发平台菜单构件包’指调用前述开发平台的前18个菜单构件包。4.4子菜单类型,使用两个枚举型参数定义:①子菜单类:0无子菜单,I分页菜单,2按钮菜单,3给主菜单窗体使用表新增不同用途记录的按钮菜单;②子菜单类3新增记录表类:I主表,2子表,3子子表;说明1:分页菜单和按钮菜单使用各自窗体;说明2:子菜单类3使用主菜单窗体,使用的按钮菜单名用于标识不同的用途,点击某一用途对应的按钮菜单名,则给主菜单窗体新增一条该用途规定的记录;如:点击‘正常巡视’,给运行记录增加一条‘正常巡视记录’,点击‘交接班巡视’,给运行记录增加一条‘交接班巡视记录’。4.5菜单使用的数据表及数据表使用方法,使用16类参数定义:1.菜单可使用:主表、子表、子子表、索引表或来源表、并列主表、并列子表、并列子子表中的一种或多种;前5个在主菜单中分别使用对应的表名参数标识,如:‘主表名’标识菜单使用的主表;后3个并列表只需在主菜单中用对应的‘并列表表名’参数标识;2.使用从属关联关系时表之间的关联方法:主表与子表,子表和子子表;3.来源表或索引表关联的表类:0使用全部记录,I主表,2子表,3子子表;4.来源表或索引表与关联表的关联方法;5.来源表或索引表读字段方式:1全部字段,2部分字段;6.来源表或索引表读部分字段时的字段名;7.数据库读表记录方式:1一次读完全部表记录,2—次读部分表记录;注:‘一次读部分表记录’指先读索引字段,用户选索引后,再读满足索引条件记录,以加快读表速度,用于‘索引关联关系’读主表记录,或单一数据表记录较多时使用;8.从属关联关系主子表及主子、子子表表记录过滤顺序:1先过滤主表,再根据关联关系过滤子表,简称‘先主后子’;2先过滤子表,再根据关联关系过滤主表,简称‘先子后主’;注:当使用登录人身份过滤表记录时,若登录人身份对应子表,采用‘先子后主’,若登录人身份对应主表,采用‘先主后子’;9.每个表的索引排序;(使用整数标识索引排序,0,不索引,-1,无表);10.每个表的索引字段;11.每个表的日期索引字段;12.日期字段索引方式,用于规定日期索引字段索引取值方式:1年,2半年,3季度,4月,5半月,6旬,7周,8日、9时分;例:某日期字段的索引方式为‘1,4,8’,则第一层索引按‘年方式’索引(2000年,2001年...),第二层索引按‘年月’方式索引(2000年I月,2000年2月...),第三层索引按‘年月日’方式索引(2000年I月10日,2000年I月11日...);‘半年’方式例:2000年上半年,2000年下半年;‘季度’方式例:2000年第一季度,2000年第二季度;‘半月’方式例:2000年I月上半月,2000年I月下半月;‘旬’方式例:2000年I月上旬,2000年I月中旬;‘周’方式将每周起始与终止日期作为索引值;‘时分’方式在‘日’方式后加时分;13.每个表的表记录的一个或多个排序字段;14.每个表排序字段的排序方法:1升,2降;15.是否进行表记录个数统计及进行统计的表类:0不统计,I主表,2子表,3子子表;注:指定了进行统计的表类后,每选择该表的一级索引,则将该级索引下的记录个数显示在窗体左下角;16.执行菜单时无记录提示信息;注:按过滤条件过滤表记录时,无没有满足条件的记录,则屏幕显示该提示信息;说明:①其中3.5.7.8.12.14.15.标识的参数用枚举型参数定义,9.用整数标识;②1.中的并列表表名参数格式为:{并列主表名序列},{并列子表名序列},{并列子子表名序列};③当菜单窗体为单一数据表带表头多记录窗体时,主表与子表关联方法参数用于定义表头字段。4.6菜单使用的窗体参数:1.窗体可根据需要使用一个或两个数据表,可以是:主表、子表、子子表、来源表、并列主表、并列子表、并列子子表、新主表,新主子表;使用两个参数标识窗体使用的表类:窗体使用的表类1,窗体使用的表类2;注:只有按钮菜单窗体可使用新主表、新主子表;新主表名使用主表名定义,新子表名使用子表名定义,新主子表关联方法使用主表与子表关联方法定义;2.窗体使用的新主表关联表类:0不关联,I主表、2子表、3子子表;3.新主表与关联表的关联方法;4.窗体形式:1单,2多,3多与鼠标双击调用单,4上单下多,5上单下多与鼠标双击调用单,6上单下多与鼠标双击调用按钮菜单窗体,7多与鼠标双击选单,8多带头,9索引选单,10左右窗体;5.窗体是否全屏显示:0不,I是;注:参数值为O时,为正常状态,即屏幕左边为索引树,右边为窗体;参数值为I时,默认为正常状态,点击按钮‘全屏显示’则窗体占据全屏,该按钮变为‘显示索引’,点击按钮‘显示索引’,恢复正常状态,该按钮变为‘全屏显示’;6.多记录窗体记录行数;注:减少行数,可显示字符字段全部字符;7.选单窗体索引级数;注:规定哪一级索引为选单窗体的关键字;8.选单窗体取关键字值的表类;9.选单窗体取关键字值字段名;10.选单窗体字段值列表;注:最后一个字段值为ALL时,对应其余所有字段值,用于关键字值字段的多个不同取值使用同一个窗体情况;11.选单窗体不同值对应的窗体名列表;12.窗体使用并列表时的并列表序号:并列主表序号,并列子表序号;13.数据表日期字段显示格式;14.数据表数值字段显示格式;15.主子表日期共用参数:主表日期字段名,子表日期字段名,子表日期字段类别:1月,2日,3时,4时分;例:主表日期类别为‘年’,值为‘1949’;子表日期类别为‘月’,则子表日期字段只显示‘I月’、‘2月’‘12月’,但子表日期的年份和主表相同;主表日期类别为‘年月’,子表日期类别为‘日’,则子表日期字段只显示1-31日,年月值与主表相同;主表日期类别为‘年月日’,子表日期类别为‘时’或‘时分’,则子表日期字段只显示0-23点或时分,年月日值与主表相同;16.保存窗体的动态链接库名(DLL);17.窗体名;18.鼠标双击记录调用的单记录窗体名;19.窗体使用的打印报表名;前主窗体后双击窗体,逗号隔开,一个不用逗号;说明:其中1.2.4.5.8.及15.的‘子表日期字段类别’用枚举型参数定义,6.7.12.用整数定义,13.14.用组合参数定义;其余参数用字符串或字符串序列定义;13.14.组合参数设计如下:日期型字段显示格式:[表类,{年字段名列表},{年月字段名列表},{年月日字段名列表},{年月日时分字段名列表}]数值型字段显示格式:[表类,小数位数,格式符,{字段名列表}]格式符:0只处理小数位;1带千分位分节符;2浮点数使用科学计数法(小数位数为有效数字);3加币值符号Y;4加币值符号$;5负数显示为红色;35及45为两种合用。4.7菜单的功能按钮设计:功能按钮分为:编辑按钮、后台进程调用按钮、OLE功能调用按钮、按钮菜单窗体调用按钮、菜单操作帮助按钮五种;①编辑按钮及后台进程调用按钮共10个:新增主表记录,删除主表记录,新增子表记录,删除子表记录,新增子子表记录,删除子子表记录,保存,放弃编辑,主表字段值分解自动新增子表记录,后台进程调用。它们使用枚举型可选子参数,由10位01序列标识对应的按钮是否使用;当第一位等于2时,标识主表与子表同时新增记录;并列主表不使用‘新增记录’和‘删除记录’按钮;并列子表、并列子子表使用子表、子子表编辑按钮。10个按钮名用字符串序列定义;按钮名可根据需要重新命名。注1:当输入了主表某一字段值后,点击‘主表字段值分解自动新增子表记录’按钮,则分解该字段输入的字符串序列,给子表自动新增与分解的字符串个数相同的条数记录,并将分解值置入规定的字段;注2:‘后台进程调用’按钮为‘下一步工作进程名称’按钮,如:‘通知’编辑完毕后的‘下发通知’等;点击该按钮,则调用‘菜单后台进程处理方法表’该菜单记录,执行菜单下一进程处理;注3:这10个按钮可根据需要重新命名,执行方法不变。②OLE功能调用按钮共5个:选磁盘文件,文件数据存入数据表大二进制字段,浏览数据表大二进制数据,大二进制数据存为新文件,返回主菜单页面;使用5位枚举型可选子参数标识对应的功能调用按钮是否使用;5个OLE功能调用按钮名用字符串序列定义;按钮名可根据需要重新命名,执行方法不变;OLE功能调用的其它参数:‘OLE功能调用取大二进制数据或取文件名的字段名’,‘OLE类型字段’‘OLE功能调用取文件名的路径’和‘保存大二进制数据的源文件名的字段名’分别用字符串标识。③主菜单调用按钮菜单窗体按钮,及按钮菜单窗体返回主菜单窗体按钮,使用两个参数定义:‘按钮菜单名序列’和‘调用按钮菜单窗体的01序列’;为主菜单时‘调用按钮菜单窗体的01序列’第一位填O;第二位开始填1,对应每一个按钮菜单名,I的个数等于按钮菜单个数;按钮菜单只需01序列的第一位填1,对应返回主菜单按钮名;‘按钮菜单名序列’同时标识其排序方法;按钮菜单不允许某些人使用时,由‘按钮菜单不允许使用的条件’参数标识,该参数是条件表达式;可使用数据表字段条件或公共变量条件,使用公共变量条件时,公共变量用‘管理机构表’或‘人员职责表’对应的字段名标识。④第三方软件嵌入式功能按钮使用按钮菜单定义。⑤‘打开新增记录按钮的索引级数’及‘打开后台进程调用按钮的索引级数用于规定新增记录按钮或后台进程调用按钮允许使用的索引级数,分别用整数定义(当打开的索引级数小于规定的索引级数时,相应按钮处于屏蔽状态)。⑥点击新增记录按钮后屏蔽其它操作的规定,使用组合参数:{主表新增按钮屏蔽类列表},{子表新增按钮屏蔽类列表},{子子表新增按钮屏蔽类列表};组合参数中的屏蔽类使用枚举型参数序列标识:1主表记录新增和删除按钮,2子表记录新增和删除按钮,3子子表记录新增和删除按钮,4索引树,5按钮菜单,6主表记录新增按钮,7子表记录新增按钮,8子子表记录新增按钮,9第九位编辑按钮,10后台进程调用按钮;参数为空时不使用屏蔽。⑦屏蔽后台进程调用按钮的条件:使用组合参数:表类,{条件};表类为‘表类’参数,‘条件’为条件表达式;当条件为真时屏蔽‘后台进程调用’按钮。⑧编辑时是否屏蔽索引,使用枚举型参数标识,O不,I是。⑨‘菜单操作帮助’,参数用文本定义,点击该按钮时屏幕推出帮助信息。⑩‘数据流程图’,参数用文件名标识,点击该按钮时根据文件名推出菜单数据流程图。4.8菜单窗体表记录特殊编辑功能设计共6种特殊编辑功能,可根据需要使用其中的一种或多种;它们分别为:新增记录置公共变量、新增记录复制、调用选择录入置字段值、记录编辑屏蔽、字段编辑屏蔽和字段条件编辑屏蔽。①新增记录置登录人身份公共变量值,使用两组组合参数:组合参数I格式:[表类,并列表序号,{赋值字段名列表},{字段赋值对应的公共变量序号列表},{字段赋的常量值列表}];组合参数2格式:表类,并列表序号,{赋管理对象值字段名,调用管理对象表记录的公共变量类,调用管理对象表记录的管理对象名},{读管理机构表的实体属性字段列表},{写管理机构实体属性值字段列表};`其中组合参数I用于给字段赋登录人身份公共变量值和常量值,公共变量为系统控制表公用枚举型参数;参数值等于0,字段赋常量值;参数值大于0,字段赋公共变量值;当公共变量为:9管理的物的集合名或10管理的人的集合名时,将对应集合的元素作为备选值,使用和选择录入相同的方法置字段值。例:赋值字段名列表为‘bdzm,xm,lbl,lb2’,字段赋值对应的公共变量序号列表为‘2,3,0,0’,字段赋的常量值列表为‘班组计划,停电工作’,则新增记录时,自动将登录人的‘班组名’赋给字段bdzm,将登录人‘姓名’赋给字段xm,将常量‘班组计划’赋给字段Ibl,将常量‘停电工作’赋给字段lb2;组合参数2有两种用法,第一用于给字段赋管理对象值,取值表为‘管理对象表‘,根据‘调用管理对象表记录的公共变量类’和‘调用管理对象表记录的管理对象名’过滤该表记录,读取该记录的管理对象值作为备选值,使用和选择录入相同的方法给写值字段赋值;第二用于给字段赋管理机构实体属性值,取值表为‘管理机构表’,根据登录人在管理机构表的对应记录,读取实体属性字段值,赋给写值字段。管理机构表实体属性字段可以根据需要设置,如:变电站电压等级,班组人数等。②新增记录复制,使用四个参数:表记录复制方法、按条件记录复制方法、记录复制时的读表字段、记录复制时的写表字段,说明如下:表记录复制方法,共16种,用枚举型参数标识执行记录复制的源表和目标表,及复制的记录:0不复制,I主表当前记录复制到主表,2子表当前记录复制到子表,3子子表当前记录复制到子子表,4主表当前记录复制到子表,5子表当前记录复制到子子表,6主子表窗体子表全部记录复制到子表,7子表和子子表窗体子子表全部记录复制到子子表,8主表\子表\子子表满足条件记录本表复制,9主表字段分解值生成子表多记录,10来源表记录复制,11主表当前记录复制到按钮菜单窗体表,12子表当前记录复制到按钮菜单窗体表,13子子表当前记录复制到按钮菜单窗体表,14主表当前记录与来源表当前记录复制到主表,44主表当前记录与来源表当前记录复制到子表,41来源表全部记录复制到主表;按条件记录复制,只用于表记录复制方法8,使用组合参数,格式:记录复制表类,{求最大最小值的字段名},求最大最小值的方法,过滤记录的公共变量,{过滤记录的条件表达式};其中子参数‘求最大最小值的字段名’可以是日期型或数值型字段,‘求最大最小值的方法’,用枚举型参数标识:1最小,2最大;‘过滤记录的公共变量’,用枚举型参数标识:0不使用,I部门号,2班组号,3操作人姓名,分别对应表记录的规范字段:ejbmbhl,bzbh,operator;记录复制时的读表字段列表:用字符串序列标识;记录复制时的写表字段列表:用字符串序列标识;注1:复制方法9对应编辑按钮第九位:‘主表字段值分解自动新增子表记录’,主表取分解值字段名由读表字段定义;分解值写入的字段由写表字段定义;注2:复制方法10复制记录的来源表和目标表及复制的记录由菜单使用的菜单构件包的确定,只需定义读表字段与写表字段;注3:读表字段与写表字段对应。③是否使用选择录入置字段值;用数字01标识,等于I时调用选择录入,使用选择录入的字段名和选择录入方法由‘选择录入方法表’定义。④记录编辑屏蔽,使用四个参数:屏蔽方式,用枚举型参数标识:1记录编辑屏蔽,2流程控制页面编辑屏蔽,3记录分组编辑屏蔽;方式1、3屏蔽编辑表类及方式1、2条件表类(方式I二者相同)编辑屏蔽条件:用条件表达式标识;不允许编辑的提示信息:用文本标识。注1:记录编辑屏蔽:对满足‘编辑屏蔽条件’的记录执行记录编辑屏蔽;注2:流程控制页面编辑屏蔽:当最后一级索引得到的单记录满足‘编辑屏蔽条件’时,对主菜单页面及全部按钮菜单页面屏蔽编辑;注3:记录分组编辑屏蔽:有的记录允许一些人编辑,而另一些人只能查询,称为‘记录分组编辑屏蔽’;例:专业班组录入设备台帐时,只能编辑本专业的台帐记录,但可以查询其它专业输入的台帐记录;分组编辑可编辑的记录按‘表记录过滤’时读入的‘管理对象表分组编辑条件’执行。⑤字段编辑屏蔽,使用组合参数,格式:[表类,屏蔽类,{字段名序列}];屏蔽类用枚举型参数标识:I全部字段不允许编辑,2‘字段名序列’为允许编辑字段列表,3‘字段名序列’为不允许编辑字段列表,4‘字段名序列’为带表头多记录窗体允许编辑的表头字段列表;表类使用枚举型参数,与菜单窗体使用的某一个表的表类相同。注:带表头多记录窗体当编辑了表头字段后,自动用表头字段值替换多记录窗体中的全部记录的这些字段值。⑥字段条件编辑屏蔽,使用组合参数,格式:[条件表类,并列条件表序号,{条件},屏蔽字段编辑表类,{屏蔽字段列表}];条件为条件表达式;屏蔽字段列表用字符串序列标识;并列条件表序号为整数参数;两个表类使用枚举型参数;注:‘条件表类’和‘屏蔽字段编辑表类’可以是同一数据表,也可以是不同数据表,当条件为真时屏蔽字段编辑。4.9编辑保存时必录字段判断与记录唯一性判断①必录字段判断参数格式,分为无条件和带条件两种:无条件必录字段判断,判断类等于I或2,使用组合参数,格式:[表类,判断类,执行类,{执行类2的控制选项或执行类I的生成备忘录关键字选项},{必录字段列表},{必录字段名标注列表}]带条件必录字段判断,判断类等于4,使用组合参数,格式:[表类,判断类,{必录字段列表},{必录字段名标注列表},条件表类,并列条件表序号,{条件}];参数说明:表类、条件表类为‘表类’参数;条件为条件表达式;并列条件表序号使用整数标识;执行类和判断类使用下述枚举型参数;其余参数使用字符串序列标识;执行类:0不保存记录,I保存记录,2保存记录但不执行流程控制;判断类:1窗体当前记录无条件必录字段,2窗体全部记录无条件必录字段,4窗体当前记录条件判断必录字段;②必录字段判断功能说明:必录字段判断分为‘无条件必录字段’和‘条件必录字段’两种,后者当满足条件时进行判断,前者无条件执行判断;对数据表的索引字段,规定为必录字段;若这些字段值为null,则根据‘必录字段名标注’生成并给出提示信息,不保存所编辑的记录;对非索引字段,若这些字段值为null,但允许用户下一次录入,则根据‘必录字段名标注’生成并给出提示信息,保存所编辑的记录,并根据‘生成备忘录关键字’生成针对登录人的备忘录,下一次登录系统后自动显示登录人的备忘录;对流程控制要求的必录字段,若这些字段值为null,则根据‘必录字段名标注’生成并给出提示信息,保存所编辑的记录,但不执行‘控制选项’规定的流程处理。③表记录唯一性或菜单窗体记录唯一性判断,使用组合参数,格式:[表类,判断类,{记录唯一性判断关键字字段名列表},{字段标注列表}];判断类,使用枚举型参数:1菜单窗体全部记录,2表全部记录;子参数‘记录唯一性判断关键字字段列表’、‘字段名标注列表’,使用字符串序列标识;子参数‘表类’等于4时,用于使用来源表新增记录重复判断,字段标注为提示信息,字段列表为新增记录目标表字段名;不等于4时,按表类执行。④记录唯一性判断说明:若输入的记录判断为不唯一,则根据‘字段名标注列表’生成并给出提示信息,不保存所编辑的记录。4.10按时段统计汇总参数设计方法对指定的单一数据表记录按随机输入的时段执行过滤,生成子表记录,并执行固定项目汇总,统计时段及汇总结果保存在主表中;统计表名由‘来源表表名’参数定义;使用4个参数:①取时段方式,共4种:1一个字段标识时段区间,2两个字段标识时段区间,3小于等于输入的时间值,4大于等于输入的时间值;②主表输入时段的日期字段名;③来源表按时段汇总的日期字段名;④主表输入时段的取值类别,共4种:I年,2年月,3年月日,4年月日时分;参数①和④用枚举型参数标识,其余参数用字符串或字符串序列标识;功能说明见‘按时段统计汇总构件包’设计方法。4.11随机分类查询、随机分类汇总设计方法对指定的单一数据表记录执行随机分类汇总或查询,表名由来源表表名参数定义;查询结果生成主表记录;共7个参数:①汇总分类字段或查询条件字段;②来源表汇总字段或查询时从来源表直接取值字段;③来源表汇总或取值字段对应的主表写值字段;④分类或查询条件字段名标注;⑤汇总字段的汇总方法,共7种:1求记录个数,2求和,3求平均,4求最大值,5求最小值,6求方差,7取原值;⑥来源表日期字段名;⑦来源表日期字段取值类别,共4种:I年,2年月,3年月日,4年月日时分;其中参数⑤和⑦用枚举型参数或枚举型参数序列标识,其余参数用字符串或字符串序列标识;随机分类查询不使用参数⑤;功能说明见‘随机分类查询构件包’和‘随机分类汇总构件包’设计方法。4.12期末实体状态查询设计方法对指定的来源表记录进行期末实体状态查询,处理参数共三个:①实体分类字段:使用字符串序列定义;②实体状态变化的时间字段名:由来源表日期索引字段标识;③期末日期类别由来源表日期索引字段的索引方式标识;功能说明:用户点击来源表日期字段最后一级索引后,根据实体分类字段和期末日期类别生成主表期末实体状态查询记录;‘索引方式’和‘期末日期类别’的对应关系见‘期末实体状态查询构件包’设计方法。4.13查找随机选中实体相关表记录设计方法功能说明:对单一主表用户随机选中某一条记录,按系统控制表规定的实体定义字段取值及比较条件过滤出选中实体的相关记录;使用一个主表与一个来源表;选记录使用的表用来源表定义,得到的相关记录用主表保存;一个窗体,窗体上边备选多记录,窗体下边与选中记录相关的多记录;处理参数共两个:①实体定义字段:使用来源表与主表关联字段定义;②比较条件:条件表达式;4.14调用后台进程处理的参数设计方法:调用‘后台进程处理’可以是主菜单或按钮菜单;设计方法:将系统控制主表的两个主关键字值(菜单序号、菜单窗体序号)、‘登录人执行的菜单功能按钮序号’和‘登录人选择的流程控制选项序号’作为调用参数;后两个参数的参数值为多个时使用整数序列标识,执行时分别调用‘菜单后台进程处理方法表’的不同记录;参数设计如下:调用后台进程处理的功能按钮序号:使用枚举型参数:0不,1,2,3分别为主表,子表,子子表新增记录按钮;4,5,6分别为主表,子表,子子表新增记录时的保存按钮;7主表,子表都有记录时的保存按钮;8主表,子表,子子表都有记录时的保存按钮;9保存按钮;10后台进程调用按钮;11,12,13分别为主表,子表,子子表删除记录按钮;流程控制选项列表:当下一步工作调用不同的后台进程时,使用列表方式供登录人选择;字符串参数;例:某级管理机构负责人对下一级上报的报表审核时有3个控制选项,列表如下:1返回重新填写;2审核通过;3暂不确定。控制选项:登录人选择的‘流程控制选项列表’的选项序号;如上述‘报表审核’,当登录人选择:‘I返回重新填写’时,将I作为调用参数;选择:‘2审核通过’时,将2作为调用参数;.‘用户点击编辑按钮新增、删除、保存时是否保存原当前记录值为后台进程处理使用’参数,作为执行数据表写操作时,是否使用‘原当前记录’字段值的判断与执行参数;该参数使用两位整数标识:第一位,编辑按钮:I新增2删除3保存;第二位,表类:I主表2子表3子子表;为空时不保存原当前记录字段值,不为空时,在用户编辑前保存当前记录值,并在‘菜单后台进程处理方法表’中用前缀1^0_字段名标识使用的原当前记录字段值;参数值为多个时用逗号隔开。4.15生成Web查询系统参数设计方法对需执行Web查询的菜单编辑了Web查询页面后,可自动生成Web查询系统;参数设计:.Web查询页面名:字符串参数,不为空时,将菜单作为Web查询菜单;执行时根据菜单定义参数,菜单使用的数据表参数,表索引参数,Web查询页面名参数,动态生成Web查询菜单与Web查询页面。4.16‘系统控制主表’的编辑界面见图2-图6。5、表记录过滤方法表设计①主关键字共5个:菜单序号、菜单窗体序号、二级分页菜单序号、过滤表类和过滤记录号;其中前三个与系统控制主表标识菜单的关键字相同,执行时按关键字值相等的原则调用;‘过滤表类’标识对菜单使用的那一个表执行过滤;‘过滤记录号’为区分不同的系统登录人使用该方法表的不同记录设置。执行表记录过滤时,首先确定登录人使用的该方法表记录,然后根据对应记录参数值对菜单数据表记录进行过滤;某一登录人无对应的该方法表记录时,使用菜单数据表的全部记录。②使用登录人的下述2个身份条件共6个参数确定任一系统登录人使用的该方法表记录:条件1:身份公共变量类1,身份公共变量值列表1,判断方法I;条件2:身份公共变量类2,身份公共变量值列表2,判断方法2;两个条件的‘身份公共变量类’为枚举型参数:1部门类,2部门名,3班站类,4班站名,5人员职责,6姓名,O任一登录人;条件2的身份公共变量类为O时,表示只使用条件1,不为O时,条件I和条件2为and关系;两个条件的‘判断方法’为枚举型参数:0不满足条件为真,I满足条件为真。例:若身份公共变量类I等于3,身份公共变量值列表I为‘班组,变电站’,判断方法I等于I;则某一登录人的班站类是‘班组’或‘变电站’时使用该记录的过滤方法过滤表记录;若判断方法I等于0,则某一登录人的班站类不是‘班组’或‘变电站’时,使用该记录的过滤方法过滤表记录;③表记录过滤方法:第一:按公共变量与对应的数据表字段值相等或包含关系进行过滤;第二:按管理对象值与对应的数据表字段值包含关系进行过滤;第三:上述两项的16种过滤方法用下述16位公共变量01参数序列描述,某一位等于1,执行相应的过滤,等于0,不执行相应的过滤;过滤公共变量16位01序列:1部门编号,2班组编号,3运行记录序号,4部门名,5班组名,6姓名,7值班班次,8二级部门名,9管理的物的集合名,10管理的人的集合名,11部门类,12班组类,13单位名,14管理对象值过滤,15管理对象表达式过滤,16人员编号;公共变量中的部门编号、班组编号、人员编号自动对应数据表的ejbmbhl、bzbh、operator字段;其余公共变量值和管理对象值对应的数据表字段由参数‘公共变量对应的数据表字段名’指定;公共变量中的‘9管理的物的集合名’,‘10管理的人的集合名’按包含关系进行过滤,其余按相等关系进行过滤;公共变量中的‘14管理对象值过滤’,‘15管理对象表达式过滤’,根据参数‘调用管理对象值的公共变量类’、‘调用管理对象值的管理对象名’或‘调用管理对象表达式的公共变量类’、‘调用管理对象表达式的管理对象名’过滤‘管理对象表’记录,得到对应的‘管理对象值’或‘管理对象表达式’;‘调用管理对象值和表达式的公共变量类’使用枚举型参数:I部门名,2二级部门,3班组名,4班组类,5姓名,6人员职责;‘管理对象表达式类’等于2,公共变量中‘15管理对象表达式过滤’的表达式为执行的过滤条件;等于3时,公共变量中‘15管理对象表达式过滤’的表达式为执行‘记录编辑屏蔽’中的‘记录分组编辑屏蔽’的条件表达式;第四:由参数‘过滤的SQL条件表达式’,指定过滤执行的SQL条件;该参数为条件表达式。④‘表记录过滤方法表’编辑界面见图11。6、选择录入方法表设计对表字段值录入采用‘选择录入’方法时,选择录入的备选值可以是‘非菜单窗体使用表’表记录的某一字段值或‘当前菜单窗体使用表’表记录的某一字段值;登录人可选择一个或多个备选值写入编辑字段。使用该方法表同一方法进行选择录入的字段可以是一个或多个,用‘写值字段列表’标识;不同字段执行不同选择录入方法时分别使用该方法表的不同记录。参数类型:参数为表类时,均使用枚举型参数;为条件时,使用条件表达式参数;为字段名时,使用字符串或字符串序列参数;并列表序号使用整数参数。①主关键字共3个:菜单序号、菜单窗体序号和‘选择录入记录号’,其中前两个和系统控制主表标识菜单的关键字相同,执行时按关键字值相等的原则调用;‘选择录入记录号’为区分同一菜单窗体,不同‘写值字段列表’采用不同选择录入方法时,使用该方法表不同的记录设置。②辅助关键字共2个:编辑表类、编辑并列表序号,标识对菜单使用的那一个表执行选择录入。③表字段的选择录入方法执行参数:参数:‘写值字段列表’,标识对那些字段按当前记录规定的方法进行选择录入,可以是一个字段,或字段组合(用逗号隔开的字段名序列);参数:‘条件表类’和‘调用选择录入条件’,判断是否执行选择录入;条件为真时执行,为假时不执行。④过滤备选值数据表记录使用的参数:由下述参数定义了3种过滤方法,用于过滤选择录入使用的备选值数据表记录;备选值数据表名;菜单窗体提前必录字段表类;提前必录字段;提前必录字段对应的备选值表字段;过滤备选值数据表记录的公共变量和对应的备选值数据表字段名;备选值数据表记录过滤条件表达式;说明:其中‘按公共变量过滤’和‘按条件过滤’与‘表记录过滤方法表’设计方法相同;并同时使用菜单窗体‘提前必录字段’和‘对应的备选值表字段’值相等关系作为备选值表记录过滤条件;⑤根据参数:‘备选值字段名’和‘读备选值方式’确定选择录入的备选值;读备选值方式使用枚举型参数:I一个记录的备选值字段只有一个备选值,2一个记录的备选值字段有多个备选值。⑥根据‘取选择值方式’参数确定执行选择录入的方法:一次选择I个备选值写入编辑字段或一次选择多个备选值写入编辑字段;‘取选择值方式’使用枚举型参数:1选择I个备选值,2选择多个备选值。⑦根据下述3类参数,确定执行选择录入后,执行的其它写表操作:.‘备选值表取其它值字段名列表’、‘编辑表对应写值字段名列表’;.‘将选择结果的分解值写入的字段名’;.‘置选择个数的表类’、‘置选择个数字段名’;执行从备选值表其它字段取值或将选择结果的分解值,写入编辑表对应字段,及置选择个数的写操作。⑧执行选择录入的其它规定根据‘密码确认’参数值确定选择录入是否执行密码验证;根据‘选择值重复判断类’参数进行选择值重复判断,重复时给出出错信息;根据‘是否允许编辑’参数确定选择录入时是否允许进行键盘编辑录入;根据参数:‘取选择值方式=2时是否允许输入新的选项’,确定选择录入时是否可使用键盘编辑追加备选值。注:选择值重复判断类使用枚举型参数:0不,I当前窗体全部记录,2数据表全部记录;其它3个参数使用枚举型参数:0不,I是。⑨‘选择录入方法表’编辑界面见图10。7、菜单后台进程处理方法表设计开发平台对菜单构件包应实现的前台进程处理,由系统控制主表和系统辅助控制表参数定义,对菜单应完成的后台进程处理,由‘菜单后台进程处理方法表’参数定义。开发平台将数据库应用系统菜单的后台进程处理方法分解为新增表记录、修改表记录、删除表记录三类数据表写方式,并设计了每一种写方式的执行参数,执行时根据这些参数动态生成SQL语句,完成数据表写操作,实现后台进程处理的功能要求;对于不能使用动态SQL语句实现的功能,通过调用编写的‘数据库过程’代码实现。设计时将用户业务数据表分为两大类:取值表和写值表,取值表为动态SQL语句的数据来源,简称‘读表’;写值表为执行写操作的目标表,简称‘写表’;取值表和写值表可以是菜单使用表,也可以不是菜单使用表,后者简称‘新表’。(I)主关键字共6个:菜单序号、菜单窗体序号、调用的流程控制选项、调用的功能按钮序号、写方式、执行序号;它们均用整数描述,其中前二个和系统控制主表标识菜单的关键字相同;执行时根据‘菜单序号’、‘菜单窗体序号’、‘流程控制选项’、‘功能按钮序号’过滤该方法表记录,然后对过滤出的记录按‘执行序号’顺序执行;‘功能按钮序号’对应系统控制主表的菜单功能按钮的枚举序号;‘流程控制选项’对应系统控制主表的‘流程控制选项列表’的选项序号;写方式分为6种,使用枚举型参数:0判断是否退出调用,I新增记录,2修改记录,3删除记录,4有记录修改,无记录新增,5调用数据库过程;给字段赋值的方法分为5种:‘赋常量’、‘无条件赋表达式值’、‘条件赋表达式值’、‘将另一指定的数据表作为读表执行写操作’、‘sql语句赋值’;这5种方法可根据需要使用其中的一种或多种;写方式等于0,用于判断当前‘执行序号’以后的该方法表记录是否执行;写方式等于1,用于新增‘写表’记录,首先生成‘写表’记录主关键字与用户业务关键字,然后用给字段赋值的5种方法给其它字段赋值;写方式等于2,用于修改‘写表’记录,首先根据‘修改或删除写操作执行方法’确定执行修改操作的记录,然后用给字段赋值的5种方法修改字段值;写方式等于3,用于删除‘写表’记录,根据‘修改或删除写操作执行方法’确定执行删除操作的记录,再删除‘写表’记录;写方式等于4,首先判断‘写表’有无满足条件记录,有满足条件记录时执行修改记录操作,无满足条件记录时执行新增记录操作;这样,当有满足条件记录时,可不作删除记录操作;写方式等于5,用于不能用动态sql语句实现的写操作;执行时,调用编写的‘数据库过程’实现写操作。(2)‘后台进程调用’是否执行的用户干预为防止用户误点了‘后台进程调用按钮’,但暂时还不需要执行下一步进程处理的使用要求,设置‘进程调用是否执行的提示信息’参数;执行时,若调用的功能按钮序号等于10,且该参数值不为空,则推出该提示信息,接收键盘输入,输入Y,执行写操作,输入N,退出后台进程调用。(3)当控制选项=99时,执行‘流程控制全部选项修改字段值统一处理’,用以减少‘菜单后台进程处理方法表’记录和便于参数编辑,与6种写方式的执行参数无关,使用组合参数,格式:[{值类,表类,并列表序号,写方式,写值字段名},{流程控制选项列表},{流程控制选项对应的写值列表}];每一写值字段名的写方法用[]括住,多个用逗号隔开;使用的枚举型参数如下:表类:‘表类’参数;写方式:1窗体当前记录,2窗体全部记录;值类:0常量,4公共变量;注:值类为公共变量时,用公共变量的枚举序号标识相应的公共变量值;(4)写操作使用的‘读表’、‘写表’及读表记录与写表记录共6个参数:读表类;写表类;读记录方式:1窗体当前记录,2窗体全部记录,3将子表、子子表全部记录读入新结果集使用,4使用新结果集全部记录;注:当窗体只有子表从属于主表或子子表从属于子表的部分记录,但需对全部从属记录执行写操作时,使用方式3或4;读表的并列表序号;写表的并列表序号;写新表名(写非菜单使用表时的数据表名);注:读表类、写表类为‘表类’参数;读记录方式为枚举型参数;两个并列表序号为整数参数;写新表名为字符串参数。(5)判断该方法表某一记录规定的写操作是否执行及写操作执行次数使用两组条件参数‘执行的读表条件’、‘执行的日期条件’和一个‘写操作执行次数’参数定义;执行时根据满足‘执行的读表条件’记录条数确定‘写操作执行次数’;执行的读表条件:为条件表达式;为空时默认为无条件;写操作执行次数,为枚举型参数:0每一记录各执行一次,I每一满足条件记录各执行一次,2多记录其一满足条件只执行一次,3多记录全部满足条件只执行一次;执行的日期条件使用4个参数:日期字段表类、日期字段并列表序号、日期字段名、日期判断方式;其中‘日期字段表类’为‘表类’参数;‘日期字段并列表序号’为整数型参数;‘日期字段名’为字符串参数;‘日期判断方式’为枚举型参数:1每月最后一天,2每月第一天,3每季度最后一天,4每季度第一天,5每半年最后一天,6每半年第一天,7每年最后一天,8每年第一天,9周一,10周日;写方式=O时,不满足执行条件的提示信息,为字符串参数;注1:‘写方式’等于0,用于判断当前执行序号以后的方法表记录是否执行;当不满足‘执行的读表条件’时,不执行当前执行序号以后的该方法表记录规定的写操作,并给出不允许执行的提示信息;否则继续执行后续写操作;注2:若‘写方式’不等于0,若不满足‘执行的读表条件’,则不执行方法表该记录规定的写操作;否则,按‘写操作执行次数’执行写操作;注3:若‘写方式’不等于0,且满足‘执行的读表条件’,但不满足‘执行的日期条件’时,不执行方法表该记录规定的写操作;注4:‘日期字段表类’等于O时不判断日期条件。(6)修改或删除写操作执行方法,共5个参数:写值表修改或删除的记录范围及执行方法:1窗体当前记录,2窗体或新表全部记录,及读写表均为多记录且记录个数相等时的一对一修改的1*N次循环方式,3读表某一字段保存的写表记录xuhao记录,4读写表均为多记录时的M*N次循环方式,5:forI=ITON循环方式;写表结果集为多记录时,读、写表关联字段;读表保存修改或删除记录xuhao的字段名,只‘执行方法3’使用;删除与修改记录时写表记录应满足的条件或新表记录过滤条件;读表与写表字段比较条件,使用两个参数:①条件格式:0无条件,I读字段前写字段后,2写字段前读字段后;②条件:使用‘>’,‘<’,‘=’,‘in’作为比较运算符,连接‘读表’和‘写表’字段,组成条件比较式;注:‘写值表修改或删除记录范围及执行方法’、‘条件格式’使用枚举型参数;‘读表保存修改或删除记录xuhao的字段名’使用整数序列;两个条件参数使用条件表达式;其它参数使用字符串或字符串序列;说明1:‘窗体当前记录’和‘窗体或新表全部记录’用于显式指定执行写操作的写表记录;说明2:‘一对一修改’的1*N次循环方式用于‘读表’和‘写表’均有N条记录,读‘读表’一条记录,写‘写表’顺序对应的一条记录;说明3:‘读表某一字段保存的写表记录xuhao记录’:用于写‘写表’固定的一个或多个xuhao记录;说明4:‘读写表均为多记录时的M*N次循环方式’:用于顺序执行‘读表’全部M个记录:读‘读表’一条记录,根据‘读写表关联关系’、‘读表与写表字段比较条件’及‘写表条件’,判断‘写表’N个记录中的每一条记录,条件满足时执行写操作;说明5:forI=ITON循环方式:用于按for循环方式执行写操作,循环参数填写于‘读表与写表字段比较条件’中;参数格式:循环变量使用的字段名,循环初值,循环终值,循环增量,+/-;循环变量必须是整数型字段,循环初值可使用该字段当前记录值、LA0_FIELD(编辑前的该字段当前记录值)或MIN(数据表该字段最小值);循环终值可使用MAX(数据表该字段最大值);循环增量为正整数或负整数;+/-:用于指定修改循环变量方法。(7)写方式为新增记录方式时,每执行一次写操作时写值表新增记录条数、新增记录的主关键字和用户业务关键字生成方法的定义参数:新增记录方式:1每执行一次写操作新增一条记录;2每执行一次写操作根据分解值新增多条记录;每执行一次写操作新增多条记录执行方式:1常量列表分解,2取值表字段分解,3使用sql语句取其它表多条记录的某一字段值;新增记录主键生成方式:1取值表xuaho,2取值表xuaho,xuahol,3取值表xuaho、xuahol、xuhao2,4取值表maxxuaho,5写值表maxxuaho,6运行工作记录xuhao,0当前写值子表xuhao或当前写值子子表xuaho、xuahol;新增记录写关键字个数;(等于1,只写xuaho,等于2,写xuaho,xuahol,等于3,写xuaho、xuahol、xuhao2)写关键字个数大于取个数时最后一个关键字赋值方法:0置O;1分解序号;2写子表:最大xuhaoI;写子子表:最大xuhao2;分解的常量列表;.‘读表’取分解值字段名;.‘写表’写分解值的字段名;`取‘读表’一个字段多个记录值的sql语句;注1:使用的枚举型参数:‘新增记录方式’、‘新增记录主键生成方式’、‘写关键字个数大于取个数时最后一个关键字赋值方法’、‘新增多条记录执行方式’;注2:写关键字个数大于取个数时中间的关键字置O;注3:3种‘新增多条记录执行方式’可单独使用,也可组合使用,用一位、两位或三位整数标识;常量列表分解或取值表字段分解,一个分解值新增一条记录;方式3新增记录条数与满足‘sql语句取值条件’的表记录条数相同;(8)字段赋常量值,使用2个参数:‘赋常量值字段名序列’、‘赋的常量值序列’,均使用字符串序列定义;注1:字符串常量不加引号,字符串包含逗号时,用{}括住;注2:日期常量使用四种固定的日期格式:YYYY;YYYY-MM;YYYY-MM-DD;YYYY-MM-DDhh:mm注3:赋常量值字段名和赋的常量值——对应;(9)字段使用表达式赋值时的‘表达式类型’,使用枚举型参数标识:I数值表达式,2字符表达式,3统计计算表达式,4赋公共变量值,5多记录取一个字段值用逗号连接,6读表给写表字段拷贝,7写表给读表字段拷贝,8日期表达式,9多记录一个字段取不重复值用逗号连接,O常量;注1:赋公共变量值时,参数值用公共变量序号标识;注2:执行时首先根据赋值的表达式类型计算表达式值,然后执行赋值或字段值拷贝。(10)无条件多字段表达式赋值使用3个参数:‘赋值的表达式类列表’、‘写值字段名列表’、‘赋值表达式列表’;注1:表达式类不使用O:赋常量;注2:每个表达式用{}括住,多个用逗号隔开;注3:‘赋值的表达式类列表’为枚举参数序列;‘写值字段名列表’为字符串序列;每一赋值表达式为上述‘表达式类型’中的一种;赋值时对应。(11)条件多字段表达式赋值使用5个参数:‘赋值的表达式类列表’、‘条件类’、‘条件列表’、‘写值字段名列表’、‘赋值表达式列表’;注1:‘条件类’,使用枚举型参数:1读表字段条件,2公共变量条件;‘条件’为条件表达式,公共变量使用管理机构表对应的字段名;其余三个参数定义与‘无条件多字段表达式赋值’相同;注2:每个条件的写值字段名列表及条件表达式用{}括住,{}个数相同,一一对应,多个用逗号隔开;每个赋值表达式用H括住,且和赋值表达式类及写值字段名一一对应。(12)将另一指定的数据表作为‘读表’,简称‘读表2’,执行写操作使用5个参数:‘读表类2’、‘读记录方式2’、‘写值字段名’、‘赋值表达式类列表’、‘赋值表达式列表’;注1:‘读表类2’为‘表类’参数;‘读记录方式2’和④中读记录方式规定相同;其余三个参数定义与‘无条件多字段表达式赋值’相同;注2:每个赋值表达式用{}括住,且和‘赋值表达式类’及‘写值字段名’一一对应。(13)sql语句赋值使用组合参数::{追加xuhao条件的表类},{写值字段名列表},{sql语句},{取值条件},Isql语句序号}注1:‘取值条件’为条件表达式;‘sql语句序号’用于查错时使用;‘追加xuhao条件的表类’为取‘读表’当前记录时指定使用菜单窗体哪一个数据表,与‘表类’定义方法相同。注2:‘sql语句’与数据库sql语句格式相同;多条sql语句用&&隔开;注3:‘sql语句赋值’参数用字符串定义。(14)调用数据库过程使用组合参数:{过程名},{传递给过程的主表字段列表},{传递给过程的子表字段列表},{传递给过程的子子表字段列表},{传递给过程的来源表字段列表},{公共变量序号},{调用的序号参数};注1:‘调用的序号参数’用于区分多个菜单或‘同一菜单该方法表的不同记录’使用同一个‘数据库过程’时的不同处理方法的调用参数;注2:除‘过程名’参数不能为空外,其余参数均根据需要设置;注3:‘调用数据库过程’参数用字符串定义。(15)后台进程处理执行完毕提示信息参数当每个控制选项〈>99的‘最大执行序号’写操作执行完毕后,或控制选项等于99的写操作执行完毕后,给出该提示信息;它与‘写方式=O时,不允许执行的提示信息’公用一个参数。(16)‘菜单后台进程处理方法表’编辑界面见图7-图9。8、菜单操作权限设置表设计对菜单使用的数据表,当不同的系统登录人登录应用系统时,对菜单的操作权限由该控制表参数定义,共有六个参数:菜单序号、班站类、权限定义类、人员职责或人员编号、菜单读权限、菜单写权限;①使用的参数:菜单序号:与系统控制主表菜单序号相同;班站类:与管理机构表班站类相同;权限定义类,枚举型参数:1按人员职责定义,2按人员编号定义;人员职责或人员编号:使用菜单操作权限的人员职责或人员编号列表;菜单读权限,枚举型参数:0无,I有;菜单写权限,枚举型参数:0:无,I有;②菜单操作权限由开发平台相应的系统功能按钮使用‘菜单操作权限设置界面’设置;③‘菜单操作权限设置界面’见图12。9、管理对象表设计①数据库应用系统管理集合及管理层次分析:数据库应用系统任一登录人的管理集合分为三大类:物的集合、人的集合、人与物的集合;物的集合:如仓库、变电站、车间,存放的物资或使用的设备;人的集合:如班组、部门、仓库、变电站、车间,下辖的人员;人与物的集合:如仓库、变电站、车间,既有下辖的人员,又有存放的物资或使用的设备;管理层次分为两类:‘垂直管理层次’和‘交叉管理层次’;对于垂直管理层次,如单位一部门一班组一人员,使用‘管理机构表’和‘人员表’,以单位名、部门名、班组名、人员名(人员编号)、部门号、班组号标识管理集合;对于交叉管理层次,即业务职责管辖范围,如部门中人员甲管理的班组、人员乙管理的班组;人员甲管理的仓库、人员乙管理的仓库,使用‘管理对象表’标识管理集合。②对菜单使用的数据表,当不同的系统登录人使用同一数据表的不同表记录时,除了使用‘管理机构表’规定的垂直管理范围(单位一部门一班组一人员)对数据表记录进行过滤外,还可以按登录人的业务职责管辖范围对数据表记录进行过滤或执行记录编辑屏蔽,登录人的业务职责管辖范围保存在‘管理对象表’中。③管理对象表共有七个参数:‘序号’、‘管理对象名’、‘使用管理对象的公共变量类’、‘使用管理对象的公共变量值’、‘公共变量类为姓名时的人员编号’、‘管理对象使用方法’、‘业务管辖范围值或业务管辖范围表达式’;‘序号’为主关键字,整数型;‘管理对象使用方法’为枚举型参数:1过滤记录的值列表;2过滤记录的条件表达式;3分组编辑条件表达式。④执行时按登录人的‘公共变量类’、‘公共变量值’、‘人员编号’及需使用的‘管理对象名’过滤管理对象表记录,再根据管理对象使用类、业务管辖范围值或表达式过滤数据表记录或执行记录分组编辑屏蔽。⑤‘管理对象表’编辑界面见图13。10、数据表记录导出导入方法表设计单一主表使用菜单构件包w_ltable_lpage时,可将表记录导出为Excel表数据,也可将Excel表数据导入到单一主表;数据表导入和导出的字段名保存在‘数据表记录导出导入方法表’中;执行时由开发平台相应的系统功能按钮调用。该方法表有3个参数:‘数据表名’,‘导入和导出的字段名序列’,‘导入和导出的字段名标注序列’;字段名和字段名标注一一对应。执行时按系统控制主表的‘菜单使用的主表名’参数过滤该方法表记录;然后将字段名标注按顺序纵向排列在屏幕左边,鼠标双击任一字段或选择全部字段,则选中字段移动到屏幕右边作为导出或导入的字段名,纵向排列顺序标识字段排序方法;鼠标双击屏幕右边任一字段,返回屏幕左边;也可修改字段排序方法;选好需导出或导入的字段后,点击系统‘导出’或‘导入,功能按钮,并输入Excel表文件名,则执行对应的导出或导入工作。‘数据表记录导出导入方法表’编辑界面见图14。11、数据表主关键字最大值表设计开发平台对应用系统所有的菜单数据表的主键均设置为整数型,并使用‘数据表主关键字最大值表’记录所有用户数据表‘主表关键字xuhao最大值’。参数设计:序号,数据表名,主键最大值;‘序号’,‘主键最大值’为整型参数;‘数据表名’为字符串参数;当新增表记录时,自动置数据表的主关键字值为对应数据表‘xuhao最大值+1’,然后更新‘数据表主关键字最大值表’该数据表‘xuhao最大值’,从而满足了数据表记录主键值的唯一性要求;菜单数据表关键字‘xuhao’、‘xuhaol’、‘xuhao2’在菜单窗体中均不可见,数据表记录的关键字值均由开发平台自动设置;数据表记录的唯一性由开发平台根据系统控制主表‘记录唯一性判断关键字字段名列表’参数进行判断。数据表主关键字最大值表记录由开发平台相关模块执行后台编辑。使用开发平台开发数据库应用系统步骤使用开发平台开发数据库应用系统时,遵从以下步骤将自动生成应用系统:(I)在数据库中建立开发平台的系统控制表及管理基础表;(2)进行用户需求分析,录入管理基础表数据分析管理机构,录入‘管理机构表’数据;分析管理规范,录入‘管理规范数据表’数据;分析管理层次,录入‘管理对象表’数据;录入‘人员职责表’数据;‘人员职责表’存放系统使用人员的身份资料。(3)根据用户需求分析确定应用系统的功能模块,及功能模块使用的功能菜单和功能菜单应实现的功能;确定菜单操作权限;并按开发平台数据表主、外键规定及用户业务要求建立菜单数据表;(4)根据功能菜单‘使用的数据表关联方式’,‘数据表的使用方式’,‘使用的菜单窗体类型’确定每一功能菜单使用的菜单构件包;(5)功能菜单不使用OLE调用窗体时,根据功能菜单使用的数据表及界面要求确定窗体形式,创建菜单窗体;确定窗体日期型字段显示方式、窗体数值型字段显示方式;菜单为Web查询菜单时编辑Web查询页面;(6)确定各类使用人员执行功能菜单时对菜单数据表记录的过滤条件;(7)确定菜单使用多个数据表时表的关联方式;使用来源表时的读字段规定;(8)确定功能菜单使用的数据表索引字段;日期型索引字段的索引方式;表记录的排序字段、排序方式;功能菜单使用OLE调用窗体时,OLE调用的类型字段及取值字段;(9)确定功能菜单的功能按钮,含编辑按钮、后台进程调用按钮、按钮菜单调用按钮、分页菜单使用的分页菜单名;(10)确定功能菜单对数据表记录的编辑屏蔽、记录的条件编辑屏蔽、分组编辑的条件或方法;(11)确定功能菜单对数据表记录的字段屏蔽编辑、条件字段屏蔽编辑方法;(12)确定新增表记录置公共变量、常量规定;新增记录复制方法;(13)字段编辑调用选择录入方法时完成‘选择录入方法表’的参数设计;(14)确定使用随机分类汇总、随机分类查询、按时段统计汇总时的分类及汇总方法规定;(15)确定编辑保存时必录字段与表记录唯一性判断方法;(16)确定调用流程控制的流程控制选项规定;(17)确定菜单应实现的后台进程调用,后台进程调用的调用按钮及调用规定;(18)完成菜单后台进程处理的‘菜单后台进程处理方法表’的参数设计;(19)对不能使用菜单构件包的菜单编写处理程序;确定调用第三方软件方法;编写‘数据库过程’;(20)安装开发平台的执行程序、应用服务器程序;将菜单窗体拷贝到应用服务器;在系统控制表中录入上述菜单功能设计的相关参数;安装‘自编程序’及‘第三方软件’,运行开发平台执行程序进行菜单操作权限设置,在各工作站进行系统设置后,系统投入运行。使用开发平台开发数据库应用系统流程图见图1。使用开发平台开发数据库应用系统优点1、使用开发平台开发的应用系统稳定性好应用系统的稳定性取决于系统总体设计和程序代码设计,不使用开发平台开发系统时,需经过多次修改代码、系统调试,才能满足稳定性要求。期间若发生功能变更,还需要进行代码修改、系统调试。使用开发平台开发的应用系统,使用的是“菜单构件包”处理模块,不需要编写程序代码。应用系统稳定性是由开发平台的稳定性确定的。经过长期使用,开发平台已趋于成熟,可以保证系统的稳定性。2、可缩短开发周期、降低开发成本和系统维护费用使用开发平台开发数据库应用系统,进行的是功能设计,而不是程序代码设计,不需要编写程序代码,或只需写少量程序代码。专业开发人员或用户具有基本的数据库知识和编程经验时,即可建立数据表和编辑菜单窗体、输入“系统控制表”参数。菜单窗体编辑完毕,输入调用参数后,可随即运行系统,检查执行结果。因而,可缩短开发周期、降低开发成本。系统维护时,不需要修改程序代码,只需要修改用户数据表、菜单窗体和系统控制表的调用参数;条件具备时,用户也可以参与系统维护。因而,可降低系统维护费用。3、可适用于不同行业,不同应用的数据库应用系统第一:开发平台对应用系统的功能菜单采用‘基于菜单数据处理类型层面’分类的方法,不同行业,不同业务的应用系统功能菜单,如果属于同一数据处理类型,则可使用同一菜单构件包执行模块。第二:同一数据处理类型的功能菜单,使用的数据表、菜单窗体、数据处理方法虽然不同,但数据表和菜单窗体是在系统外部建立和编辑的,而功能菜单的使用方法,即用户的业务模型是使用系统控制表参数描述的。所以,对使用同一菜单窗体构件包的不同业务功能菜单,只需在系统控制表中填写不同的参数即可实现菜单功能。第三:对开发平台不能实现的特殊菜单功能,可编写独立程序模块,填写相应的调用参数后,系统将自动调用。第四:对开发平台不能实现的特殊数据处理功能,可以编写‘数据库过程’,并将‘过程名’及‘调用参数’填写于‘菜单后台进程处理方法表’中,则开发平台运行时将自动调用,完成相应功能。因而,开发平台可适用于不同行业,不同应用的数据库应用系统。开发平台达到的软件体系结构设计目标(I)“菜单构件包”实现了应用系统软件构件级复用。(2)“系统控制表”对应用系统功能菜单的运行规约,即用户的业务模型,采用关系数据库数据表的数值和字符字段定义,满足了‘软件体系结构形式化参数描述、无二义性’和‘表达用户业务逻辑’的要求。(3)应用系统的软件体系结构是随着“系统控制表”的变化而随之改变。既使用开发平台组建的应用系统,其软件体系结构是自适应的。因而,可以说开发平台达到了人们对软件体系结构设计的目标要求:(I)外向目标:表达用户业务逻辑。(2)内向目标:描述软件系统的构造体系。(3)实用目标:体系结构的描述应满足形式化参数描述、无二义性。(4)高级目标:当用户业务逻辑变化时,体系结构自适应。终极目标:自动生成程序代码和应用系统。权利要求1.一种数据库应用系统开发平台,其特征在于,所述数据库应用系统的功能由功能菜单组成,数据库应用系统运行时任一时刻使用一个功能菜单,所述开发平台包括系统控制表存储单元、菜单构件包和代码生成器,其中:所述系统控制表存储单元,用于存储包含菜单构件包在运行时调用的参数的系统控制表,所述系统控制表内的参数包括系统主控参数、系统辅助控制参数和菜单后台进程处理执行方法参数,所述系统主控参数和系统辅助控制参数为数据库应用系统的体系结构描述参数和菜单构件包中由前台进程处理实现的公用功能的执行方法的参数,所述菜单后台进程处理执行方法参数为菜单构件包中由后台进程处理实现的特殊功能的执行方法参数;所述菜单构件包中由前台进程处理实现的公用功能的执行方法参数和菜单后台进行处理执行方法参数为菜单功能描述参数;当修改系统控制表中的菜单功能描述参数时菜单的功能将随之改变;所述菜单构件包为基于菜单数据处理类型的调用系统控制表内的参数完成菜单功能的执行模块,所述菜单数据处理类型包括菜单使用的数据表关联方式、菜单对数据表的使用方式、菜单使用的窗体类型;所述代码生成器,用于在菜单构件包运行时根据系统控制表存储单元存储的系统控制表内的参数动态生成可执行代码。2.根据权利要求1所述的开发平台,其特征在于,所述数据库应用系统的体系结构描述参数和菜单功能描述参数的类型包括非枚举型参数、枚举型参数和表达式参数;在一个参数中使用多个子参数时,子参数包括非枚举型参数、枚举型参数或表达式参数,子参数之间用约定分隔符分开;所述系统控制表使用的公用的枚举型参数包括表类和公共变量,所述表类为菜单窗体使用的数据表或执行读写操作使用的数据表,所述公共变量用于在数据库应用系统运行时保存登录人员的身份,其中:所述非枚举型参数包括整数参数和字符串参数,所述整数参数为整数或整数序列,整数序列中的整数之间使用约定分隔符分开,所述字符串参数为字符串或字符串序列,字符串序列中的字符串之间用约定分隔符分开;所述枚举型参数为表示枚举序号的整数;所述表达式参数为使用数据库SQL语句时SQL语句中对应的表达式参数。3.根据权利要求1所述的开发平台,其特征在于,所述系统控制表包括系统控制主表,用于存储系统主控参数,所述系统控制主表包括一条或多条菜单记录,每条菜单记录包括如下属性:菜单类型、菜单标识、菜单执行方式、菜单使用的数据表及数据表使用方法、菜单使用的窗体和菜单的功能按钮,所述菜单标识为主关键字,当增加或删除菜单记录,数据库应用系统的菜单将随之增加或减少。4.根据权利要求3所述的开发平台,其特征在于,所述菜单类型包括主菜单、按钮菜单和分页菜单,当菜单类型为主菜单时,所述菜单标识为菜单序号,当菜单类型为按钮菜单和分页菜单时,所述菜单标识为菜单窗体序号;所述菜单执行方式包括调用菜单构件包、第三方软件嵌入式功能调用、自编可执行程序调用;所述菜单使用的数据表包括主表、子表、子子表、索引表、来源表、并列子表和并列子子表,所述数据表使用方法包括表记录读取、过滤和排序,所述主表为可派生出从属关联关系表的数据表,所述子表为两层从属关联关系表中处于从属地位的数据表,所述子子表为三层从属关联关系中子表的从属数据表,所述索引表为表记录作为另一个数据表索引的数据表,所述来源表为表记录作为另一个数据表新增表记录时数据来源的数据表,所述并列子表为两层从属关联关系中表记录从属于同一个主表的两个或多个数据表,所述并列子子表为三层从属关联关系中表记录从属于同一个子表的两个或多个数据表;所述菜单的功能按钮包括编辑按钮、后台进程调用按钮、OLE功能调用按钮、按钮菜单窗体调用按钮和菜单操作帮助按钮。5.根据权利要求1所述的开发平台,其特征在于,所述系统控制表包括系统控制辅助表,用于存储系统辅助控制参数,该系统控制辅助表包括菜单权限设置表、选择录入方法表、管理对象表、数据表主关键字最大值表和数据表记录导出导入方法表,其中:所述菜单权限设置表包括菜单表菜单标识、权限定义类、使用菜单操作权限的人员职责或人员编号、菜单读权限和菜单写权限;所述选择录入方法表包括菜单标识、选择录入记录号、执行选择录入的方法,当系统控制辅助表的选择录入方法表的菜单标识和系统控制主表的菜单标识相同时,菜单构件包执行时按照关键值相等的原则调用;所述管理对象表包括管理对象名、使用管理对象的公共变量类、使用管理对象的公共变量值、公共变量类为姓名时的人员编号、管理对象使用方法和业务管辖范围值或业务管辖范围表达式;所述数据表记录导出导入方法表包括导出导入的数据表名、导入导出的字段名序列、导入导出的字段名标注序列;所述数据表主关键字最大值表包括序号、数据表名和数据表主键最大值。6.根据权利要求5所述的开发平台,其特征在于,所述系统控制辅助表还包括表记录过滤方法表,该表包括菜单标识、过滤表类、过滤记录号和表记录过滤方法,所述过滤表类用于区分执行过滤操作时菜单使用的不同数据表,所述过滤记录号用于区分不同的系统登录人员使用过滤方法表的不同记录设置,当系统控制辅助表的表记录过滤方法表的菜单标识和系统控制主表的菜单标识相同时,菜单构件包执行时按照关键值相等的原则调用。7.根据权利要求1所述的开发平台,其特征在于,所述系统控制表包括菜单后台进程处理方法表,用于存储菜单后台进程处理方法参数,菜单构件包根据菜单后台集成处理方法参数动态生成SQL语句,完成数据表的写操作,对于不能使用动态SQL语句实现的功能,通过调用编写的数据库过程代码实现;所述写操作包括新增表记录、修改表记录和删除表记录,写操作的读表和写表以及读表记录和写表记录使用的参数包括读表类、写表类、读记录方式、读表的并列表序号、写表的并列表序号、执行读条件和写操作执行次数。8.根据权利要求1所述的开发平台,其特征在于,所述菜单使用的数据表关联方式包括单一数据关系、从属关联关系、并列关系、并列关系主表与从属子表的从属关系、索引关联关系和来源关联关系,数据表关联统一使用主键、外键和主外键关联,对从属关联关系、并列关系、并列关系主表和从属子表的从属关系的数据表根据主外键对从属表和并列主表的表记录使用级联删除,索引关联关系和来源关联关系的数据表不使用级联删除;所述菜单对数据表的使用方式包括对单一数据关系、从属关联关系、并列关系、并列关系主表与从属子表的从属关系的数据表的表记录进行查询或编辑,其中,对单一数据关系的数据表的表记录查询或编辑时使用索引表;对单一数据关系的数据表的表记录进行随机分类汇总、随机分类查询、按时间统计与汇总、查询实体在任一截止时间之前的实体状态及状态改变时间和/或根据用户随机选中的记录查找出相关记录;所述菜单使用的窗体类型包括窗体调用方式、窗体使用数据的方式和窗体形式,其中:所述窗体调用的方式包括主菜单调用、由窗体功能按钮调用的按钮菜单调用、由分页菜单名调用的分页菜单调用、OLE调用、第三方软件嵌入式功能调用和自编可执行程序调用;所述窗体使用数据的方式包括只使用数据表的数值、字符、日期型字段数据,只使用数据表的大二进制字段数据,使用数据表的数值、字符、日期型字段数据和大二进制字段图像数据;所述窗体形式包括只使用数据表的一条记录的单记录窗体、在同一菜单中一个数据表的不同类记录使用不同的单记录的可选单记录窗体、数据表按行显示多条记录的多记录窗体、窗体上部放置单一主表某一级索引下的多条记录字段值相同的字段而窗体下部按行放置取不同值字段的多条记录的带表头多记录窗体、窗体上部放置主表单记录而下部按行放置子表从属于该记录的多条记录或窗体上部放置子表单记录而下部按行放置子子表从属于该记录的多条记录的上单下多窗体、窗体左右各放置一个多记录窗体的左右窗体。9.一种数据库应用系统开发方法,其特征在于,所述方法包括:建立系统控制表,所述系统控制表包含菜单构件包在运行时调用的参数,所述系统控制表内的参数包括系统主控参数、系统辅助控制参数和菜单后台进程处理执行方法参数,所述系统主控参数和系统辅助控制参数为数据库应用系统的体系结构描述参数和菜单构件包中由前台进程处理实现的公用功能的执行方法的参数,所述菜单后台进程处理执行方法参数为菜单构件包中由后台进程处理实现的特殊功能的执行方法参数;所述菜单构件包中由前台进程处理实现的公用功能的执行方法参数和菜单后台进行处理执行方法参数为菜单功能描述参数;当修改系统控制表中的菜单功能描述参数时菜单的功能将随之改变;根据用户需求确定数据库应用系统的功能菜单,根据功能菜单的功能确定基于菜单数据处理类型的调用系统控制表内的参数完成菜单功能的执行模块,所述菜单数据处理类型包括菜单使用的数据表关联方式、菜单对数据表的使用方式、菜单使用的窗体类型;接收参数赋值,根据接收的参数赋值与系统控制表内的参数的匹配结果调用相应的菜单构件包动态生成可执行代码以完成数据库应用系统的开发。10.根据权利要求9所述的开发方法,其特征在于,所述建立系统控制表具体包括:确定菜单使用多个数据表时表的关联方式;使用来源表时的读字段规定;确定功能菜单使用的数据表索引字段、日期型索引字段的索引方式、表记录的排序字段、排序方式、功能菜单使用OLE调用窗体时OLE调用的类型字段及取值字段;确定功能菜单的功能按钮,所述功能按钮包括编辑按钮、后台进程调用按钮、按钮菜单调用按钮和分页菜单使用的分页菜单名;确定功能菜单对数据表记录的编辑屏蔽、记录的条件编辑屏蔽、分组编辑条件或方法;确定功能菜单对数据表记录的字段屏蔽编辑、条件字段屏蔽编辑方法;确定新增表记录置公共变量、常量规定、新增记录复制方法、字段编辑调用选择录入方法时完成选择录入方法表的参数设计;确定使用随机分类汇总、随机分类查询、按时段统计汇总时分类及汇总方法规定;确定编辑保存时必录字段与表记录唯一性判断方法;确定调用流程控制的流程控制选项规定;确定菜单应实现的后台进程调用,后台进程调用的调用按钮及调用规定;完成菜单后台进程处理的菜单后台进程处理方法表的参数设计;对不能使用菜单构件包的菜单编写处理程序、确定调用第三方软件方法、编写数据库过程。全文摘要本发明的实施例公开了一种数据库应用系统开发平台。该平台包括系统控制表存储单元、菜单构件包和代码生成器,其中系统控制表存储单元,用于存储包含菜单构件包在运行时调用的参数的系统控制表,所述参数包括系统主控参数、系统辅助控制参数和菜单后台进程处理执行方法参数;菜单构件包为基于菜单数据处理类型的调用系统控制表中的参数完成菜单功能的执行模块,所述菜单数据处理类型包括菜单使用的数据表关联方式、菜单对数据表的使用方式、菜单使用的窗体类型;代码生成器,用于在菜单构件包运行时根据系统控制表存储单元的参数动态生成执行代码。本发明还公开了一种数据库应用系统开发方法。本发明实施例提高了开发数据库应用系统的通用性。文档编号G06F17/30GK103092631SQ201310066589公开日2013年5月8日申请日期2007年4月6日优先权日2007年4月6日发明者张宽让申请人:西安万年科技实业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1