发展部件技术分享 http://blog.sciencenet.cn/u/求新 研究方向:数据库、MIS,教育部教指委计算机分委会专家工作组成员

博文

VFP部件库最小系统网络版使用说明书

已有 7984 次阅读 2009-10-15 22:00 |个人分类:生活点滴|系统分类:科研笔记| 软件复用, 构件, 局域网, 部件, VFP

                                                                                      前言
      软部件是为了复用而设计的由一个到多个对象或构件组合而成、面向最终系统集成的程序模块,属于系统级构件。它通过动态定义子模式的方法进一步提高数据逻辑独立性,实现数据操作界面对数据结构的独立,程序有更强的共享性、复用性与自适应性,一个部件模块可同时为多个应用服务,使用它们构建系统时常常无须编写代码或只需编写少量代码;数据在表一级的结构改变可以不要求改变程序,甚至无须再编译!它们也是一种开发平台或模板,可以帮助我们通过各种裁剪与拼装,通过各种适应性修改、扩展性修改、装饰性修改快速设计更有实际应用系统特色的领域构件。将极有利于提高系统设计效率与软件质量,降低软件开发、维护与扩展的成本。非计算机专业的专业技术人员也能很容易的设计、使用与维护管理信息系统。
      部件库最小系统是按照如上思想设计的试验产品。使用该软件可以无需进入具体开发语言的命令窗口、无须知道具体开发语言的基本知识就能使用各种可以在Windows系统中使用的数据库,设计相应的应用系统。由于建立系统时一般不需要编码,也不需要编译,只要先装一个数据库,建立基本数据表,建立ODBC数据源,安装VFP6.0,再进入本最小系统,定义环境,通过选择参数建立系统驱动菜单,系统就能建立与使用,系统可以拥有多种数据录入、修改、删除、查询、导入、导出、关系运算、交叉表等多种统计计算与报表、一般的单记录形式报表、表格式报表、标签类报表、直线拟合线性回归分析与绘图、各种统计图、多种财务统计计算等程序模块;可以自动加入代码表使用、字典表使用、完整性控制、安全性控制、派生数据计算与录入等功能。建成系统只需要配置数量极少的十几个参数(只当需要使用代码、要求完整性控制与安全性控制、要求派生数据自动计算填入及对控件位置大小有特殊要求时才需要按系统提供的辅助程序生成或填入其他一些附加内容的数据)就能完成,因此效率高,易学易用。
      如果构成系统的模块都具有即插即用特性,当需求在一定范围内改变时,不需要修改程序,甚至不需要重新编译,更进而在更特殊情况下不需要修改参数就能自动适应环境与需求的变化,那么系统将极易维护、极易扩展,有极强适应性,软件维护费用将大大减少,软件可用性大大提高,软件生命会大大延长,会促使管理信息系统的使用更加普及。也将有利于真正进入软件生产工业化的时代。
      由于得不到国家支持,本套软件还很不完备,还不具备商业价值,还没有全面推广的基础。但是,我们希望的是能有一套软件极大地覆盖应用需求,使得软件生产工业化的目标真正得以实现,那就要求对于社会目前已有的各种应用系统都能利用部件搭建。显然,那是需要一个十分庞大的部件库才有可能实现的。但如果部件库过于庞大,将很不好用,很不好学习,甚至无法实现。我们的试验是希望找到一系列方法,使得这个部件库尽可能小。小到可以让人接受,既能满足绝大部分应用需求,又易学易用使用方便。我们的部件基于对数据库的操作展开,结合分析社会上各种应用中界面的需求与实现情况,使得一个部件能包含多种功能,并且易于通过参数设置实现性能的改变,能比较容易地派生成多种不同应用的模块,可以使部件总量减少,具有一定的理论研究价值。
      该系统也是数据库等信息类课程优秀实验平台,学生如果能联系多个实际应用系统设计与操作去学习,可以在三个以上大型数据库平台上操作,可以顺应实践-理论-实践的认识模式,将使理论不再抽象,学习目的性更强,有效提高学习效果;并且使视野开阔,克服社会生活知识贫乏的先天缺陷,在活生生的应用实际中认识实际管理系统的构成,对实际系统的功能、性能、界面会建立感性认识,是很有意义的。如果学生在课程设计或毕业设计时能运用部件搭建原型系统,再用其他语言实现,会大大提高作品质量。这些都对提高教学质量,强化学生素质具有意义。
      考虑到教学需要,本系统作为与《数据库原理与技术》、《管理信息系统及其开发》等书教学配套的实验平台,增加了部分辅助工具,例如可以从工具类部件8、9、查询部件7中看到实际运行过程中的SQL语句的构成,可以直接书写SQL语句传到远程数据库执行等。
      目前,本系统已在武汉大学东湖分校计算机学院试用,教学时首先介绍使用方法,介绍建模知识,结合理论教学内容实际建立应用系统,了解有关理论在实践中的意义,在课程设计中要求学生结合需求分析建模并用本系统构建原型系统证明,在全体讨论通过后再用其他语言实现。这一教学过程大大提高了教学效果,证明该软件对教学有极好促进作用,学生一下接触3个数据库操作,了解各种数据库的共性与个性,促进了对数据库与软件工程、管理系统概念与理论的深入理解与真正掌握,极大强化动手能力。学生反映这软件太傻瓜、太简单;许多问题是他们无论如何想不到的,他们不知道,一些实际应用系统还需要考虑这么多的问题。工必良于器,实践证明优秀的教学工具是提高教学质量所必须的,而且是其他方法无法取代的。


目录
一、利用该套部件快速设计应用系统步骤 
1.设计数据表结构,在远程数据库中建表 
2. 建立文件夹 
3.修改环境参数 
4.设计系统的模块结构 
5.设定参数建立系统 
6.接口参数设计一例 
7. 运行系统 
二、部分接口参数的意义 
1.主要接口参数的意义 
2.关于某些问题的说明 
三、主要部件功能与使用方法 
1. 单表单记录维护部件 
2. 表格式维护部件 
3. 一对多数据维护部件 
4. 查询部件 
5. 关系运算部件 
6. 数据处理与统计类部件 
7.数据通信与导入导出部件 
8.打印格式文件生成辅助工具 
9.其他工具类部件 
10.系统管理与维护类部件 
结束语 

 

                                                一、利用该套部件快速设计应用系统步骤
      1.设计数据表结构,在远程数据库中建表  
      首先需要安装所需要的数据库,如果安装SQL Server,身份验证设置选混合模式,不必设置密码。在数据库中建立一个数据库实例。利用操作系统(在Windows系统中通过“我的电脑”“控制面板”“管理工具”“数据源”)设置ODBC数据源。注意连接所建立的数据库实例,
      在数据库中试建数据表。因为使用VFP操作,VFP中要求字段名宽度不超过10个字符,只能以汉字或英文字符打头,字段名只能由汉字或英文字符或数字或下划线构成,因此使用本系统时,远程表中字段起名也必须遵从上述规定(字段名宽度不超过10个字符,只能以汉字或英文字符打头,字段名只能由汉字或英文字符或数字或下划线构成)。如果不便,可以建立字典表进行变换处理(本系统中大多数部件都提供了借字典表变换标识的功能)。
      需要注意的是,有些数据库有些数据类型不能使用。例如SQL Server中不得有uniqueidenti、timestamp,在Access、Oracle等数据库中不得使用自动编号类型等,因此在使用某些数据库系统时需要发现这样的数据类型,并回避使用这些类型。为减少摸索的时间消耗,建议只使用与VFP中允许的数据类型相容的数据类型:字符类型、数值类型(包括浮点类型)、货币类型、整型、双精度类型、日期时间型、日期型、逻辑类型、文本类型、图形类型。
  
      2. 建立文件夹
      建立自己的工作文件夹,并将“部件库最小系统网络版”内的全部文件拷贝到该文件夹中。
     例如:建立名为chen的文件夹,再将部件库最小系统网络版文件夹中全部文件拷贝到该文件夹中(操作步骤为:     

     1)进入部件库最小系统网络版文件夹、选全部、复制。2)进入你的文件夹(例如chen),将贴在剪切板上的前述文件粘贴到你的文件夹中)。
      3.修改环境参数
      双击“0环境设置.EXE”程序,可以填写的内容意义如下:
      标题1               指系统运行时封面中欲显示的应用系统的名字
      单位名1             指系统运行时封面中欲显示的应用单位的名字或作者单位名字,可以不填
      著作者名            指系统运行时封面中欲显示的著作者名字,可以不填
      封面画名            指系统运行时封面上的背景画的文件名,应当为BMP文件,在当前文件夹中必须存在该文件。
      数据库系统          指应用系统所基于的DBMS名称,目前供选的有Oracle9i或Oracle10g或更高版本;SQL Server2000或更高版本、Access2003或更高版本。
      数据源名            指ODBC数据源名称,必须先在所安装的数据库系统中建立一个数据库实例,再利用操作系统(在Windows系统中通过“我的电脑”“控制面板”“管理工具”“数据源”)进行设置。
      用户标识            指在安装远程数据库时定义的用户标识。对于Oracle数据库必须设置(例如SYSTEM),对于其他数据库,根据情况设置或不设置
     连接口令            指在安装远程数据库时定义的用户密码。对于Oracle数据库必须设置,对于其他数据库,根据情况设置或不设置
     例如:
     标题1     工资管理系统
     著作者名    王   平           
     封面画名    gongzi.bmp
     数据库系统    选择  SQL Server
     数据源名    SQL1         (假设已经通过“我的电脑”“控制面板”“管理工具”“数据源”建立了名为SQL1的数据源)
      4.设计系统的模块结构
