使用说明.txt

VF018资料信息管理系统

收藏

资源目录
跳过导航链接。
VF018资料信息管理系统.rar
VFP002资料信息管理系统
使用说明.txt---(点击预览)
论文
资料信息管理系统
Data
DAS.DBC
DAS.DCT
DAS.DCX
DataCate.CDX
DataCate.dbf
DataInfo.CDX
DataInfo.dbf
DataLend.CDX
DataLend.dbf
DepartInfo.CDX
DepartInfo.dbf
SYSUser.CDX
SYSUser.dbf
UserInfo.CDX
UserInfo.dbf
Image
BG.BMP
BG1.BMP
BG2.BMP
Bottom.bmp
CAL.BMP
Cancel.bmp
CCL.BMP
Close.bmp
Delete.bmp
Icon.ico
Modify.bmp
New.bmp
Next.bmp
OK.BMP
PASSWD.BMP
Prev.bmp
Save.bmp
Sear.bmp
Search.bmp
Top.bmp
about.SCT
about.scx
AUTOADD.FXP
AutoAdd.prg
CONFIG.FPW
DAS.PJT
DAS.PJX
dataadmin.SCT
dataadmin.scx
DataLend.SCT
DataLend.scx
datareturn.SCT
datareturn.scx
dataselect.SCT
dataselect.scx
FOXUSER.DBF
FOXUSER.FPT
GETPURV.FXP
GetPurv.prg
H_POINT.CUR
lendadmin.SCT
lendadmin.scx
LendTop.SCT
LendTop.scx
LOGON.SCT
LOGON.SCX
MAIN.FXP
MAIN.PRG
MAINFORM.SCT
MAINFORM.SCX
MainMenu.MNT
MainMenu.mnx
MAINMENU.MPR
MainMenu.MPX
MYTOOLS.VCT
MYTOOLS.VCX
SETPURV.SCT
SETPURV.SCX
SETUSER.SCT
SETUSER.SCX
sysuseradmin.SCT
sysuseradmin.scx
TopCursor.DBF
useradmin.SCT
useradmin.scx
userselect.SCT
userselect.scx
资料信息管理系统.exe
压缩包内文档预览:

资源预览需要最新版本的Flash Player支持。
您尚未安装或版本过低,建议您