如果采用水平下拉菜单控制,执行程序(系统模块)的菜单项只能处在叶节点位置上,在该位置应选择具体部件名称;如果采用目录树控制结构,所有节点都可以兼做控制节点与操作程序模块。在设计时,最好能确定充当该模块的部件所需要的参数名字与参数内容。
       5.设定参数建立系统
      双击“0部件驱动菜单生成.EXE”程序,按设计好的系统的模块结构建立菜单的目录树结构。方法是:先在左上角“新节点名”栏中输入主菜单项名称,按“建立第一级菜单”按钮,将发现在左边菜单框内新生了一个主节点;再在“新节点名”栏输入第二个主菜单项名称,按“建立第一级菜单”按钮;……,建立顶级菜单框架(如果是水平下拉菜单,建立的是水平下拉菜单的水平菜单部分)。
     再在“新节点名”栏输入第二级某个子菜单项名称,点第一级菜单中某一项,将见到提问:是否在该菜单项下建下一级菜单,回答“是”后,将见到已建立下一级菜单。以同样方法建立所有水平菜单项下的下一级菜单框架。
     如果采用水平下拉菜单控制,选第二级菜单的某一项的名字,再类似于“接口参数输入”界面中的输入输入有关参数,对于第二级菜单的每一项,都必须输入一个部件的名字和一个远程表的名字。如果熟悉VFP,也可以另建VFP的程序,在“部件名称”中可以填写一句以“DO”打头的命令,例如“DO A1”(注意限填一句且必须是DO打头)。另外,如果是PRG文件,在设计完毕时要选择VFP主菜单中的菜单项“程序”中的“编译”,生成FXP文件,否则不被执行。
      6.接口参数设计一例
      在“数据表名称”中输入:工资  。"工资"应当是远程数据库中某数据表的名字,该表必须存在,该数据不可省缺!
      在“关键字”中保持空,不输入   。变量“关键字”所填内容在修改与删除操作中起作用,一般必须输入,并且应当与数据库中定义的关键字相容。如果在参数中没有给定关键字,部件程序将默认第一个字段为关键字。
本系统中除单记录数据维护部件1、单记录数据维护部件5、表格式数据维护部件1外的其他数据维护部件做录入程序使用时,要求远程数据库中不设关键字,否则录入操作将失败。前面所提三个部件对于是否在数据库中定义关键字没有要求。当做修改、删除、查询等使用时,对是否在数据库中定义关键字没有要求。
     在“接口参数表序号”中输入:1   。“接口参数表序号”中填的表名默认为"接口参数表1",该表中接口序号与这里定义的号数相同的那些项在本次调用中起作用。该表将影响代码表的使用、影响数据完整性控制、影响数据安全性控制、影响数据的互操作、影响文本字段与通用字段等字段表现形式。该项可以为空,意味不使用代码表及其他控制。对于不同调用,这个号可以不同,不同序号中的参数记录在本次调用中不起作用。
     在“打印格式文件名称”中保持空,不输入   。许多部件中都集成了打印功能,如果需要打印报表的功能且已经设计了打印格式文件,可在该参数中填写预先设计好的打印格式文件的名称。对于某些数据维护部件,也可以不填打印格式文件名称,只选留相关打印按钮,也可以打印报表,将自动生成与表名同名的一个表格格式的打印格式文件并控制打印。
     在“字段号表”中输入:1,3,5,7,11,15,19,20      。对于不同操作,需要不同的视图,这不仅是为了操作的方便,也是达到安全性控制的一个手段。本部件系统中的部件允许定义视图中涉及的字段的字段号来实现对视图的要求。所输入的数字串中每一个数字表示一个字段在数据表中的顺序号,程序将只对该视图中有关字段的数据进行操作。该参数中如果不填数据、保持为空,意味对全部字段操作。但是正确的设计应当对每一次调用都按需要选择字段,不要令其为空。
     在“留下按钮号”中保持空,不输入      。一个部件包含多种功能,在应用时再根据需要保留部分功能,使既可以满足不同用户对界面的需求,也可以减少部件库中部件总量。本系统中所有部件都设计了多个按钮,使集成多项功能,可以通过选择按钮实现不同功能组合,满足不同应用需求。在“留下按钮号”中填的数据就用来选择在使用该部件时提供给用户的按钮,也就是提供给用户的功能。该参数中如果不填数据、保持为空,意味保留全部按钮。但正确的设计应当对每一次调用都按需要选择按钮,不要令其为空。
     在“相关表名”中保持空,不输入         。如果操作涉及二个以上的表,例如选择一对多表的数据维护或查询,在主表外还要定义子表名称。可以在该栏中定义子表名称。如果是查询、统计、打印等程序,子表可能为多个,其名字也皆在此填入,注意名与名之间用逗号分隔。特别注意,本系统中部件都是对远程表操作的,因此所有相关表都必须是远程表,不能填入本地表名。在下一个版本中将允许同时使用远程表与本地表。
     在“外关键字”中保持空,不输入          。“外关键字”中填的数据为主表与第一子表相连接的字段名,可以为一个或多个,通常字段名称应当相同。如果填了相关表名,该项必须填,不得令其为空。
说明:以上只对部分参数进行了说明,详细内容见本帮助程序文件的其他部分。以上“。”前内容为操作说明,“。”后的内容为注释。
      7. 运行系统
      退出“0部件驱动菜单生成.EXE”程序。在退出时将自动进行水平下拉菜单的编译操作,并试运行。注意点选“退出”菜单项退出试运行。
      在以上操作完成后,应用系统已经自动建立。双击“0项目.exe”,可以进入水平下拉菜单控制的应用系统运行程序。双击“0项目3.exe”,进入目录树菜单控制的应用系统运行程序。
      注意水平下拉菜单控制的系统的菜单程序是在运行“0部件驱动菜单生成.EXE”程序的退出程序时自动建立的,因此,建议不要通过对“部件库驱动菜单表.DBF”表自行在VFP环境中作直接修改,一定要利用“0部件驱动菜单生成.EXE”程序修改系统结构,否则不能修改水平下拉菜单控制的应用系统。
      在运行时需要注意二个问题:如果运行出现异常,会出现无法从VFP退出的故障,这时要用<ctre>+<alt>+<del>进入任务管理器,强迫结束有关VFP的进程。
      在运行时常常进入数据表浏览界面,有时只能按<esc>键才能退出该界面。
      使用本系统,无论是运行“最小系统”还是自己组建系统、书写菜单程序,都要设置接口参数,其中最主要的参变量及其意义再特别说明如下:

                                                                二、部分接口参数的意义
      1.主要接口参数的意义
    (1)表名:表示本程序当前要维护的表的表的名字。
    (2)接口参数表序号:在不同调用或调用不同部件时可能有不同接口设置要求,用该序号区分不同的设置。接口参数表记录你关于使用代码的要求、关于数据域完整性控制要求、安全性控制要求、派生数据的计算公式、在数据维护部件与多表数据维护部件中文本框等控件的位置与字号与字体与控件大小等数据。
    (3)打印报表格式文件名:如果预先准备了打印格式文件,在这一句中说明打印报表格式文件的名字。在使用各种数据维护部件、某些查询部件时,如果在接口参数中给定了打印格式文件名,可以在进行查询(或不进行查询而对全表)按格式打印报表。如果接口参数中未给定打印格式文件名,将进入表格式报表格式生成程序,自动建立打印格式文件并打印报表,这样建立的打印报表将和主数据表同名。
    (4)字段号表:给不同人或为不同用途调用同一部件时需要建立各不相同的视图、显示与操作不同字段的数据,主要目的是方便操作,也表现安全性。如果只要求显示一个表中部分字段的数据,该句说明拟在屏幕上显示的各个字段在设计结构时的顺序号。号与号之间要求用英文逗号分隔。如果为空表示选全部字段。采用字段号而不采用字段名是加强数据逻辑独立性,也为了一条语句总长度不超过254个字符。
     数据维护部件1到4在界面中使用了组合框,其字段号表的字段号之前可以加a、b、c、d字样,表示该字段用组合框显示。其中,a表示只显示代码表,只能选择不能接受键盘的输入。b表示可以显示代码表,如果未登记代码表也可以显示已经输入到表中的该字段的数据(我们称之为历史数据),只能选择不能接受键盘的输入。c表示只显示代码表,可以利用鼠标选择也能接受键盘的输入。d表示可以显示代码表,如果未登记代码表也可以历史数据,可以利用鼠标选择也能选择不能接受键盘的输入。
     在使用查询类部件时表示要求提供给用户选择的供组成条件表达式的那些字段的字段号列表。在使用查询类部件1与3时,只允许也必须输入1个字段的号或名(也可以是表达式或函数),后面可以加关系符(>、>=、<、<=、=、<>、$等)(可以不加)。
     例如:   2>=        学号       学号>       SUM(平均成绩)>=         这四个都是允许的输入方法。
     查询类部件3是二条件查询程序,使用时还要求在变量字段号表0中设置另一个条件的1个字段的号或名或表达式,可以加也可以不加。使用查询类部件3也可以各输入多个字段号的表或空着不输,那么将提供组合框让用户选择字段名。
    (5)留下按钮号表:许多工作都要求多个功能互相补充才能进行,也为了满足不同人不同应用的口味或需要,为了减少部件总数量,每个部件都设计了许多功能,各功能主要通过按钮体现,每次调用如果只需要其中部分功能、只要求使用部分按钮,可以在其后引号内输入拟在屏幕上显示的各个按钮的顺序号。如果为空表示选全部按钮。
    (6)相关表名:如果涉及查询统计或多表维护的表单,除主表外还有其他表称为从表。使用一对多数据维护程序填且只允许填一个从表。使用多表组合查询、数据传送、统计图、生成打印格式文件等可以填0到多个从表,要求填多个从表时表名间以英文逗号分隔,且后面的表与前面的各表间至少有一个字段名相同,作为连接的字段名在设计表结构时要尽量放在各字段前面。
    (7)外关键字:主从二表共有的字段、一般同时是主表的关键字。
    (8)关键字1:从表关键字。只在使用一对多数据维护表单之前,且有一个关键字是数字类型,要求在添加新记录时自动按最大值加1后自动填入。在有此要求时应设置。在使用按关键字维护与多层次数据维护部件时需要填入关键字与分层字段名称。
    (9)字段号表1:在查询类部件1到4、6、7和数据传送部件4到7中可以送入输出要求。可以是字段号表,中间可以加字段名,可以是表达式,可以使用如avg(<字段名>)、max(<字段名>)、min(<字段名>)、count(<字段名>)这样的函数(其中<字段名>表示要填具体的一个字段名称)。如果有上面五种函数之一,必须给分组字段,给的方法是在最后加一个冒号,后面跟分组字段。
     例如:  学号,姓名,班级,7,sum(平均成绩):专业,班级
意义是按条件查询的记录中显示学号,姓名,班级,第7个字段及按专业与班级分组之后每组平均成绩之和。
2.关于某些问题的说明
    (1)接口参数中用"接口参数表序号"区分不同调用,一个系统内所有调用所需要的不同的参数的数据放到一个表内,目的的方便管理。
    (2)几乎所有部件内按钮都可以供选择与组合,使满足不同人、不同工作的口味与需要。在设置"接口参数"时,为方便操作与设计,如果选定了部件,点上"按钮号表"文本框,就可发现在列表框中列出了该部件所使用的所有按钮名称及序号,用鼠标点击就能按名字选择按钮,得到按钮号表。
    (3)数据维护部件界面一般都由程序按固定的算法计算与安排,不需要用户考虑。但准备了数据维护部件2允许全部字段位置由用户安排。用户可以利用0最小系统.exe程序中"接口参数表维护"中定义字段位置程序辅助设置接口参数,之后再运行时就按接口参数表中设置安排排版。
    (4)在数据域完整性控制中有时要求数据只在一个值域中选定,管理信息系统为了实现规范化与标准化也要求某些数据只能从预先选定的值域中选择输入,其实现方法普遍采用代码表。界面中则主要依靠组合框或列表框作为字段的显示控件。本系统中数据维护部件普遍加有该项功能。使用的方法是首先建立代码表(均为VFP本地表),再在参数表中注册,就可以使用了。一般使用时是界面中有一个共用的列表框,当某一个字段控件获得焦点(鼠标点中该控件)时,如果该字段存在代码表且已注册,列表框中就显示代码表内容供点选。如果未注册代码表,则显示历史数据供点选。单记录数据维护部件1到4及表格式数据维护部件1采用组合框实现该功能,定义方法是在"字段号表"中有关字段的字段号数字前加a或b或c或d,就表示用组合框表现字段,具体意义见下面有关内容。
    (5)考虑到与数据库中设定相适应使提高运行效率,也考虑到局部要求不一定与全局要求一致,所有维护部件需要在入口参数中指定"关键字",使实现实体完整性保护。
    (6)查询1、查询3为使用较多但变化较大的部件。查询的内容可能涉及一个字段或二个字段、也可能是与字段相关的表达式,甚至涉及聚集函数,允许在"字段号表"中定义一个字段名或一个函数式或一个表达式。例如"查询1"的"字段号表"的写法中"学号>="、"学号$"、"3>="、"学号"、"3","SUM(平均成绩)>="、"SUM(平均成绩)"等都是允许的(如果是表达式或函数,必须用字段名,不能用字段号)。
      "查询2"为二条件查询,需要在"字段号表"、"字段号表0"中分别如上给定一个条件。
      查询的输出要求与分组字段(如果涉及聚集函数,必须定义分组字段)在“字段号表1”中设定。输出要求可以是字段号表,也可以是Select语句中能操作的表达式或函数,用逗号分隔。输出要求与分组字段名(如果需要设分组字段名称)间用冒号分隔。
      格式例如:1,3,平均成绩,SUM(平均成绩):学号     意义是:输出第一、三字段、"平均成绩"字段内容和按学号分组分组后每组平均成绩之和等数据。其中冒号后是分组字段名称,只要有统计要求的都必须给分组字段名称。
    (7)为了使界面风格可变,所有按钮的显示标签可设定。方法是在"留下按钮号"表中数字后都可加冒号再加新标签内容。注意该句总长不超过254个字符。
    (8)为了实现进行数据处理的需求,设计了一个数据处理部件,允许在接口参数中规定所选择的处理公式或处理函数,允许用户自定义处理函数。


                                                         三、主要部件功能与使用方法
      1. 单表单记录维护部件
      单表单记录维护部件每次在桌面上仅显示一条记录的有关数据,可用于对数据表完成数据添加、修改、删除、对任意单个字段作等值查询、对任意单个字段作某一种条件查询、如果事先设计了打印格式文件将提供按固定格式打印报表、按任意字段索引排序等等操作。界面构成除文本框、编辑框、按钮外可以使用组合框。如果要求使用组合框,要在接口参数中字段号表的字段号前加a、b、c或d,详细内容见“关于各参数意义的说明”。本程序可以施加域完整性与实体完整性控制、安全性控制、可以要求使用代码表,提供从代码表或历史数据用鼠标点选录入的手段,可以要求自动进行派生数据的计算与录入。以上都通过填写“接口参数表1”来进行。可以执行“最小系统”,利用其中“接口参数表维护”有关程序填写或修改其内容。使用前一般要予定“数据表名称”与“接口参数表序号”。其全体显示的字体与字号、备注字段与通用字段显示大小与位置均可以设置,于上面一样设置“接口参数表1”中相关内容实现。这类部件用途:
      可以作为数据输入模块、修改程序、删除程序、综合数据维护模块、条件查询程序、排序、批处理、打印程序模块等使用。对于有备注字段或通用字段或界面中字段较多总面积较大或希望一条条对记录进行处理的需求比较适合。
      一般作为数据输入模块使用时常选择:之前录入、之后录入、清屏、浏览等按钮协同工作。
      作为修改程序、删除程序等使用时常选择:第一条、上一条、下一条、末一条、查询、条件查询、浏览、浏览存盘、第?条、索引、再次索引及各种修改或删除按钮协同工作。
      作综合数据维护模块则综合选择以上按钮协同工作。
      作查询程序时常选择:第一条、上一条、下一条、末一条、查询、条件查询、浏览、第?条等按钮协同工作。
      作排序时可只选择排序按钮,也可以选择索引、再次索引等协同工作。
      作批处理模块时类似于修改使用。
      作打印程序模块等使用类似于查询。加转EXCEL或打印予览或打印按钮。
      如果未给定打印格式文件,当按各部件的“打印予览”按钮时,将首先帮你建立与数据表名加“格式文件”为名的打印格式文件,并进入打印予览操作。在建立过程中,提供选择需要打印的字段及定义每一拦宽度的方便。
      单表单记录维护部件功能:
      数据维护部件1到4使用组合框提供代码或历史数据辅助录入帮助,其他部件利用统一的列表框完成该功能,统一使用列表框可以更充分地发挥鼠标的作用。
      数据维护部件1可以定义全部字段的字体、字号,定义备注字段与通用字段的字体、字号、宽度、高度、距左边距离与到顶距离,排版时尽量按接口参数给定的字段顺序排列。其中宽度、高度、距左边距离与到顶距离都按5号字标准    给定数据,排版时再根据所要求的字体字号变化。