VF018资料信息管理系统,VF018,资料,信息管理,系统
编号:59084741    类型:共享资源    大小:521.70KB    格式:RAR    上传时间:2020-03-17 上传人:qq77****057 IP属地:江苏
7.2
积分
关 键 词:
VF018 资料 信息管理 系统
资源描述:
VF018资料信息管理系统,VF018,资料,信息管理,系统
内容简介:
华东交通大学高职、大专毕业论文高 职 毕 业 论 文题目:资料管理系统作者: 苏雅丽华东交通大学 2005年5月摘 要资料管理系统是典型的信息管理系统,其主要开发包括后台数据库的建立和维护,以及前端应用程序的开发两个方面。对于前者要求建立起数据库一致性和完整性强,数据安全性好的库。而后者则要求应用程序功能完备,易使用等特点。因此,本人结合资料管理系统的要求,对Visual Foxpro数据库管理系统,VFP语言原理,VFP数据库技术进行了较深的学习和应用。主要完成对资料管理系统的要求分析,功能模块划分,并由此设计了数据库结构和应用程序。系统运行结果证明,本人所设计的资料管理系统可满足借阅者、资料室资料工作人员和高级管理三方面要求。 系统开发采用Microsoft公司的Visual Foxpro 6.0,利用其强大的可视化界面功能及对数据库的支持,先构造一个原型,逐步增加功能,最终满足需求。系统中大量采用SQL查询语句,界面友好,功能较强。不足的地方是当数据访问量大时,将致使性能的下降,且不利于数据的有效共享,在以后改进的中应考虑采用SQL SERVER作为数据库,解决访问速度及数据共享的问题。该系统性能力求易于使用,具有较高的扩展性和可维护性。关键字:关系数据库 Visual Foxpro 6.0 SQL 资料管理系统,系统开发,信息系统目录第一章 绪论-3第二章 系统分析-42.1系统的初步调查-42.2系统的可行性分析-62.3系统开发步骤-62.4对本系统的分析-6第三章 系统设计-10 3.1系统功能模块-103.2 数据库设计-113.3 用户界面设计-16第四章 系统编码与实现-204.1 开发平台的选择-204.2 开发工具的选择-214.3 程序设计(部分逻辑及代码)-21第五章 系统运行与维护-515.1系统的配置-515.2系统的运行-525.3系统的维护-52第六章 开发总结-53附录:参考文献-54第一章 绪论 在现代社会中管理的作用越来越显得重要和突出。一般来讲,管理通过计划、组织、指导与领导、控制等手段,为组织制定目标,应用组织的各种要素,以实现组织的目标。对学校来说,人们按照一定的资料计划、资料资源,对学生信息、教师信息、课程信息、资料信息等加以计划和协调,以达到预期的目的,即称为学校管理。传统的学校管理活动中,把人、才、物作为学校的主要资源。但是随着社会化大生产的不断扩大和社会对产品多样化的需求,人们越来越重视信息在生产经营及学校管理中的作用,并把它当做学校的一种极其重要的资源,人们称之为“信息资源”,信息资源的处理已经成为当今世界上一项主要的社会活动。 本世纪以来,由于社会生产力的迅速发展和科学技术的突飞猛进,人们进行信息交流的深度和广度不断增加,管理所需要的信息量急剧增长,同时对信息的处理要求及时、准确,这导致了传统的信息处理方法和手段已不能适应现代管理的需要;电子计算机的诞生和在信息处理中的应用,标志着一个崭新时代“信息时代”的开始,它使学校管理现代化成为可能。一定意义上说,管理信息系统的产生和发展是建立在电子计算机基础之上的。硬件方面,自1946年第一台电子计算机诞生以来,计算机技术的发展可谓日新月异,从庞大的只能在实验室里供研究使用的计算机到如今能适应不同环境满足不同需求的各种各样的计算机;运算速度从每秒几千次到每秒几百亿次;处理器从焊有上百万个电子管的大的惊人的电子板到只有指甲大小的集成电路;现在计算机在硬件方面的发展已达到了每三个月更新换代一次的惊人速度。软件方面,也已从机器语言、汇编语言、高级语言发展到现如今的第四代语言非结构化、面向对象、可视化的语言。 管理信息系统的发展 管理信息系统通过对学校当前运行的数据进行处理来获得有关信息,以控制学校的行为;利用过去和现在的数据及相应的模型,对未来的发展进行预测;能从全局目标出发,对学校的管理决策活动予以辅助。从工业发达国家来看,管理信息系统的发展经历了以下几个阶段。 第一阶段:(1953年至1965年)单项数据处理阶段,也称电子数据处理(EDP)阶段。这是电子计算机在管理领域应用的起步阶段。这一阶段,由于当时计算机硬、软件的限制,数据处理的性质只是使用计算机代替人的手工劳动,进行简单的单项数据处理工作,如计算工资、数据统计、报表登记、编制计划等。这个阶段的处理方式主要是集中式的批处理。 第二阶段:(1965年至1970年)综合数据处理阶段,也称事务处理系统(TPS)阶段。这个阶段计算机硬、软件有了很大的发展,出现了多用户的分时系统,计算机开始应用于对某一个管理子系统的控制,并具有一定的反馈功能。如库存管理系统、生产调度系统、资料管理系统等。这个阶段的处理方式已发展为面向终端的联机实时处理。 第三阶段:(1970年至今)管理信息系统(MIS)阶段。这个阶段是在学校中全面的使用计算机把各种管理子系统的功能集中起来,构成了计算机化的全方位的信息系统,即现代管理信息系统。这个阶段的处理方式是在数据库和网络基础上组成分布式处理系统。它的特点是使用数据库和分时处理的计算机网络,并充分利用运筹学等数学方法,实现了硬件、软件和数据资源的共享。 总的说来,计算机技术的发展,其性价比大幅的下降,使得其被大量广泛的使用。针对现实中的各种应用需求,相应的产生很多技术体系、技术标准,如J2EE、。NET,COM/COM+等。这又大大的推动了学校的信息化进程。其影响可以归纳为如下两点:(1)计算机已经成为我们学习和工作的得力助手:今天,计算机的价格已经十分低廉,性能却有了长足的进步。它已经被应用于许多领域,计算机之所以如此流行的原因主要有以下几个方面:首先,计算机可以代替人工进行许多繁杂的劳动;其次,计算机可以节省许多资源;第三,计算机可以大大的提高人们的工作效率;第四,计算机可以使敏感文档更加安全,等等。(2)开发计算机资料管理系统的意义当今世界是飞速发展的信息时代,在各行各业中离不开信息处理,这正是计算机被广泛用于管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息管理控制,不仅提高了工作效率,而且大大提高了其安全性。尤其对于复杂的信息处理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了管理好资料信息而设计的。资料室是一个信息资源的集散地,资料和用户借阅资料繁多,包含很多信息数据的管理,现今有很多公司的资料室都初步开始使用,甚至尚未使用计算机进行信息管理。根据调查得知,他们以前对信息管理的主要方式基于文本、表格等低价质的手工处理,对于资料借阅情况(如借阅天数、超过限定借阅资料时间的天数)的统计核实等往往采用借书证的人工检查进行,对借阅的借阅级别及极限、以及借阅天数等人工计算,手抄进行。设计信息处理工作量大、出错率高;由于数据繁多容易丢失,且不易查找。总的来说缺乏系统,规范的信息处理手段。尽管有的资料室有计算机,但是尚未用于信息管理,没有发挥它的效益,资料闲置比较突出,就是管理信息开发的基本环境。设计处理手工操作,工作量大,出错率高,出错后不易更改。资料室采取手工方式对资料借阅情况进行人工管理,由于信息比较多,资料借阅信息管理比较混乱而复杂;一般借阅情况是记录在借阅证上,资料的数目和内容记录在文件中,资料室的工作人员和管理人员也只能当时它比较清楚,时间一长,如再有进行查询,就得重多资料翻阅,查找了造成查询费时,费力。如果对很长时间以前的资料进行更改就更加困难了。基于此类问题,我认为有必要建立一个资料管理系统,使资料管理工作规范化,程序化,避免资料管理随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改资料情况。第二章 系统分析2.1系统的初步调查:建立一个好的管理信息系统,必须要有一个好的管理基础。所谓好的管理基础,指的是合理的管理体制、完善的制度、科学的管理方法和准确的原始数据。与学校管理相比,我国的学校管理在这方面占有较大的优势。应该看到,我国发展学校管理信息系统的时间还不长,设计开发的实际经验也很不足。要使管理信息系统在学校建立、使用,并从中获得巨大的效益,必须具备以下基本条件。(1)领导重视、管理人员积极性高管理信息系统的建立,需要学校提供资源、经费、人力和时间,要涉及管理体制、规章制度的变化、调整和大量数据的编码、表格形式协调等工作,这些学校管理的全局性问题必须在学校高层领导的重视和支持下才能获得解决。一般说来,校长的决心是研制学校管理信息系统的成败关键。管理人员的积极性也是不容忽视的条件。 管理人员是管理信息系统的直接用户,它们的积极性和配合程度,关系到管理信息系统的使用效果和生命力。(2)具备一定的资源条件管理信息系统的资源主要包括计算机硬、软件设备,不间断电源(UPS)、空调等辅助设备和计算机房设施等,有条件的学校应尽量发掘和利用现有计算机设备。管理信息系统的费用可分为开发费用和运行费用,前者包括设备购置、人员工资、培训和开发过程中的一系列支出等,后者包括机器运行、维护和修理费,人员工资和水、电、纸张和软盘等日常开支。要有足够的资金保证,才能顺利完成整个系统的开发工作。当然,资金的投入也可以在开发和运行过程中分阶段进行,在逐步取得阶段成果的基础上补充更多的资源。(3)组织一个强有力的开发小组管理信息系统的质量,在某种意义上直接取决于开发人员的水平和素质。开发小组的人数因系统规模大小而异,通常包括系统分析员、程序员、数据录入员和硬、软件维护人员。由于管理信息系统的开发通常是从逐个子系统分期分批进行的,同时,已开发完毕投入使用的系统仍需不断维护、改进和完善,因此这个开发小组应该在相当长的时期内存在。在正式的立项之前必须进行可行性分析,而可行性分析主要是对现行系统进行充分的调查研究,细致了解现行系统的现状流程,以及存在的主要问题,在此基础上提出新的系统的逻辑模型。详细的现状调查目的是为了弄清现行系统的基本功能及信息流程,为了新系统逻辑模型提供基础。它是建立新系统的前期工作,也是进行系统分析和设计的重要基础。因此要建立新的资料管理系统就必须对学校现行的信息管理系统进行全面、细致而充分的调查研究。采用主要的方式是在同学中进行交流和对现有的政策进行分析。2.2系统的可行性分析系统的可行性分析包括两个详细的部分:分析开发新的系统的必要性和可能性。必要性在前面系统初步调查中已经作了详细的分析,在这里就不再赘述;可能性主要包括经济可行性、技术可行性和运行可行性三个方面。经济可行性研究是对组织的经济现状和投资能力进行分析,对系统建设运行和维护费用进行估算,对系统建成后可能取得的社会和经济效益进行估计。 技术可行性要考虑现有的技术条件是否能够顺利完成开发工作,软硬件配置是否满足开发的需求等。资料管理系统用的是VF开发语言,调试相对简单,当前的计算机硬件配置也完全能满足开发的需求,因此在技术上是绝对可行的。软件方面:由于目前单机模式相对发展成熟,故软件的开发平台成熟可行。硬件方面:目前高性能的网络组件已经在我们学校广泛使用(服务器、集线器、通信介质、工作站等),它们速度快、容量大、可靠性能高、价格低,完全能满足系统的需求。 运行可行性是对组织结构的影响,现有人员和机构、设施设施和环境对系统的适应性及人员培训补充计划的可行性。当前我们学校信息化技术已经相当普及,各类操作人员水平都有相当的高度,所以在运行上是可行性的。2.3系统开发步骤一般说来,管理信息系统的建立与应用可以划分成总体规划、系统开发和系统运行三个阶段,其中系统开发阶段还可进一步分为系统分析、系统设计和系统实施等工作环节。上述各个阶段排列成一个严格的线性开发序列,在每个工作阶段均产生完整的技术文档作为下一阶段工作的指导和依据,每一阶段都应对文档进行评审,确信该阶段工作已完成并达到要求后才能进入下一阶段,同时在以后的工作中不能轻易改变前面经过评审的成果。 上述开发方式的主要优点是便于开发工作的组织和管理,并且可大大降低管理信息系统开发的复杂性。国内外许多系统开发的实例都证明这是一种行之有效的开发方式。国外曾有人对一些软件项目开发各阶段的工作量进行了统计,结果表明,在开发过程中各工作阶段所占全部工作量的比重分别达到系统分析:系统设计:编程:模块调试:系统调试20%:15%:20%:25%:20%。由此可见,程序编写在开发工作中只占很小比例,而调试工作却占整个开发工作量的一半左右,因此“系统开发就是编程”的习惯说法显然是片面的。另据统计,在建立管理信息系统的三个阶段中,总体规划和系统开发阶段的工作量约占整个工作量的2/3,而运行、维护阶段要占1/3,这说明一个管理信息系统开发后,仍应十分重视它的维护工作,以便使系统不断完善并充分发挥其作用。2.4对本系统的分析通过,对需求客户要求的分析,本系统开发的主要目的是通过信息化的方式对大量资料信息的管理,一方面提高资料信息的利用率,另一方面,实现一定程度上的信息共享,为决策提供事实依据。一、通过对系统的调查和可行性分析,画出系统的数据流程图资料类别处理 资料类别信息 资料信息资料信息处理 有效类别信息 资料表 DFD流程图:资料信息入库 部门信息入库处理有效性 未入库部门信息 部门表 用效部门信息 用户信息用户信息入库有效性 有效信息 用户表 DFD:用户入库 用户信息有效性有效性 资料信息 资料借出处理 用户表 资料表 资料借出表 DFD:资料借出 用户信息更新资料信息有效性 资料归还处理 有效资料信息 用户表 资料信息 资料表 资料借出表 DFD:资料归还第三章 系统设计资料管理系统需要满足来自三个方面的需求这三个方面分别是资料室工作人员,资料借阅和资料室管理人员资料借阅者的需求是查询资料室所存的图书个人借阅情况及个人信息的修改,资料室工作人员对图书资料借阅者的借阅及还资料要求进行操作,同时形成借或还报表给借阅者查看确认,资料室工作人员的功能最为复杂,包括对工作人员,资料借阅者,图书资料进行管理的维护及系统状态查看,维护并生成借还书报表图书借阅者可直接查看资料室资料情况,如果资料借阅者根据本人的编号和密码登录系统,还可以进行本人借书情况查看,和维护部分个个信息,一般情况下,资料借阅者只应该查询和维护本人的借书情况和个人信息,若查询和维护其他人的借阅情况和个人信息就要知道其他图书借阅者的姓名和密码,这些是很难做到的,特别是密码,所以不但满足了图书借阅者的要求,还保护了图书借阅者个人隐私资料室工作人员有修改资料借阅者和归还资料的权限,所以需对工作人员登基本模块更多考虑,在此模块中,资料室工作人员可以为图书借阅者加入借阅记录或归还记录资料室管理人员功能的信息量大,数据安全性和保密性要求最高,本功能实现对资料信息,借阅者信息,总体借阅情况信息的管理和统计,工作人员和管理人员信息查看和维护资料室管理员可以浏览,查询,添加,删除,修改,统计资料的基本信息浏览,查询,添加,删除和修改图书资料借阅者的基本信息,浏览和查询,统计图书资料室的借阅信息,但不能添加,删除和修改借阅信息,这部分功能应该由资料室工作人员完成设计不同用户的操作权限和登录方法对所有用户开放的资料查询借阅者维护借阅者个人信息借阅者查看个人借阅情况信息维护借阅者个人密码维护图书信息维护工作人员和管理人员信息维护借阅者信息3.2 系统功能模块划分 资料管理系统 借还操作模块 信息管理模块 信息浏览模块 系统用户管理模块 资 资 资 用 借 资 用 借 资 新 修 删 设 系 料 料 料 户 阅 料 户 阅 料 增 改 除 置 统 借 归 信 信 信 信 信 信 借 系 系 系 系 用 阅 还 息 息 息 息 息 息 阅 统 统 统 统 户 操 操 管 管 管 浏 浏 浏 排 用 用 用 权 登 作 作 理 理 理 览 览 览 序 户 户 户 限 记 新 修 删 新 修 删 新 修 删 增 改 除 增 改 除 增 改 除 资 资 资 用 用 用 借 借 借 料 料 料 户 户 户 阅 阅 阅 信 信 信 信 信 信 信 信 信 息 息 息 息 息 息 息 息 息3.3数据库设计数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率保证数据的完整和一致,设计数据库系统时首先充分了解用户各个方面的需求,包括现有的及将来可能增加的要求3.3.1数据库需求分析用户的需求具体体现在各种信息的提供,保存,更新和查询,这就要求数据库结构能充分满足各种信息的输出和输入,收集基本数据,数据结构,以及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础通过上述分析,针对一般资料管理系统需求总结出如下的需求信息:借阅信息涉及资料信息和用户信息资料信息和用户信息中需要存在唯一字段系统信息中,还必须存在唯一字段系统信息中应该包括系统用户的权限信息资料信息中应该包含保密级别信息,只有拥有相应级别的用户才能借阅用户信息中应该包括借阅级别信息,用户只能借阅比借阅级别低或相同的保密级别的资料用户信息会涉及分类信息,为便于扩展,应将部门信息单独使用表来存储资料信息会涉及分类信息,为便于扩展,应将分类信息单独使用表来存储经过上述系统功能分析和需求总结,考虑到将来功能上的扩展,设计如下面所示的数据项和数据结构资料信息:包括资料编号,资料名称,资料类型,资料数量,借出数量,资料来源,保密级别,借阅时限借阅信息:包含借阅编号,资料编号,用户编号,借出日期,归还日期,归还期限,说明等用户信息:包含编号,姓名,性别,部门,借阅级别系统用户信息:包含用户名,密码,姓名,系统用户管理,用户权限管理,用户信息管理,用户信息浏览等资料分类信息:包含分类编号,分类名称等部门信息:包含部门编号,部门名称等在上面的需求分析,数据结构设计,数据项分析的基础上,下面可以开始数据库概念结构设计了3.3.2概念设计:在概念设计阶段中,设计人员从用角度看体数据及处理要求和约束,产生一个反映用户观点的概念模式,然后再把概念模式转换成逻辑技术将概念设计从设计中独立开来,使各阶段的任务相对简单化,设计复杂程度大大降低,不受特定的数据库应用系统限制利用方法进行数据概念设计,可分为一步进行,首先设计局布-模式,然后把各局-模式,综合成一个全局模式,最后对全局-模式进行优化,得到最终模式,即概念模式得到上面的数据项和数据结构以后,就可以设计出能够满足需求的各种实现,以及它们之间的关系,为后面的逻辑结构设计打下基础这些实体包含各种具体信息,通过相互之间的作用形成数据的流动本实制根据上面的设计规划出的实体有:借阅信息实体,资料信息实体用户信息实体,部门信息实体,分类信息实体和系统用户信息实体各个实体的描述图如下:“借阅信息?”资料信息”,”用户信息”分类信息”和部门信息”实体之间的图:分类信息 部门信息 包含 包含 资料信息 借阅信息 用户信息 借阅信息实体的E-R图: 借阅信息 借阅编号 资料编号 用户编号 借出日期 归还日期 归还期限 说明资料信息实体E-R图: 资料信息 资料编号 资料名称 资料类型 保密级别 借阅时限 内容简介用户信息实体E-R图: 用户信息编号 姓名 性别 部门 借阅级别分类信息E-R图: 分类信息分类编号 分类名称部门信息实体E-R图: 部门信息部门编号 部门名称系统用户信息实体E-R图: 系统用户信息用户名 密码 姓名 系统用户管理 用户权限管理 用户信息管理 3.3.3数据库逻辑结构设计数据库概念结构设计完成后,现在可以将上面的数据库概念转化为某种数据库系统所支持的实际数据类型,也就是数据库的逻辑结构使用VISUAL FOXPRO开发对加以连接使用VISUAL FOXPRO自带数据库资料管理系统中使用的各个数据表的字段设置如下:借阅信息表(DataLend)字段名类型宽度可否为空默认值说明借阅编号字符型8否主索引字段资料编号字符型8否普通索引字段用户编号字符型8否普通索引字段借出日期日期型8否归还日期日期型8归还期限日期型8说明字符型100用户信息表(UseInfo)字段名类型宽度可否为空默认值说明编号字符型6否主索引字段姓名字符型20性别字符型2部门字符型20借阅级别整型4普通索引字段资料信息表(Datainfo)字段名类型宽度可否为空默认值说明资料编号字符型8否主索引字段资料名称字符型40否资料类型字符型8否普通索引字段存档日期日期型8否资料数量整型4否1借出数量整型40借阅次数整型40资料来源字符型40所属部门字符型40保密级别数值型1否1借阅时限数值型41内容简介字符型100分类信息表(Datacate)字段名类型宽度可否为空默认值说明编号字符型4否主索引字段分类名称字符型20否 部门信息表(DepartInfo)字段名类型宽度可否为空默认值说明部门编号字符型4否主索引字段部门名称字符型20否系统用户信息表(SysUser)字段名类型宽度可否为空默认值说明用户名字符型20否主索引字段密码字符型20否姓名字符型20系统用户管理逻辑型1.F.用户权限管理逻辑型1.F.用户信息管理逻辑型1.F.资料信息管理逻辑型1.F.借阅信息管理逻辑型1.F.用户信息浏览逻辑型1.T.资料信息浏览逻辑型1.T.借阅信息浏览逻辑型1.T.资料借还操作逻辑型1.F.l数据库的安全性、完整性、并发控制和恢复 信息数据是学校中非常重要的资源,因此保证数据库的安全可靠、正确有效是非常重要的问题。一般的数据库管理系统(DBMS)都有提供了一定的数据保护功能。数据库保护也称为数据控制,主要包括数据的安全性、完整性、并发控制和数据库的恢复等。(1)数据库的安全性 数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。由于数据库系统中存放着大量的数据,且为许多用户所共享,因此安全性问题是必须首先要解决的。一般计算机系统中的安全措施是按照“用户标识和鉴别”、“DBMS存取控制”、“OS级安全控制”、“DB密码存储”来一级一级设置的。在现在流行的数据库系统中一般都提供以下两种控制:用户标识和鉴别、数据存取控制。 (2)数据完整性为了保证数据库数据的正确性和相容性,数据库管理系统(DBMS)都提供了一种机制来检查数据库中的数据,看它是否满足语义的规定条件,DBMS称这种机制为“数据完整性检查”。一般的DBMS中是通过完整性约束和数据库触发器来实现这一机制的。(3)并发控制在多用户数据库环境中,多个用户程序可并行存取数据库中的数据,为了以正确的方式调度该并发操作,避免造成“丢失修改”、“不能重读”、“读脏数据”等不一致的情况,DBMS引入了“并发控制”这一机制。并发控制的主要方法是采用封锁机制,一般采用两种封锁机制:共享机制和排它机制来实现。(4)数据库后备与恢复主要使用转储、日志等方法进行数据库的恢复。3.3用户界面设计用户界面是指软件系统与用户之间交互的接口,通常包括输出,输入,人机对话的界面与方式等。由于本系统的最终用户是那些对计算机技术并不算很精通的管理人员,因此本系统采用了基于菜单选择,填写表格和简单的问答选择等友好的用户界面交互方式。l系统安全性验证用户界面设计用户登录窗口界面是用户看到的第一幅画面,也是进入系统之前必须经过的一道“关口”。因此,简洁、实用、友好是设计时应当考虑到的风格。登录本系统,用户将看到如下画面: 登录界面图本系统注重用户的权限的限制,当需修改学生基本信息,学生注册信息等关键信息时,要求用户再次输入密码。l系统主画面屏幕区域设计进行系统的主画面屏幕区域设计时,是将整个屏幕划分为三个区域,如下图所示:主 菜 单 区工 作 区状 态 信 息 区在屏幕的最上方是主菜单区,显示本系统的功能主菜单。用户可以有鼠标左键来选择相应的菜单,也可以用快捷键进行操作,然后用同样的方法在相应菜单下拉出该项的二级菜单(如果有的话),如果还有三级菜单,用户可在二级菜单选择相应的功能项,系统会自动弹出三级菜单。当通过菜单选择了所要进行的工作以后,系统进入相应的业务处理功能,这时业务处理活动在屏幕中间区域即工作区进行。在整个业务处理过程中,主菜单区始终存在以使用户明确当前正在进行的处理,当用户为业务处理完毕后,系统返回主菜单。第四章 系统编码与实现4.1 开发平台的选择 考虑到本系统的性能要求,和现有的条件,我们选择了WINDOWSXP中文版作为开发、测试和运行的平台。因为WINDOWS操作系统是目前应用最广的操作系统,它以全新的图形界面,简单快捷的操作方式,支持多媒体功能等特点而成为软件发展的流行趋势,选用它作为开发平台,易于功能的扩展和软件升级。4.2 开发工具的选择 针对目前世界上流行的大量软件和开发工具,经过认真分析其优缺点,结合学籍器具管理系统的需要和目前的硬件环境,我们选用微软WINDOWS平台下的Visual FoxPRO6.0(简写为VFP6.0)作为软件开发工具。选用该工具有发下几方面的优点: (1)VFP6.0是目前微机上最优秀的关系型数据库管理系统软件,正如其名称中冠以的“Visual”一样,它采用了可视化、面向对象的程序设计方法,大大简化了应用系统的开发过程,并提高了系统工程的模块化和紧凑性。 (2)VFP6.0版本中提供了大量的诸如“数据库设计器”、“表单设计器”、“菜单设计器”、“报表设计器”等开发设计工具和向导工具(Wizard),使以往费时费力的开发工作变得轻松自如。这些可视化的设计工具免除了开发者编写大量程序代码的工作。 4.3 程序设计(部分逻辑及代码)4.3 创建可视化按钮4.3.1要使鼠标指针移动到按钮上方时鼠标指针发生变化,需要在按钮的“MouseMove”事件中添加代码。*修改控件上鼠标指针形状LPARAMETERS nButton, nShift, nXCoord, nYCoordThis.MousePointer = 99 &使用自定义的鼠标指针This.MouseIcon = h_point.cur &鼠标指针文件4.3.2 创建可视化类单击【首记录】按钮时,只需要将记录指针移动到表的第一条记录即可,按钮的“Click”事件代码如下:GO TOP&到首记录THISFORM.REFRESH&刷新表单单击【上记录】按钮时,首先判断记录指针是否位于第一条记录,如果是,则弹出警告,否则将记录指针向前移动一个位置,该按钮的“click”事件代码如下:*如果到了数据表首部IF BOF() .OR. RECNO() = 1 MessageBox(已到首记录,48,移动记录)ELSE*如果数据指针不位于数据表首部 SKIP-1ENDIF*刷新表单THISFORM.REFRESH单击【下记录】按钮代码:*如果记录指针位于数据表末尾IF EOF() or RecNO() = RecCount() MessageBox(已到末记录,48,移动记录)*如果记录指针不位于数据表末尾ELSE*记录指针下移 SKIPENDIF*刷新表单THISFORM.REFRESH()单击【末记录】按钮代码:GO BOTTOM &到数据表末尾THISFORM.REFRESH&刷新表单“MyMove”类的“Refresh”事件代码如下:*如果数据表为空或者只有一条记录IF BOF() .AND. EOF() .OR. RECCOUNT()=1 THIS.Cmdtop.ENABLED=.F. THIS.Cmdpre.ENABLED=.F. THIS.Cmdnxt.ENABLED=.F. THIS.Cmdbtm.ENABLED=.F.ELSE*如果在记录指针在数据表的末尾IF RECNO()=RECCOUNT() .OR. EOF()THIS.Cmdtop.ENABLED=.T.THIS.Cmdpre.ENABLED=.T.THIS.Cmdnxt.ENABLED=.F.THIS.Cmdbtm.ENABLED=.F.ELSE*如果记录指针在数据表的首部IF RECNO()=1 .OR. BOF()THIS.Cmdtop.ENABLED=.F.THIS.Cmdpre.ENABLED=.F.THIS.Cmdnxt.ENABLED=.T.THIS.Cmdbtm.ENABLED=.T.ELSE*如果记录指针不在数据表的首部也不在尾部THIS.Cmdtop.ENABLED=.T.THIS.Cmdpre.ENABLED=.T.THIS.Cmdnxt.ENABLED=.T.THIS.Cmdbtm.ENABLED=.T.ENDIFENDIFENDIF4.3.3“命令按钮工具栏”类【推出】按钮的“Click”事件代码:LOCAL YNYN=Messagebox(确定退出,4+32,资料管理系统)IF YN=6THISFORM.ReleaseENDIF6.2 创建系统主表单6.2.1 创建主程序*系统环境设置CLEARCLEAR ALLSET ESCAPE OFF& 禁止运行的程序在按ESC键被中断SET TALK OFF& 关闭命令显示SET SAFETY OFF & 覆盖时不要确认SET STAT BAR OFF & 将状态栏关闭SET SYSMENU OFF & 可关掉VFP系统菜单区域SET SYSMENU TO & 关闭系统菜单SET CENTURY ON & 显示四位年代SET DATE ANSI& 指定日期表达式的显示格式为yy.mm.dd*避免多次运行程序*声明API函数“FindWindow”DECLARE Integer FindWindow IN USER32.DLL String lpClassName,String lpWindowNamelpWindowName=资料管理系统IF .NOT. FindWindow(0,lpWindowName)=0 &寻找窗口标题 =MESSAGEBOX(程序已经运行了,48,资料管理系统) QUIT ENDIF_Screen.Caption=lpWindowName*声明全局变量PUBLIC cCurUser& 声明全局变量,用来保存系统中的登录用户PUBLIC bDataAdmin,bDataBrow,bUserAdmin,bUserBrow,bLendAdmin,bLendBrow,bSysUser,bUserPurv,bAct*调用登录表单DO FORM Logon& 显示登录表单*进入事物处理READ EVENTS& 进入事务处理6.2.2 创建“AutoAdd”程序*作用:使“000000XX”形式的编号自动加1FUNCTION AUTOADD(nCode)*获取字符串长度nLen=Len(nCode)*将字符型转换为数值型,即获取非0部分的数值nCode = VAL(nCode)*非0部分数字加1nCode = nCode + 1*转换为字符型nCode = ALLTRIM(STR(nCode)*获取转换后的字符串的长度nLength = LEN(nCode)*在数字之前加上前置“0”nZero=0000000000nCode = SUBSTR(nZero,1,nLen-nLength) + nCode*返回结果RETURN nCodeENDFUNC6.2.3 创建“GetPurv”程序*在数据库中读取登录的系统用户权限信息*选择“系统用户信息”表所在的工作区SELECT Sysuser*精确比较SET EXACT ON*查找登录用户LOCATE FOR ALLTRIM(用户名)=cCurUser*如果找到IF FOUND()*读取用户权限信息全局变量中bDataAdmin=SysUser.资料信息管理bDataBrow=SysUser.资料信息浏览bUserAdmin=SysUser.用户信息管理bUserBrow=SysUser.用户信息浏览bLendAdmin=SysUser.借阅信息管理bLendBrow=SysUser.借阅信息浏览bSysUser=SysUser.系统用户管理bUserPurv=SysUser.用户权限管理bAct=SysUser.资料借还操作ELSE*如果登录的用户不在表中*结束事务处理CLEAR EVENTS*退出Visual FoxProQUITENDIF*模糊比较SET EXACT OFF6.2.4 创建系统主表单“Init”事件:*调用系统主菜单DO MainMenu.MPR WITH This*显示当前登录用户THISFORM.OLEcontrol1.Panels(2).Text=cCurUser*刷新表单THISFORM.Refresh“Unload”事件:*清除事件循环Clear Events*退出Visual FoxProQuit6.3创建系统用户管理模块6.3.1 创建“系统登录”表单【确定】按钮的“Click”事件代码*改为精确比较SET EXACT ON *试图登录次数自动加1THISFORM.i=THISFORM.i+1*选择“系统用户信息”表所在的工作区SELECT SysUser*查找用户名LOCATE FOR ALLTRIM(SysUser.用户名)=ALLTRIM(THISFORM.txt用户名.VALUE)*如果找到用户名IF FOUND()*如果密码正确IF ALLTRIM(密码)=ALLTRIM(THISFORM.txt密码.VALUE)*将登录的用户名保存到全局变量中cCurUser=ALLTRIM(用户名)*调用“GetPurv”程序获取登录的用户的权限信息 DO GetPurv.prg *退出表单 THISFORM.RELEASE *调用系统主表单 DO FORM MainForm ELSE *如果密码错误 *如果次数小于3 IF THISFORM.i3MESSAGEBOX(密码错误,请重新输入,48,资料管理系统)THISFORM.txt用户名.VALUE=THISFORM.txt密码.VALUE=THISFORM.txt用户名.SETFOCUSELSE*如果资料为3MESSAGEBOX(用户名或者密码错误三次,系统无法启动,48,资料管理系统) *退出表单 THISFORM.RELEASE *结束事件循环 CLEAR EVENTS *退出Visual FoxPro QUIT ENDIF ENDIFELSEIF THISFORM.i3MESSAGEBOX(用户名不存在,请重新输入,48,资料管理系统)THISFORM.txt用户名.VALUE=THISFORM.txt密码.VALUE=THISFORM.txt用户名.SETFOCUSELSEMESSAGEBOX(用户名或者密码错误三次,系统无法启动,48,资料管理系统) THISFORM.RELEASE CLEAR EVENTS QUIT ENDIFENDIF*改为模糊比较SET EXACT OFF【退出】按钮“Click”事件代码:*声明本地变量LOCAL YN*确认对话框YN=MESSAGEBOX(确定退出,4+32,资料管理系统)*如果确认IF YN=6 THISFORM.RELEASE&退出当前表单 CLEAR EVENTS&结束事务处理 QUIT&退出Visual FoxProENDIF6.3.2 创建“系统用户管理”表单“系统用户管理”表单“Init”事件代码:SELECT SYSUSERSET FILTER TOTHISFORM.Refresh“系统用户管理”表单“Refresh”事件代码:*“权限”按钮的状态THISFORM.CmdPurv.Enabled=bUserPurv*“新增”、“修改”和“删除”按钮的状态THISFORM.CmdNew.Enabled=bSysUserTHISFORM.CmdMode.Enabled=bSysUserTHISFORM.CmdDel.Enabled=bSysUser*如果数据表为空SELECT SYSUSERIF EOF() .AND. BOF() OR RECCOUNT()=0IF bSysUser=.T.THISFORM.CmdNew.Enabled=.T.THISFORM.CmdMode.Enabled=.F.THISFORM.CmdDel.Enabled=.F.EndifENDIF【新增】按钮的“Click”事件代码:DO FORM SetUser With cNewTHISFORM.Refresh【修改】按钮的“Click”事件代码:PUBLIC cUserSetcUserSet=Sysuser.用户名DO FORM SetUser With cModifyTHISFORM.Refresh【删除】按钮的“Click”事件代码:*确认对话框YN=MESSAGEBOX(确定删除用户,4+32,资料管理系统)*如果确认IF YN=6*精确比较方式SET EXACT ON*如果要删除的用户为当前登录系统用户IF ALLTRIM(SysUser.用户名)=cCurUser*警告对话框MESSAGEBOX(不能删除当前用户,48,资料管理系统)RETURNENDIFSELECT SysUser*表单中表格控件的数据源为空THISFORM.Grid1.RecordSource=NULL*逻辑删除数据DELETE*物理删除数据PACK*重新指定表单中表格控件数据源THISFORM.Grid1.RecordSource=sysuserENDIF*刷新表单THISFORM.Refresh【权限】按钮的“Click”事件代码:cUserSet=ALLTRIM(Sysuser.用户名)DO FORM SetPurv With cUserSetTHISFORM.Refresh【退出】按钮的“Click”事件代码:YN=MESSAGEBOX(确认退出,4+32,资料管理系统)IF YN=6THISFORM.ReleaseENDIF6.3.3 创建“添加用户”表单“添加用户”表单的“Init”事件代码:*声明参数用来接收参数值PARAMETER cFormMode*使用表单属性来保存参数值THISFORM.FormMode=cFormMode*如果表单用来修改用户IF THISFORM.FormMode=cModifySELECT SysUser*更改表单的标题THISFORM.Caption=修改用户信息*在“系统用户信息”表单中查询Locate For 用户名=cUserSetIF FOUND()*显示信息THISFORM.txt用户名.Value=用户名THISFORM.txt姓名.Value=姓名THISFORM.txt用户名.ReadOnly=.T.ELSEMESSAGEBOX(指定的用户不存在,48,资料管理系统)THISFORM.ReleaseENDIFENDIF【确定】按钮的“Click”事件代码:*声明本地变量,储存表单中各数据项中的数据是否正确LOCAL OK*本地变量的默认值为“.T.”OK=.T.*精确比较SET EXACT ON*进入数据检查DO CASE*如果在“新增状态”下“用户名”栏为空CASE EMPTY(THISFORM.txt用户名.VALUE) .AND. THISFORM.FormMode=cNewMESSAGEBOX(用户名不能为空,48,资料管理系统)THISFORM.txt用户名.SetFocusOK=.F.*如果“姓名”栏为空CASE EMPTY(THISFORM.txt姓名.Value)MESSAGEBOX(姓名不能为空,48,资料管理系统)THISFORM.txt姓名.SetFocusOK=.F.*如果“密码”栏为空CASE EMPTY(ALLTRIM(THISFORM.txt密码.Value) .AND. EMPTY(ALLTRIM(THISFORM.txt确认密码.VALUE)MESSAGEBOX(密码不能为空,48,资料管理系统)THISFORM.txt密码.SetFocusOK=.F.*如果两次密码不一致CASE ALLTRIM(THISFORM.txt密码.Value) ALLTRIM(THISFORM.txt确认密码.VALUE)MESSAGEBOX(密码与确认密码不一致,48,资料管理系统)THISFORM.txt密码.SetFocusOK=.F.ENDCASE*如果检测无误IF OK=.T.LOCAL sUser,cName,cPart,cPass,nNumsUser=ALLTRIM(THISFORM.txt用户名.Value)IF THISFORM.FormMode=cNew*检测添加的用户名名称是否存在SELECT SysuserCount FOR 用户名=sUser TO nNum*如果存在IF nNum0MESSAGEBOX(指定的用户名已经存在,48,资料管理系统)THISFORM.txt用户名.Value=THISFORM.txt用户名.SetfocusReturnENDIFENDIF*如果不存在*获取表单中各数据项的值cName=ALLTRIM(THISFORM.txt姓名.Value)cPass=ALLTRIM(THISFORM.txt密码.Value)*确定对话框YN=MESSAGEBOX(确定保存,4+32,资料管理系统)*如果确认IF YN=6IF THISFORM.FormMode=cNew*添加记录INSERT INTO SysUser(用户名,密码,姓名) VALUES (sUser,cPass,cName)ELSE*修改信息Begin TransUpdate SysUser Set 姓名=cName Where 用户名=sUserUpdate SysUser Set 密码=cPass Where 用户名=sUserEND TRANSENDIF*对话框IF THISFORM.FormMode=cNewMESSAGEBOX(添加成功,64,资料管理系统)ELSEMESSAGEBOX(修改成功,64,资料管理系统)ENDIF*退出表单THISFORM.ReleaseENDIFENDIF*模糊比较SET EXACT OFF【退出】按钮的“Click”事件代码:YN=MESSAGEBOX(确定退出,4+32,资料管理系统)IF YN=6THISFORM.ReleaseENDIF6.3.4 创建“权限管理”表单“权限管理”表单的“Init”事件代码:*声明参数接收运行参数PARAMETER cUserPurv*使用自定义属性来保存参数值THISFORM.cUserPurv=cUserPurvSELECT Sysuser*获取要设置权限的用户的原有权限值LOCATE FOR ALLTRIM(用户名)=ALLTRIM(cUserPurv)IF FOUND()*在表单中显示权限情况THISFORM.Label1.Caption=系统用户+cUserPurv+的系统权限THISFORM.PurvCon.CHKDataAdmin.Value=SysUser.资料信息管理THISFORM.PurvCon.CHKDataBrow.Value=SysUser.资料信息浏览THISFORM.PurvCon.CHKUserAdmin.Value=SysUser.用户信息管理THISFORM.PurvCon.CHKUserBrow.Value=SysUser.用户信息浏览THISFORM.PurvCon.CHKLendAdmin.Value=SysUser.借阅信息管理THISFORM.PurvCon.CHKLendBrow.Value=SysUser.借阅信息浏览THISFORM.PurvCon.CHKSysUser.Value=SysUser.系统用户管理THISFORM.PurvCon.CHKUserPurv.Value=SysUser.用户权限管理THISFORM.PurvCon.CHKAct.Value=SysUser.资料借还操作ENDIF【确定】按钮的“Click”事件代码:*确认对话框YN=MESSAGEBOX(确定保存,4+32,资料管理系统)*如果确认IF YN=6*声明本地变量保存复选框的值LOCAL lbDataBrow,lbDataAdmin,lbUserBrow,lbUserAdminLOCAL lbLendAdmin,lbLendBrow,lbSysUser,lbUserPurv,lbact*获取复选框的值lbDataAdmin=THISFORM.PurvCon.CHKDataAdmin.ValuelbDataBrow=THISFORM.PurvCon.CHKDataBrow.ValuelbUserAdmin=THISFORM.PurvCon.CHKUserAdmin.ValuelbUserBrow=THISFORM.PurvCon.CHKUserBrow.ValuelbLendAdmin=THISFORM.PurvCon.CHKLendAdmin.ValuelbLendBrow=THISFORM.PurvCon.CHKLendBrow.ValuelbSysUser=THISFORM.PurvCon.CHKSysUser.ValuelbUserPurv=THISFORM.PurvCon.CHKUserPurv.ValuelbAct=THISFORM.PurvCon.CHKAct.Value*精确比较SET EXACT ON*不能取消当前用户的“用户权限管理”权限IF THISFORM.cUserPurv=cCurUser .AND. lbUserPurv=.F.MESSAGEBOX(不能取消消当用户的用户管理权限,48,资料管理系统)THISFORM.PurvCon.CHKUserPurv.Value=.T.ReturnEndIF*开始事务处理BEGIN TRANS*更新指定系统用户的权限信息UPDATE SYSUSER Set 资料信息管理=lbDataAdmin WHERE 用户名 = THISFORM.cUserPurvUPDATE SYSUSER Set 资料信息浏览=lbDataBrow WHERE 用户名 =THISFORM.cUserPurvUPDATE SYSUSER Set 用户信息管理=lbUserAdmin WHERE 用户名=THISFORM.cUserPurvUPDATE SYSUSER Set 用户信息浏览=lbUserBrow WHERE 用户名 =THISFORM.cUserPurvUPDATE SYSUSER Set 借阅信息管理=lbLendAdmin WHERE 用户名=THISFORM.cUserPurvUPDATE SYSUSER Set 借阅信息浏览=lbLendBrow WHERE 用户名 =THISFORM.cUserPurvUPDATE SYSUSER Set 系统用户管理=lbSysUser WHERE 用户名 =THISFORM.cUserPurvUPDATE SYSUSER Set 用户权限管理=lbUserPurv WHERE 用户名=THISFORM.cUserPurvUPDATE SYSUSER Set 资料借还操作=lbAct WHERE 用户名=THISFORM.cUserPurvEND TRANS*如果更新了当前登录系统用户的权限IF THISFORM.cUserPurv=cCurUser*重新获取当前登录系统用户的权限信息Do GetPurv.PrgENDIF*模糊比较SET EXACT OFF*信息对话框MESSAGEBOX(权限设置完成,64,资料管理系统)*退出当前表单THISFORM.ReleaseENDIF【退出】按钮的“Click”事件代码:YN=MESSAGEBOX(确定退出,4+32,资料管理系统)IF YN=6THISFORM.ReleaseENDIF6.4 创建信息管理模块6.4.1 创建“资料信息管理”表单“资料信息管理”表单的“ModeControl”方法:*声明本地变量LOCAL bModify,bBrowse,OK*使用本地变量存储属性值bModify=THISFORM.bModifybBrowse=THISFORM.bBrowse*对属性赋初值OK=.T.*根据变量的值来设置控件的状态*移动记录工具栏THISFORM.MyMove.Enabled=.NOT. bModify*查询工具栏THISFORM.MySearch.Enabled=.NOT. bModify*表格控件THISFORM.Grid1.Enabled=.NOT. bModify*控制工具栏中“保存”和”取消”按钮THISFORM.MyAdmin.CmdSave.Enabled=bBrowseTHISFORM.MyAdmin.CmdCancel.Enabled=bBrowse*控制工具栏中其他按钮THISFORM.MyAdmin.CmdNew.Enabled=.NOT. bModifyTHISFORM.MyAdmin.CmdExit.Enabled=.NOT. bModifyTHISFORM.MyAdmin.CmdModify.Enabled=.NOT.bModifyTHISFORM.MyAdmin.cmdDelete.Enabled=.NOT. bModify*表单中与数据绑定的控件THISFORM.txt资料编号.ReadOnly=.NOT.bModifyTHISFORM.txt资料名称.ReadOnly=.NOT. bModifyTHISFORM.cmb资料类型.Enabled=bModifyTHISFORM.spin资料数量.ReadOnly=.NOT. bModifyTHISFORM.txt资料来源.ReadOnly=.NOT. bModifyTHISFORM.spin保密级别.ReadOnly=.NOT. bModifyTHISFORM.spin借阅时限.ReadOnly=.NOT. bModifyTHISFORM.cmb所属部门.Enabled=bModifyTHISFORM.txt内容简介.ReadOnly=.NOT. bModifyTHISFORM.Cmdsel.Visible=bModify*权限管理相关IF bDataAdmin=.F.THISFORM.MyAdmin.CmdModify.Enabled=.F.THISFORM.MyAdmin.CmdNew.Enabled=.F.THISFORM.MyAdmin.CmdDelete.Enabled=.F.ENDIF“资料信息管理”表单的“Init”事件代码:SELECT DataInfoSET FILTER TOTHISFORM.bModify=.F.THISFORM.bBrowse=.F.THISFORM.ModeControlTHISFORM.Refresh“资料信息管理”表单的“Refresh”事件代码:*选择所在的工作区SELECT DataInfo*如果表为空IF EOF() .AND. BOF() OR RECCOUNT()=0THISFORM.bModify=.T.THISFORM.bBrowse=.F.THISFORM.ModeControlIF bDataAdmin=.T.THISFORM.MyAdmin.CmdNew.Enabled=.T.ENDIFTHISFORM.MyAdmin.CmdExit.Enabled=.T.ENDIF【新增】按钮的“Click”事件代码:*选择“资料信息”表所在的工作区SELECT DataInfo*保存记录号THISFORM.OldRecord=RECNO()*到末记录GO BOTTOM*声明本地变量LOCAL sNum*数据表最后一条记录的值sNum=DataInfo.资料编号*数据表末尾新增记录APPEND BLANK*新增记录的“资料编号”值为自动增加的值THISFORM.txt资料编号.Value=AutoAdd(sNum)*表单进入修改状态THISFORM.bModify=.T.THISFORM.bBrowse=.T.THISFORM.ModeControl*新增记录的“存档日期”值为系统当前日期THISFORM.txt存档日期.Value=Date()*刷新表单THISFORM.Refresh【修改】按钮的“Click”事件代码:*选择“资料信息”表所在的工作区SELECT DataInfo*保存记录指针位置THISFORM.OldRecord=RECNO()*表单进入修改状态THISFORM.bModify=.T.THISFORM.bBrowse=.T.THISFORM.ModeControl*刷新表单THISFORM.Refresh【删除】按钮的“Click”事件代码:*确认对话框YN=MESSAGEBOX(确定删除,4+32,资料管理系统)*如果确认IF YN=6*设置表格控件的数据源为空THISFORM.Grid1.RecordSource=NULLSELECT DataInfo*逻辑删除DELETE*物理删除PACK*设置表格控件的数据源THISFORM.Grid1.RecordSource=DataInfo*如果删除后表为空IF EOF() .AND. BOF() .OR. RECCOUNT()=0THISFORM.INITELSE*如果不为空,移动记录指针IF EOF()SKIP-1ELSESKIPENDIFENDIF*刷新表单THISFORM.RefreshENDIF【保存】按钮的“Click”事件代码:*声明本地变量LOCAL OK,YN*本地变量赋初值OK=.T.*检查表单中数据项的输入情况DO CASE*如果“资料编号”为空CASE EMPTY(ALLTRIM(THISFORM.txt资料编号.Value)MESSAGEBOX(资料编号不能为空,48,资料管理系统)THISFORM.txt资料编号.SetFocusOK=.F.*如果“资料名称”为空CASE EMPTY(ALLTRIM(THISFORM.txt资料名称.Value)MESSAGEBOX(资料名称不能为空,48,资料管理系统)THISFORM.txt资料名称.SetFocusOK=.F.*如果“资料类型”为空CASE EMPTY(THISFORM.cmb资料类型.Value)MESSAGEBOX(资料类型,48,资料管理系统)THISFORM.cmb资料类型.SetFocusOK=.F.ENDCASE*如果检测无误IF OK=.T.*确认对话框YN=MESSAGEBOX(确定保存,4+32,资料管理系统)IF YN=6*试图保存,如果保存失败IF TABLEUPDATE(.F.)=.F.MESSAGEBOX(资料编号重复,48,资料管理系统)THISFORM.txt资料编号.SetFocusELSE*保存成功*回到浏览状态THISFORM.bModify=.F.THISFORM.bBrowse=.F.THISFORM.ModeControlENDIF*刷新表单THISFORM.RefreshENDIFENDIF【取消】按钮的“Click”事件代码:*声明本地变量LOCAL YN*确认对话框YN=MESSAGEBOX(确定取消,4+32,资料管理系统)*如果确认IF YN=6*选择“资料信息”表所在工作区SELECT DatAInfo*取消对记录的修改TABLEREVERT(.F.)*如果“资料信息”表为空IF EOF() .AND. BOF() .OR. RECCOUNT()=0*表单初始化THISFORM.InitELSE*回到浏览状态GO THISFORM.OldRecordTHISFORM.bModify=.F.THISFORM.bBrowse=.F.THISFORM.ModeControlENDIF*刷新表单THISFORM.RefreshENDIF【查询】按钮的“Click”事件代码:LOCAL SelTJ*查询条件默认为“.T.”SelTJ=.T.*如果SearchKey1文本框中的值非空IF .NOT. EMPTY(ALLTRIM(THISFORM.MySearch.SearchKey1.Value)SelTJ=SelTJ + AND + ALLTRIM(THISFORM.MySearch.SearchKey1.Value) + $ 资料编号ENDIF*如果SearchKey2文本框中的值非空IF .NOT. EMPTY(ALLTRIM(THISFORM.MySearch.SearchKey2.Value)SelTJ=SelTJ + AND +ALLTRIM(THISFORM.MySearch.SearchKey2.Value)+ $ 资料名称ENDIF*如果SearchKey3文本框中的值非空IF .NOT. EMPTY(ALLTRIM(THISFORM.MySearch.SearchKey3.Value)SelTJ=SelTJ + AND + ALLTRIM(THISFORM.MySearch.SearchKey3.Value)+ $ 所属部门ENDIF*选择“资料信息”表所在工作区SELECT DataInfo*清除可能存在的过滤条件SET FILTER TO*设置过滤条件SET FILTER TO &SelTJ*GO TOP*刷新表单THISFORM.Refresh6.4.2 创建“用户信息管理”表单“用户信息管理”表单的“ModeControl”方法*声明本地变量LOCAL bModify,bBrowse,OK*使用本地变量存储属性值bModify=THISFORM.bModifybBrowse=THISFORM.bBrowse*对属性赋初值OK=.T.*根据变量的值来设置控件的状态*移动记录工具栏THISFORM.MyMove.Enabled=.NOT. bModify*查询工具栏THISFORM.MySearch.Enabled=.NOT. bModify*表格控件THISFORM.Grid1.Enabled=.NOT. bModify*控制工具栏中“新增”和”退出”按钮THISFORM.MyAdmin.CmdNew.Enabled=.NOT. bModifyTHISFORM.MyAdmin.CmdExit.Enabled=.NOT. bModify*控制工具栏中其他按钮THISFORM.MyAdmin.CmdModify.Enabled=.NOT.bModifyTHISFORM.MyAdmin.cmdDelete.Enabled=.NOT. bModifyTHISFORM.MyAdmin.CmdSave.Enabled=bBrowseTHISFORM.MyAdmin.CmdCancel.Enabled=bBrowse*表单中与数据绑定的控件THISFORM.txt编号.ReadOnly=.NOT. bModifyTHISFORM.txt性别.ReadOnly=.NOT. bModifyTHISFORM.txt姓名.ReadOnly=.NOT. bModifyTHISFORM.spin借阅级别.ReadOnly=.NOT. bModifyTHISFORM.cmb部门.Enabled=bModify*权限管理相关IF bUserAdmin=.F.THISFORM.MyAdmin.CmdModify.Enabled=.F.THISFORM.MyAdmin.cmdDelete.Enabled=.F.THISFORM.MyAdmin.CmdNew.Enabled=.F.ENDIF“用户信息管理”表单的“Init”事件代码:SELECT UserInfoSET FILTER TOTHISFORM.bModify=.F.THISFORM.bBrowse=.F.THISFORM.ModeControlTHISFORM.Refresh“用户信息管理”表单的“Refresh”事件代码:SELECT UserInfoIF EOF() .AND. BOF() OR RECCOUNT()=0THISFORM.bModify=.T.THISFORM.bBrowse=.F.THISFORM.ModeControlIF bUserAdmin=.T.THISFORM.MyAdmin.CmdNew.Enabled=.T.ENDIFTHISFORM.MyAdmin.CmdExit.Enabled=.T.ENDIF【新增】按钮的“Click”事件代码:*选择“资料信息”表所在的工作区SELECT UserInfo*保存记录号THISFORM.OldRecord=RECNO()*到末记录GO BOTTOM*声明本地变量LOCAL sNum*数据表最后一条记录的值sNum=UserInfo.编号*数据表末尾新增记录APPEND BLANK*新增记录的“资料编号”值为自动增加的值THISFORM.txt编号.Value=AutoAdd(sNum)*表单进入修改状态THISFORM.bModify=.T.THISFORM.bBrowse=.T.THISFORM.ModeControl*刷新表单THISFORM.Refresh【修改】按钮的“Click”事件代码:
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:VF018资料信息管理系统
链接地址:https://www.renrendoc.com/p-59084741.html

官方联系方式

2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

网站客服QQ:2881952447     

copyright@ 2020-2025  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知人人文库网,我们立即给予删除!