数据维护部件2可以定义全部字段的字体、字号、宽度、高度、距左边距离与到顶距离,排版时完全按接口参数给定的字段顺序排列。可以在第一次运行前给定部分字段的字体、字号、宽度、高度、距左边距离与到顶距离,运行时程序会自动安排其他字段的位置,然后,程序员可以修改“接口参数表1”相应序号下的这些位置与表现的参数,定稿后再运行就会按修改好后的数据排版。这样操作会比较麻烦,但界面变化的余地要大得多。
      数据维护部件3直接对数据表操作,修改数据无需按存盘按钮即可完成,用作修改数据的程序模块操作比较快捷,但要注意操作时不要出错。
      数据维护部件4排版方式简单,按数据表字段顺序排版,可以定义备注字段与通用字段的宽度、高度。
      数据维护部件5到10排版方式与数据维护部件4相同,都采用统一的列表框提供代码数据或历史数据选择录入的方便。
      数据维护部件6为直接对数据表操作。
      数据维护部件7允许对接口参数中“关键字”中给定的关键字进行按位模糊查找到有关记录后点击选中该记录再进入维护操作。注意一定要定义“关键字”! 
      数据维护部件8允许对接口参数中“关键字1”中给定的二个字段名用列表框提供全部数值供选择,用户选中其中一个后,该记录会显示出来供修改。注意一定要定义“关键字1”! 
      数据维护部件9允许对接口参数中“关键字1”中给定的带有层次特性的多个字段名用目录树形式提供全部数值供选择,用户选中其中一个后,该记录会显示出来供修改。 注意一定要定义“关键字1”! 
      数据维护部件10为简单接口部件,不提供按钮选择功能。
      如果要求使用代码表,要首先设计并生成代码表,然后在接口参数表1中加入有关说明,包括:代码表名(包含路径)、代码表别名(不包含路径)、代码字段名、内容字段名、加入字段名(目前程序中要求加入字段名与代码字段名及内容字段名中的某一个相同),而且要很实际数据表中相关字段的名称相同。
数据维护部件1与数据维护部件5进行数据录入的方式和其他部件不同,采取将SQL语句发送到远程执行的方法,使得在数据库中定义了关键字的表也能进行录入操作(其他部件许多未能解决这一问题)。但在远程数据库中关于日期类型字段常量的表示方法各不相同,目前只设计了部分方法,使得这二个部件在作录入模块时不能适应各种数据库的要求。目前已通过测试的有Oracle9i系统、Oracle10g系统、SQL Server2000系统、SQL Server2003系统、与Access2003系统。将在下一版中解决该问题。
      2. 表格式维护部件
      表格式维护部件以表格形式显示表中数据并提供数据维护手段。 调用时在菜单项的过程中写入的程序的格式与数据维护部件相同,只是部件名称不同。
      其用途:可以作为数据输入模块、修改程序、删除程序、综合数据维护模块、条件查询程序、排序、打印程序模块等使用。对于有备注字段或通用字段或界面中字段较多总面积较大的情况不适合。如果希望次显示多条记录供处理,选择本类部件比较适合。
      一般作为数据输入模块使用时常选择:之前录入、之后录入等按钮协同工作。
作为修改程序、删除程序等使用时常选择:查询、条件查询、索引、再次索引及各种存盘或删除按钮协同工作。
      作查询程序时常选择:查询、条件查询等按钮协同工作。
      作排序时可只选择排序按钮,也可以选择索引、再次索引等协同工作。
      作打印程序模块等使用类似于查询。加转EXCEL或打印予览或打印按钮。
      有关部件概况:本系统提供了6个表格式数据维护部件。都可以提供三种显示界面,通过按钮操作变换。
      表格式数据维护部件1与2具有自适应功能,每写最后一条数据时会自动产生新行,因此无须添加按钮就能不断进行录入操作。在数据输入到表格中后立即自动存盘,因此也不用存盘按钮。可以用鼠标拖动使对连续一片的记录加删除记号。其他完整性保护、安全性保护、派生数据处理和单记录方式的数据维护部件相同。1和2的区别在于关于代码数据与历史数据帮助录入功能的实现方法不同,1是靠弹出的组合框,2是靠所有字段共用的列表框。当有了代码表,并且在接口参数表中进行了登记(利用“最小系统”的“接口参数表维护”菜单项下“代码表登记”进行操作)的情况下,如果在变量“字段号表”中列出了要显示的字段号,在要求有代码的字段的字段号前加a或b或c或d,然后运行“表格式数据维护部件1”,当焦点落到有代码字段上时,将弹出组合框,用户可以用鼠标选择合适的代码录入。当误操作使表内出现关键字重复记录时,表格式数据维护部件1往往可以用来删除这样的记录。
      特别注意:为了避免录入数据中有空值,使之后操作出现不便甚至错误,建议做录入用时,选择表的全部字段,即在“留下按钮号”一栏中保持空白。需要将录入调用与修改、删除调用区分开来。
      如果未给定打印格式文件,当按以上二部件的“打印予览”按钮时,将首先帮你建立与数据表名加“格式文件”为名的打印格式文件,并进入打印予览操作。在建立过程中,提供选择需要打印的字段及定义每一拦宽度的方便。
表格式数据维护部件3在修改完一条记录后必须按存盘按钮才能保存,是唯一可以用来修改关键字值的部件,其用途一般不做录入用,主要用来做可能要求修改关键字值的操作,但速度较慢,且要求操作“存盘”后退出运行,需要重新进入系统。
      表格式数据维护部件4数据源直接绑定数据表,因此也无须存盘按钮,但与1和2不同,1,2设计有临时表,因此功能可以设计得强一些,便于实施实体完整性控制。该部件使用时要先按添加按钮产生一个空行后才能录入。
表格式数据维护部件5未使用接口参数表,其他与4相同。
      表格式数据维护部件6允许对接口参数中“关键字1”中给定的带有层次特性的多个字段名用目录树形式提供全部数值供选择,用户选中其中一个后,该记录会显示出来供修改。 注意一定要定义“关键字1”!
      表格式数据维护部件7是对本地表数据维护程序,无需入口参数,数据表名称在运行时通过按钮在本地表目录中选择给定。
      3. 一对多数据维护部件
      一对多数据维护部件在界面上同时显示具有一对多关系的二个数据表的数据,可以对二个表进行录入、修改、删除、查询等操作。
      在操作时提供参照完整性保护。方法是:先在主表中选定一条记录,当在子表中添加一条新记录时,会自动将主表中与子表中也有的同名字段的数据取出,填写到主表中;如果在主表中删除一条记录,回提问是否同时删除字表中外关键字值相同的记录,如果回答是,将删除字表中相关记录;如果修改主表中和子表外关键字同名字段的数据,将同时按同样数据修改子表中的数据。
      提供关联操作:当在主表中选择一条记录时,子表中将显示外关键字值相同的所有记录,提供修改操作方便。
其用途:在提供参照完整性保护和关联操作的情况下对主表、子表进行数据维护操作与查询操作。与单表操作的不同点在于:1、当在主表中选择一条记录时。子表中应当只显示外关键字值相同的相关记录数据供修改操作。2、当子表中录入新记录时,其外关键字数据应当等于主表中当前记录中外关键字的数据。3、当从主表中删除一条记录时,应当提示是否同时删除子表中相关联的数据,以保证参照完整性。当用户确认后,应将子表中相关联的记录一并删除。4、当修改主表中数据且修改了外关键字的值时应当将子表中外关键字的值修改为同一值。但是,一般外关键字多为子表关键字的一部分,当远程表不允许修改关键字的情况下,这一操作无法完成,因此本系统多表维护部件普遍未加该功能,统一规定不得修改关键字与外关键字的值。如果用户有特别需要,可以另外设计。
      对主表的操作一般提供录入、修改、删除、查询、指针移动等功能。
      对子表的操作一般提供录入、修改、删除、查询、索引、打印、转EXCEL、浏览等功能。
      如果主表字段较少,需要较大子表空间,而且子表字段也不多,希望能一次显示多条记录,采用多表数据维护部件1与2较好。如果有比较多的字段需要代码表或历史数据支持,或希望多采用鼠标帮助操作,以多表数据维护部件2较好。
      如果子表中存在文本、图片等内容,以选择多表数据维护部件3比较好。
      多表数据维护部件4能直观看到二个数据表之间关联情况,当需要展示的二个表的字段数都不多时,可以选择使用多表数据维护部件4。该部件未附对主表作数据维护操作的功能。
      如果不要求对主表作维护操作,主表数据只是子表数据的引导,使用多表数据维护部件5也比较方便。
有关部件功能性能概况:多表数据维护部件1以单记录式界面显示主表数据并允许对之做维护操作。以表格形式提供对子表数据维护的界面。某些数据需要采用组合框显示其代码表,让用户通过鼠标点击从代码表中选择代码或代码代表的内容录入到数据表中,可以保证数据的规范性、标准性、一致性,为统计操作的准确性打下基础,也可以加快录入速度。同时,某些数据可以从已经录入过的数据(称为历史数据)中选择录入,也用组合框显示去掉重复值的这些数据供用户选择。
      多表数据维护部件2以类似于多表数据维护部件1,但是不采用组合框,而是采用统一的列表框显示相关字段的代码表或历史记录,以单记录式界面显示主表数据并允许对之做维护操作。以表格形式提供对子表数据维护的界面。
多表数据维护部件3以单记录式界面显示主表数据并允许对之做维护操作。同样以单记录式界面提供对子表数据维护的操作。主表与子表各采用统一的列表框显示相关字段的代码表或历史记录中的数据供选择录入。
      多表数据维护部件4同时用表格形式提供对主表显示与对子表数据维护的界面,不提供对主表的维护操作。在主表数据指针改变时从表中数据相应改变。当从表添加新记录时从主表中取出当前记录中同名字段的数据自动添加到从表中,使加快录入速度。
      多表数据维护部件5以列表框显示主表部分属性数据,不提供对主表的维护操作。同时以表格形式显示从表中数据并提供数据维护手段。在主表数据指针改变时从表中数据相应改变。当从表添加新记录时从主表中取出当前记录中同名字段的数据自动添加到从表中,使加快录入速度。如果预定了关键字1,将自动在添加新记录时将该字段最大值加1后填入表中,即自动编写关键字,如果未定义变量"关键字1",将不做此操作,对运行无影响。
      多表数据维护部件6的目的是为了某些快速录入的实现,可以根据二个表的数据先生成一个空表,在其中只填少数字段的数据,在其他表中能找到的数据自动录入到新表中,再转录入远程表。例如填写某门课的成绩,成绩表中有字段:学号、课号、分数等字段。需要根据学生表中的班级与课程表中的课名建立一个包括学号、课号与分数的空表,其中学号从主表(学生表)中根据班级查到该班级全部学生后取出学号录入新表、课号要根据课名从课程表中查到后填入新表,只留下分数数据需要用户录入,用户根据成绩单向新生成的这个临时表录入分数数据,再转录入到成绩表中,能提高操作速度。调用方法:输入的参数有:数据表名称、相关表名称、外关键字、关键字1、字段号表、字段号表1、字段号表0。其中,数据表名称、相关表名称、外关键字、关键字1、字段号表1 等的意义与输入格式与其他部件保持一致,只是相关表名称可以输入二个表的名称,之间用逗号分隔。前一个是接受最终输入的子表名(例如成绩表),后一个是另一相关子表名,例如课程表或课程代码表。要求在主表中必须有一到多个字段与第一子表中1到多个字段同名,这些字段的数据以后可以自动放到新表中。在第2子表中也必须有一到多个字段与第一子表中1到多个字段同名,这些字段的数据以后也将被自动放到新表中。在“字段号表”中填写主表中的字段号或字段名,可以是1个,也可以是2个,最多2个,之间用逗号分隔。填生成新表的某一字段数据的依据,例如班级,将根据这1或2个字段所选值查主表中满足匹配条件的1或多个字段的所有数据(例如学号)自动填到新表中。“字段号表0”中填写第2子表中的字段名,可以是1个,也可以是2个,最多2个,之间用逗号分隔。用户选择这些字段的值作为生成新表的例外一些字段数据的依据,例如课名,将根据这1或2个字段所选值((本部件规定只取一个值)例如课号)填入新表,上述自动填入的数据在之后录入过程中不可修改,这样可以加快录入速度。只有非上述数据的数据需要用户手工录入(例如分数数据),用户可以只填写分数数据及其他另外二表中非同名字段的数据。最后按“添加式存盘再全部加到远程表(例如成绩表)中。
      多表数据维护部件7的目的是为了快速修改子表中的数据,可以根据主表部分字段与子表部分字段建立索引目录树,当用户选择某目录时,程序自动调出相关子表中的记录在窗口中显示,用户可直接在窗口中修改,完成数据维护的工作。输入的参数有:数据表名称、相关表名称、外关键字、关键字1、字段号表、字段号表1、字段号表0等。要求将列入目录树的主表字段的字段号写到“字段号表”中(可以为空,那么和单表目录树结构部件功能相同),将列入目录树的子表字段的字段号写到“字段号表0”中,其他参数意义与填入内容与其他部件相同。构成目录项的标识的是有关字段的值,该值不得以数字打头,如果实际数据以数字打头,本程序叫自动在数字前按层次           加"A"、"B"、"C"……等;在不同主枝上的子枝名字如果相同,之后会合并到稍前的主枝中,使搜索路径出现改变,本程序为解决此问题,将自动在相同值后面加数字区分;构成目录树的字段类型要求为字符类型,本程序将自动将整型、数值型、日期时间型改为字符型数据放入目录树,因此,本程序允许构建目录树的字段限4种类型:字符型、整型、数值型、日期时间型。
      4. 查询部件
      查询是对数据各类操作都需要进行的操作,其效率对系统工作效率影响极大,需要提供各种方便用户查找的界面。本系统提供了可以由程序员预先定义一个查询表达式的单条件查询、由程序员预先定义二个查询表达式的二条件查询,有关条件如果是一个,写到变量“字段号表”中,如果是二个,另一个写到变量“字段号表0”中。(以上一个到二个条件可以是字段名的条件,例如:  学号   或  学号=   (如果后面有关系符,界面中将不出现供选择关系符的组合框。以下同)。
      也可以是表达式,例如:  固资+活资   或  固资+活资>=
      可以是聚集函数,例如:   sum(应发工资)   或  sum(应发工资)>=    。注意如果有聚集函数,必须要给定分组字段,方法是在“字段号表1”中以冒号加字段名的形式给出。例如   :部门号      表示按部门号分组,再根据各组应发工资的和形成查询条件。
      注意,对于单条件的情况,在“字段号表”中只能写一个字段名,或一个表达式。对于二条件的情况,在“字段号表”与“字段号表0”中可以写一个字段名或一个表达式,也可以写多个字段名(用逗号分隔,但其中不得有表达式),否则出错。
      提供单查询部件则需要用户先选择字段,再选择关系符,再进行查询。可以设定对输出内容的要求,方法是在变量“字段号表1”中以字段号、字段名、表达式形式列出要求。例如    1,3,4,固资,7,10,固资+活资   
字段号、字段名、表达式可以混用,也可以有聚集函数,但其后必须给出分组字段。      例如:    姓名,部门名,SUM(固资),SUM(应发):部门号
      为了满足预先难以确定的查询要求,设计了从简单到复杂的多个组合查询程序,使用这些程序时,要求用户选择字段、选择关系符,再输入查询值,一个一个条件放到专门准备的编辑框中,用户可以自行修改,再进行查询。
查询部件用途:按用户需要根据各种各样的条件对数据库中数据进行查询,对文本进行检索,并按用户要求输出结果。
      提供对数据库中数据按照单条件、二条件、多条件的查询,可以根据字段值、表达式、函数式、字段的子项、分组统计数据等构成条件式再进行查询,并将查询结果输出出来。查询结果可以是字段、表达式、函数式,也可以是分组统计结果。有些部件可以用于对文本的检索。有些部件可以对数据表中数据做统计操作。
一般都以列表方式显示结果,还提供打印、转存文件、转EXCEL等功能。有些部件可以转单记录维护程序,通过比较复杂的查询找到有关数据再转入数据维护操作。
      有关查询部件功能与性能:查询部件1为由程序员预先定义查询表达式的单条件查询,有关条件写到变量“字段号表”中,可以是一个字段名,也可以是一个表达式;后面都可以加  >、<、>=、<=、<>、=、$、!$  等符号。输出要求写到“字段号表1”中。
      查询部件2为单条件查询。用户先选择字段,再选关系符,再进行查询。输出要求写到“字段号表1”中。
      查询部件3由程序员预先定义查询表达式的二条件查询,有关条件写到变量“字段号表”和“字段号表0”中,各可以是一个字段名或一个表达式;后面都可以加  >、<、>=、<=、<>、=、$、!$  等符号。也可以是由逗号分隔的多个字段号,后面不得有关系符。二个条件间可以组合成“与”或“或”的关系。输出要求写到“字段号表1”中。
查询部件4为简单的多条件组合查询。用户先选择字段,再选关系符,输入查询值,按加入条件的按钮,再选下一个条件,条件组合完成后,可以修改条件,再进行查询。可以将输出要求写到“字段号表1”中,如果不给要求,表示按全部字段输出。
      查询部件5为较复杂的多条件组合查询。用户先选择字段,再选关系符,输入查询值,按加入条件的按钮,再选下一个条件,条件组合完成后,可以修改条件,再选择输出内容,包括生成涉及聚集函数的条件(一定要选分组字段),再进行查询。输出要求不能预先在接口中给出。
      查询部件6到9为多表查询,将首先将列在“数据表名称”中的表、写到“相关表名称”中的各个表及在接口参数表中登记了的代码表关联到一起,在如前面类似的界面中提供查询操作。其中查询部件6为单条件查询。
查询部件7为完全SQL语句组合查询程序,也可以作SQL语言SELECT语句练习工具使用,输出为一到多个原数据表经连接之后的表的子集,输出要求与分组条件写到“字段号表”中,其中输出要求可以用字段号、可以用字段名、也可以用函数式(函数式与表达式中只能用字段名表示字段,不能用字段号),如果输出内容中有聚集函数或有分组条件时,必须给分组字段名,分组字段名放在“输出要求”之后,用冒号与前面分开。分组字段也可以有多个,由逗号分开。可以预给查询条件表达式,条件表达式要求写在“字段号表1”中。还可以预给分组后按组值构成的条件表达式,分组条件表达式要求写在“字段号表0”中。在执行程序过程中可以临时修改输出要求、分组字段、各条件表达式,再执行,程序中给了相应的帮助,使达到学习SQL语言的目的。注意,中间所使用的表名只能是远程表的视图或本地表名,远程表视图名由远程表名加“视图”二字构成。还要注意,表与表之间必须有一个同名字段,将根据该字段建立连接,在条件语句中必须有连接子句。如果在输出要求、条件子句等中出现同名字段名,之前必须加表或视图名,且与字段名间用逗号分隔。本程序不能使用代码表,不能根据非数据表中的字段进行查询。
      查询部件8为与查询部件5类似的组合查询。
      查询部件9为较复杂的查询,可以设置分组后的分组条件(条件式列在Having子句中)。关于分组条件的操作是:先选定字段,再选聚集函数,写入分组数据,加入到右下角编辑框中,再选择与加入下一条件。
      查询部件10、11对备注类字段中文本进行检索式查询。在文本框中,按目前各搜索网站同样方法输入检索关键字,再进行查询。
      查询部件11是简单的检索式查询,在接口参数中不给接口参数表序号,不涉及接口参数表的使用。
      查询部件4到9的操作虽然麻烦,但可以适应各中查询需要,使用更灵活。不过,对操作者有较高的要求。
      5. 关系运算部件
      关系运算部件计算二个表之间的并集、差、交集、商,结果一般放在本地表中,有些存在转加到远程表的需求。除关系运算部件1只需要数据表名称外,其他四个部件要求定义的参数都是数据表名称(第1表名称)与相关表名称(第2表名称),此外,可以选择字段号与按钮号。
      求二个表之间的并集、差、交集时要求二表字段结构相同,包括字段数量一样、字段名相同,字段的属性也要相同。本系统部件考虑到处理异构数据的需要,允许存在不同,将对本地临时表经过变换后再运算,但结果一般限存放到本地表中。
      求二个表之间的商时要求二表有一到多个字段结构相同,包括字段名相同,字段的属性也要相同。作为除数的表就由这些字段构成(假如用Z代表),要求没有重复值。作为被除数的表除了有这些字段外(假如用Y代表),还有一到多个字段(假如用X代表)。在表1中X的数据存在重复,可以按其值分组,二表的商就由这些字段构成。求商的方法:对表1按X部分一组组进行分析,如果X的某一组记录的Y部分的数据全部包含Z部分的数据,就将该组X部分的字段或字段组的值加入到“商”表之中。
      本系统包括5个关系运算部件。关系运算部件1处理比较常见的一类求交问题:在一个数据表中查找并去掉记录值完全重复的记录。本部件也允许选择一部分字段,查找这部分字段值相重复的记录。操作时先要求做查找操作,查找成功后再按物理删除按钮删除。
      关系运算部件2求二表并集,实际是将二表中不重复的记录合并到一个表中,为统计操作服务。操作时可以指定一个存放结果集的本地新表,便于进一步处理。
      关系运算部件3求二表商。主要运算按钮包括"表1除以表2结果到本地新表"按钮和"按选中分组字段求商到本地新表"按钮,前者自动求二表中同名同类型字段为求商字段(Y部分),表1中其余字段为分组字段(X部分)。表1中每组分组字段的值在满足除法条件时取做商的值。因此当使用该按钮求商时可以不选择分组字段与求商字段。但是,当选择了分组与求商字段后,按选择的字段求商。第二个按钮可以处理求商字段(Y部分)字段名相同但类型和其他属性不相同的求商问题,处理时会自动找出二表中(或二表选定的字段中)同名字段,如果发现其中存在字段属性不同,将自动按表1的字段属性修改表2相关字段的属性,再进行求商运算。考虑到还可能有字段名不相同的问题及只取表中部分记录进行运算的问题,提供了修改表1与表2结构的二个按钮,可以临时修改二个表的结构及按条件修改记录数据后再行操作。可以通过选择查询按钮及浏览按钮临时对表进行选择操作,注意如果既要修改字段属性又要选择记录,应先作前一操作,再将结构变换完毕后再作选择操作。以上提到的修改字段名或字段属性、选择记录等均只修改本地临时表,不影响远程表结构,可以借远程视图及一个恢复按钮将本地临时表结构恢复到开始状态。
      关系运算部件4求二表差,实际是将第1表中存在而第2表中不存在的记录取出到一个本地新表中,或将第2表中存在而第1表中不存在的记录取出追加到远程第1表中。
      关系运算部件5求二表交集,实际是将二表中相同的记录取出到一个本地新表中,可以选择部分字段求交。
关系运算部件2、4、5允许将某些结果传送到远程新表中,传送前需要建立新表。其中对于不同数据库,系统中设计了一个“数据类型.dbf”表,如果是Oracle、SQL Server、Access之外的数据库,需要选择其上某一种结构,如果皆不合适,可以修改“数据类型.dbf”表的内容使相适应。
      该组部件可以提供数据库关系代数辅助教学工具之用。
      6. 数据处理与统计类部件
      关于数据表中数据的处理,除了查询与比较规范的报表外,还常有一些涉及数据统计的操作。本系统提供的本系列部件用于数据统计及打印操作。可对数据表中若干列进行求和、求平均、求最大、求最小、求记录条数或分组求和、求平均、求最大、求最小、求记录条数等操作;按某一列或某二列数据分组后求各组统计数据的操作。对统计结果显示打印或形成统计图形输出。调用多表产生的打印格式文件进行打印操作。
      具体而言:数据处理部件完成记录横向数据各种处理操作,提供120多种处理程序,包括统计计算、数据预置、批处理、求函数值等。还可以自己添加新的程序,借助选择与投影界面进行数据处理。操作时首先选择记录筛选条件与定义输出要求,再选择输出结果保存位置,选择计算公式或程序,在进行处理并观察结果。用户可以在foxuser1.dbf中添加新程序,其程序名用V打头,就可以将新的处理加入到系统中,可以不断补充,使系统功能日益加强。
      统计打印部件1生成交叉表及表现交叉表的柱面图、圆饼图、折线图、金三角图等。操作时,先选择记录筛选条件,不做选择意味全部记录。再选择字段,要求选择三个字段,第一个字段数据决定交叉表的纵向分组,第二个字段数据决定交叉表的横向分组,第三个字段要求为数值类型字段,按纵向分组与横向分组决定其位置(也可以为字符类型,但其中数据必须全为十进制数据)。每一组只取一个数据,如果纵向分组与横向分组数据相同的记录有多个,将只取最后一个列入表中。选择字段后,按统计按钮,将产生交叉统计表;如果按“统计图”按钮,先显示交叉表,再进入统计图界面,可以用柱面图、圆饼图、折线图、金三角图等表现第二个字段与第三个字段间数据关系,在图的左边列出了第一个字段各大组数据,当选某一组,再选择图形种类,就更换显示该大组的一个统计图。也可以选择全表柱面图、圆饼图、折线图,将显示所有各大组统计图。统计表可以转EXCEL再处理,也允许根据交叉统计表自动生成打印格式文件,并组织打印。
      统计打印部件6允许先对每一大组中各组数据求和、求平均值、求最大值、求最小值、求记录条数之后再进行类似与统计打印部件1相同的操作。操作时需要选择统计类型,另外,第三个数据只能是数值类型。
      统计打印部件2用来产生一元线性回归图形。操作时同样先选定记录选择条件,不做选择意味全部记录。再选择字段,要求选择二个字段,第一个为纵向字段,对应二维图形的纵坐标,要求必须是数值类型数据,也允许是字符类型数据,但要求其内容全由十进制数据构成,即能通过字符到数值的转换变成数值类型。第二个为横向字段,对应二维图形的横坐标,要求必须是数值类型数据或日期类型数据,也允许是字符类型数据,同样要求其内容全由十进制数据构成,即能通过字符到数值的转换变成数值类型。有些数值数据太大或太小,需要将之乘上10  的负N次方才能比较清楚地得到图形,在选择字段后,可以输入N的值。然后,按“显示折线图”按钮可以显示折线图;按“一元线性回归”按钮可以显示原数据点的分布、显示所得到的一元线性回归直线、显示一元线性回归直线方程及方均误差数。如果全是数值类型数据,允许输入横坐标数据,进而计算并显示予测的纵坐标值。
      统计打印部件3在已经设计了打印格式文件的情况下,调用打印格式文件,执行打印予览或打印操作。可以将打印内容转文件保存。可以查看与临时修改欲打印的数据。可以进入修改打印格式文件的界面,对格式文件进行修改。
      统计打印部件4对数据列进行求小计、分组平均、分组最大、分组最小、分组记录条数、分组方差、分组标准偏差及算术平均值的标准偏差,同时可以计算各相应总计等值。可以一次对多个字段处理。最多可按三个字段数据分组。可以输出明细带小计,也可以只输出小计与总计。可以输出最后一组的小计,也可以输出关于三级分组每组的小计。可以将输出结果转EXCEL或产生一个格式文件后进入打印程序。操作时首先选择分组字段,再选择记录筛选条件,再选择显示字段与统计字段。当用鼠标在表中点某一行时,有关行号会自动列入显示字段与统计字段框中(请注意将不需要的字段删除)。最后选择公式,再按相应按钮就可以完成统计操作。
      统计打印部件5同样是对数据列进行求小计、分组平均、分组最大、分组最小、分组记录条数,同时可以计算各相应总计等值。可以一次对多个字段处理。最多可按三个字段数据分组。与统计打印部件4不同之处第1是没加入记录筛选程序,第2是不同统计类可以在一个表内显示。可以将输出结果转EXCEL或产生一个格式文件后进入打印程序或转存另一个数据表中。操作时分别选择分组字段、求和字段、求平均字段、求最大字段、求最小字段、求记录条数字段,之后按相应按钮就可以完成统计操作。
      统计打印部件7类似于统计打印部件6,根据横、纵二个字段数据进行多层次分组,分析第三个数值字段数据与它们的关系,得到交叉表。
      统计打印部件均具有打印报表功能,其中统计打印部件4与6具有根据模板建立打印格式文件的功能,可以预先设计字典表,表名要求以“统计类字典表”打头。统计打印部件6要求字段有:“字段原数据”、“新数据”二个字段。统计打印部件4要求有:“字段原数据”、“新数据”、“字段名”、“类型”等4个字段。其中,统计打印部件6的“字段原数据”一列填原数据表中将转为字段名的分组字段各组的值,“新数据”填新的对应变化的字段名,长度不超过10个字符。统计打印部件4中“字段名”中填当前变化的数据的字段名,必须是某个分组字段中的字段名,“字段原数据”填该字段原数据值,“新数据”填新的对应变化的数据,“类型”中填统计类型,例如:小计、平均、最大、最小、记录数、总计、总平均、总最大、总最小、总条数等。采用模板方式使打印格式固定,使类似于财务的损益表的报表可以容易地建立。
      7.数据通信与导入导出部件
      应用系统常常需要和其他系统、其他程序交换数据,本系列部件完成这项工作,包括从其他文件或数据表中导入数据,或将本系统数据表中数据导出到文件或数据表中。数据传送时,常常需要对多表预先联接、限定数据范围(包括按某条件选择记录及按某条件选择列),某些操作还要求改变数据属性(例如字段名称、数据类型与数据宽度等,有些要求按预先设计的字典表导入或导出)。文件的数据格式常见的有SDF、DELIMITED、EXCEL、HTML与自定义格式。
      SDF 文件是一种 ASCII 文本文件,记录有固定长度(根据所定义的数据表格式),并且以回车和换行符结尾,各字段不分隔开。文件的默认扩展名为 .TXT。
      DELIMITED文件是 ASCII 文本文件,文件中每条记录以回车和换行符结尾。各字段内容默认地由逗号分开,字符字段值还需要用引号括上。例如:"Smith", 9999999, "TELEPHONE"。
      自定义格式也是 ASCII 文本文件,文件中每条记录以回车和换行符结尾。各记录起始符与结束符及各字段内容分隔符可以由用户指定。
      数据导入时常有:添加方式(原有记录保持不变,再增加导入的记录)、复盖方式(原有记录删除后增加导入的记录)与替换方式(根据关键字相同的条件用导入数据去修改原表数据)。
      数据传送部件1实现从EXCEL文件导入数据,处理时要求先将原EXCEL文件中数据转到记事本中再导入,当数据类型较多时,这是一种可靠的方法。
      数据传送部件2实现从一个数据表或视图中取出数据再导入到另外一表中,要区分传送的是否包括备注类型字段数据。字段名与数据类型如果一致,可以简单地实现导入,否则要先设计好字典表,再利用字典表完成逻辑异构数据的导入。操作时先选择源数据表与目的数据表,再定义字段的对应关系(字段名相同的可以按“查相同字段名字段按钮自动列入)。再规定记录筛选条件,选择导入方式(添加方式、复盖方式与替换方式),再按相应按钮实现导入。
数据传送部件3从TXT文件或EXCEL文件导入数据,TXT文件格式可以为SDF、DELIMITED、或自定义格式。首先选择TXT或EXCEL文件名及目的文件名,再选择对应字段名称,选择导入方式,如果是自定义格式,要输入记录开始符、结束符与字段间分隔符,然后按相应按钮实现导入。如果从EXCEL文件导入,要求EXCEL文件为EXCEL95格式,而且最好全是字符类型数据(如果有非字符类型数据,常需要先按字符类型导入后再变换)。
      数据传送部件4实现将当前系统中数据导出到另一个数据表中。可以按原结构导出,也可以改变字段名后导出,还可以改变数据类型与属性后导出。
      数据传送部件5将当前系统中数据导出到文件中,文件类型包括TXT结构的SDF、DELIMITED、HTML与自定义格式及生成EXCEL文件。可以规定导出记录筛选条件。
数据传送部件6实现将当前系统中一到多个表联接数据导出到另一个数据表中。可以按原结构导出,也可以通过一个字典表改变字段名后导出,还可以改变数据类型与属性后导出。程序中提供关于字典表维护的方便。
      数据传送部件7将当前系统中一到多个表联接数据导出到文件中,文件类型包括TXT结构的SDF、DELIMITED、HTML与自定义格式及生成EXCEL文件。可以规定导出记录筛选条件。
      8.打印格式文件生成辅助工具
      开发工具类部件提供打印格式文件生成程序,用于生成各种格式的打印报表的格式文件,其特点是提供了修改元素位置参数、通过数字调整生成界面与通过可视化环境手工修改界面等二种格式生成方式。功能包括:自动生成供生成打印格式文件的打印格式数据表、修改打印格式数据表、生成打印格式文件、进入可视化格式文件修改界面、重生成打印格式文件,多表组合查询与按格式打印等。
      单记录式报表部件名为“工具类部件6”。
      有三种格式:1、打印表每页一条记录,所有字段分为若干列,格式例如:
      学号     20001220 姓名 王平 性别 男
      出生日期 1980/03/23 班级 200001 电话 88120302
      操作时先输入标题、选字体字号,选输出的字段名,再定列数,列数以字段(标签加字段值)为单位。例如上例中列数为三。选完后按"不加线条"《生成表格式格式》按钮或"加线条"《生成表格式格式》按钮。按后要求选:"打印一页"或"打印所有记录,但每次只打印一条记录",再下面会告知一个打印页的宽度,并显示当前各列的宽度。可以在表中修改各列宽度。最后产生打印用格式文件,该文件名为所定"打印格式文件名"加扩展名"frx"。在资源管理器的文件目录树中双击该文件名,可以进入格式文件修改程序。用户可以对初步成型的打印格式文件进一步修改,再正式加入到系统中。
      2、生成整齐但不规范的表,每行总宽度相同,但列数不相同。操作时无需定列数,直接按"生成非规则格式"按钮就可以生成。
      3、生成自定义单记录打印格式文件,每行总宽度与列数都由用户修改确定。选择相应按钮后将列出当前每一行每一列宽度,用户可以修改,然后生成。
      自动生成打印格式初步格式数据表文件,该文件将有关字段及其位置简单分布在格式文件中以备修改。其内容包括:1、行号:每一个控件在打印格式文件中排在第几行。2、列号:每一个控件在打印格式文件中排在某行内第几列。3、左边距:该控件距离打印区左边的距离,以英寸为单位,1英寸等于2.52厘米,在打印格式文件生成器中标尺的单位为英寸。4、到顶距离:该控件距离打印区顶部的距离。5、长度或宽度:该控件的宽度,对于线条指线的长度。6、高度:该控件的高度。7、字号:字的大小,对于线条指线的宽度。8、上下有线条:填有或无,说明该控件上下是否加线条。9、横线纵线:对于线条用于表示其方向。10、内容:对于标签,填标签的内容;对字段变量或内存变量填变量的名字。11、所在带区:填该控件排布的位置在那一带区。A、标题带区每页打印一次;B、细节带区每条记录打印一次;C、注脚各带区在有分组情况下每组打印一次;D、总结带区全表完时打印一次。12、公式:A、对于标签,保持为空;B、对字段变量或内存变量填变量的名字,也可以填由字段或常量构成的表达式。
      通常以上生成的界面都很不令人满意,可以先手工将过宽的元素宽度人为地减少。程序将自动按设定宽度决定宽度,注意在修改每列宽度时兼顾全列、全行的宽度。
      表格式报表格式文件生成部件部件名为“工具类部件5”。
      功能是根据输出的字段的要求生成表格式的报表格式文件,提供三种格式:1、明细表格:每条记录占据一行,打印满足组合查询条件的全部记录。(如果未定查询条件,将打印表中的全部记录)2、包括明细,并对部分字段总计的表格式报表,作总计的字段允许是内容由数字字符构成的字符类型数据。操作时必须选择作总计的字段并利用"加入求总计字段"按钮加到文本框中。3、包括明细,并对部分字段求小计或总计的表格式报表,作小计或总计的字段允许是内容由数字字符构成的字符类型数据。操作时必须选择作小计与总计的字段并利用"加入求小计字段"、"加入求总计字段"按钮加到文本框中。还必须选择分组统计的字段(最多三个,彼此用英文逗号分隔)。
      例如:先在接口参数输入表单中利用"打开"查找并选定主表名(例:生源)、从表名(例:成绩)、代码登记表按默认值不变、从键盘输入打印格式文件名(例:AAA1),按退出或回车。
      选按菜单项"生成表格形式格式文件",对于问题"是否生成新格式表……"回答"是"。(注:默认描述打印格式的数据表文件名是"打印格式文件名"加"表",本例是"AAA1表"。如果对已有表修改,按"否")。
先设计并预设标题及字体、字号。
      选输出字段(例:姓名,院校名称、学号、课名、分数)、分组字段(例:姓名)、小计字段(例:分数)、总计字段(例:分数)。按 "明细、小计与总计"按钮就可以生成格式文件。
      标签式报表生成部件部件名为“工具类部件7”。
      根据输出的字段的要求生成标签式的报表格式文件,提供三种方式:1、一个单记录表格形式的表重复多次:先建立一个单记录表格,再复制成多个表格,这些表格中的数据可以是数据表中同样一组数据,也可以分别来自不同记录的数据。2、、一个单记录非规则格式的表重复多次:先建立一个单记录非规则格式的表,再复制成多个表,这些表中的数据可以是数据表中同样一组数据,也可以分别来自不同记录的数据。3、与2类似,但进行中会显示有关字段的位置,允许先修改后再建立标签。
      操作时先选择字段,如果是表格形式,要输入每一小块的列数;如果是非规则格式,要输入一小块的宽度。然后,输入一行有多少块以及纵向一列又分多少块(构成多少块的行)。再输入行内块间距离与纵向块行之间距离。再按生成一块的按钮(有三个按钮,分别产生表格式、非规则式与可调整式单块结构)。如果需要,再按加线条的按钮。最后,如果生成不同块数据相同的标签,就按“同条记录重复标签”按钮,否则,按“不同记录标签”按钮。
      9.其他工具类部件
      目录树帮助系统生成部件用于生成目录树控制的有语音、图形的帮助程序的数据表,也可以用于设计音、像盒、名片、产品广告、企业介绍等。
      以目录树结构形式显示帮助生成时输入的内容。本部件名为“工具类部件18”。
本程序默认的数据表名是“目录树帮助表”,如果要用其他表名,要求结构必须一致(通过复制本库提供的目录树帮助表得到),同时在调用时要写明表的名字(如果不改变表名,可以保持变量“数据表名称”为空格)。
      使用时首先进入“最小系统”,运行“开发工具”中目录树帮助生成,建立帮助文件。操作时,如果要增加节点(不论是根节点还是枝与叶节点),先在“新节点名”中输入一个标签内容,如果是根节点,按“建第一级节点”按钮,就可以见到增加了一个根节点;如果不是根节点,是挂在某一节点个子之下的节点,就用鼠标去点这一节点,将发现该节点下新增加了一个子节点。如果要在某节点下填入帮助内容,先清干净“新节点名”中的内容,再点该节点,之后在右边填入帮助内容就可以了。每一个节点可以有一个文本与最多二个画面(可以专有文本或专有画面),画面中可以填画片、WORD文件、EXCEL文件与WAV声音文件。
      调用“帮助类部件2.EXE”可以显示帮助内容。
      目录树控制部件可用于工作流系统。目录树形式的菜单具有纵向分布、层次鲜明,信息量大等特点,现在越来越受欢迎。本部件用于建立目录树形式的菜单。本程序部件名为“工具类部件19”。默认的数据表名是“目录树菜单表”,如果要用其他表名,要求结构必须一致(通过复制本库提供的目录树菜单表得到),同时在调用时要写明表的名字(如果不改变表名,可以保持变量“数据表名称”为空格)。
      使用时首先进入“最小系统”,运行“开发工具”中目录树菜单生成,建立菜单文件。操作时,与目录树帮助一样,先建立目录结构,如果要增加节点(不论是根节点还是枝与叶节点),先在“新节点名”中输入一个标签内容,如果是根节点,按“建第一级节点”按钮,就可以见到增加了一个根节点;如果不是根节点,是挂在某一节点个子之下的节点,就用鼠标去点这一节点,将发现该节点下新增加了一个子节点。如果要在某节点下填入执行程序的内容,先清干净“新节点名”中的内容,再点该节点,之后在右边填入程序语句内容就可以了,如果需要,还可以给定安全控制的条件。
      执行“系统控制类部件2”可以调用该目录树菜单,控制与驱动程序工作。
      为了加强系统性能,更充分发挥本系列部件的作用,许多要通过预设参数实现。本系统提供了对“接口参数表1”中数据维护操作的部件。
      工具类部件10用于登记注册代码表。在维护程序、查询程序、数据导出程序、统计程序中如果要使用代码表,除要建立代码表外,还要进行登记才能使用。这样做的目的是希望应用更灵活。登记时要写名代码表名字、代码字段名字、内容字段名字,及准备填入(对于维护程序而言)的字段的名字。目前我们规定,这一名字(数据表中某一个字段名)要和代码表中一个字段同名。
      工具类部件11用于填写数据域完整性约束条件(对于维护程序而言),可以填最大值、最小值、值集及条件表达式。
      工具类部件12用于填写计算派生数据的公式(对于维护程序而言)。使当焦点离开某字段时,自动计算派生数据的值,并填入数据表中。
      工具类部件13用于填写安全性约束条件(对于维护程序而言),先输入用户们注册名(相同约束的用户填到同一个框中),再输入安全性规定,可以规定某些字段对他们隐蔽,也可以用i,u,d分别表示录入许可、修改许可与删除许可。如果每填某用户的约束,则不约束其任何操作。
      工具类部件14用于定义单记录维护界面中字段的外观属性,包括高、宽、距窗口左边距离、距窗口顶部距离、字号、字体。在数据维护部件1与2中全部可以起作用,在其他单记录维护部件中,只有备注与通用字段的大小设定可以起作用。注意,在定义高度时,目前程序是按行数为单位计算的,例如高5字,实际是5行,越8个字高。请在设置时进行总结调整。
      工具类部件15提供对接口参数表1中全部数据的维护。
      10.系统管理与维护类部件
      工具类部件2提供建立新数据表功能。
      工具类部件3提供修改数据表结构功能。
      工具类部件4提供建立字典表功能。
      工具类部件8提供建立远程数据表功能。该部件可以用于SQL语言辅助教学。
      工具类部件9提供对远程表结构维护的功能。该部件可以用于SQL语言辅助教学。
      以上二部件的工作需要“数据类型.dbf”表中数据的支持,如果是Oracle、SQL Server、Access2003之外的数据库,需要选择其上某一种结构,如果皆不合适,可以修改“数据类型.dbf”表的内容使相适应。
      系统管理部件1为用户密码修改程序。
      系统管理部件2为公用的代码表维护程序,对在“接口参数表1”中所给定序号组中登记了的代码表进行数据维护操作。
      系统管理部件3为公用的清库程序,清库包括清空数据表或清空表的部分字段二种操作。
      系统管理部件4为公用的排序程序。

                                                                                  结束语
      本套部件库中的部件只是一个尝试,其全部完成与成熟还需要软件复用技术的爱好者及广大科技人员的共同努力。我们愿和大家一起共同为管理信息系统部件技术的发展而继续努力。
      本系统由程学先、程传庆、程传慧研制。本系统的研制得到龚晓明、王富强、陈义、郑秋华、史涵、周金松、叶品菊、曾玲、陈永辉、杨晓艳、刘伟、冯昭昭、王嘉、赵岚、童亚拉、张军、刘玲玲、赵普、张继等的支持与帮助;得到湖北工业大学、武汉大学东湖分校的关心、支持与帮助;还得到许多专家支持与鼓励,特在此一并表示感谢。
      需要本软件的同行可以函寄湖北省武汉市江夏区武汉大学东湖分校计科学院程学先,邮编430212,信中说明收邮件的Email地址,我们见信即发。关于这套部件的意见可以在我们在科学网上的博客中刊登,欢迎光临并发表宝贵意见!博客本主题地址:http://www.sciencetimes.com.cn/m/user_content.aspx?id=3853

 



https://blog.sciencenet.cn/blog-2551-262637.html

上一篇:就部件技术一些问题答redsms
下一篇:《数据库原理与技术》课件特色
收藏 IP: .*| 热度|

0

发表评论 评论 (1 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-26 12:21

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部