基于MFC档案管理系统的设计与实现_第1页
基于MFC档案管理系统的设计与实现_第2页
基于MFC档案管理系统的设计与实现_第3页
基于MFC档案管理系统的设计与实现_第4页
基于MFC档案管理系统的设计与实现_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于mfc档案管理系统的设计与实现摘 要档案管理系统是档案管理利用计算机技术的创新,在计算机还未普及之前档案文件管理都是由工作人员人工存档,调阅的方式来操作的。现在,档案管理采用计算机智能化管理,采用计算机作为工具来帮助档案管理员进行更有效的地做好案管理工作。档案管理系统是典型的信息管理系统(mis),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。基于visual c+ 6.0编程工具,并利用其中的mfc类库,本系统主要是对档案进行归档、查询、借阅和归还管理,方便档案的管理工作和用户的使用,提供友好的用户界面,并且具有密码和权限管理功能设计并实现了一种基于sql数据库的实

2、用的档案管理系统。通过档案管理系统,使档案管理工作系统化、规范化、自动化、从而达到提高档案管理效率的目的。关键词:档案管理系统;mfc类库;sqldesign and implementation of file management systemabstractfile management system is the innovative use of computer technology in the computer before the file has not been universal file management manual by the staff files, ac

3、cess to the means of operation. now, the file management generally uses the computer intellectualization management, uses the computer to help the file clerk as the tool to carry on completes the file management work effectively. file management system is a typical management information system (mis

4、), including the development of the main background of the establishment and maintenance of database and application development front-end aspects. based on visual c + + 6.0 programming tools, and use the mfc class library, the system is mainly for file archiving, query, borrow and return of managem

5、ent to facilitate the management of files and users, providing a friendly user interface, and has password management functions and powers of the design and realization of a practical based on sql database file management system. through the file management system, so that systematic work in archive

6、s management, standardization, automation, records management in order to improve efficiency.key words: file management system; mfc library; sql 目 录第一章 引 言1第二章 系统分析22.1 可行性分析22.2 流程图32.3 需求分析4第三章 系统设计53.1 数据库设计53.1.1 引言53.1.2 数据库概念结构的设计53.1.3 数据库逻辑结构设计73.1.4 系统数据库表的定义83.1.5 数据库完整性的设计103.2 模块设计113.2.

7、1 系统架构113.2.2 各模块的功能1233 软件结构设计13第四章系统实现1441 开发工具1442 各个模块的界面和代码实现144.2.1 登录模块144.2.2 用户管理模块184.2.3 机构管理模块274.2.4 档案库管理模块314.2.5 档案管理模块364.2.6 借阅管理模块414.2.7 档案检索与借阅模块444.2.8 我的档案模块49结束语51主要参考文献52致谢53档案管理系统的设计与实现第一章 引 言随着经济的发展,社会的进步,计算机越来越深入到我们日常的工作学习及生活中,成为我们日常生活中不可缺少的辅助工具。随着科学技术的不断提高,计算机科学日渐成熟,其强大的

8、功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。它已经深入到日常工作和生活的方方面面,比如文字处理、信息管理、辅助设计、图形图像处理、教育培训以及游戏娱乐等。各行各业的人们无须经过特别的训练就能够使用电脑完成许许多多复杂的工作。数据库技术是从60年代初发展起来的计算机技术,经过四十来年的发展,数据库技术己经趋于成熟,并成功应用于信息系统的开发当中1。当今时代是飞速发展的信息时代,在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的原因。计算机的最大好处在于利用它能够进行信息管理,不仅提高了工作效率,而且大大的提高了其安全性,尤其对于复杂的信息管理,计算机

9、能够充分发挥它的优越性。档案管理是一个单位不可缺少的部分,它的内容对于该单位的决策者和管理者来说都至关重要,所以档案管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难2。作为计算机科学技术、数据库技术应用的一部分,使用计算机对事业单位的档案信息进行管理,具有手工管理所无法比拟的优点。例如:方便借阅、易于归档、检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高档案管理的效率,也是企

10、业的科学化、正规化管理,与世界接轨的重要条件。由于这些问题,我认为建立一个档案管理系统,开发这样一套信息管理软件成为很有必要的事情。本课题主要研究如何进行系统分析和设计,来实现档案的归档、查询、借阅、审批和归还流程。在下面的各章中将以开发一套档案管理系统为例,谈谈其分析过程、开发过程和所涉及到的问题及相应的解决方法。由于是毕业设计,部分较复杂的功能将会在分析阶段进行分析,但由于时间有限和能力不足,就未予以实现,这不会影响档案管理系统最基本功能的实现。下面,我先给出档案管理系统的分析与设计过程:系统分析阶段1 查询资料了解项目意义、背景2 分析现有系统状况,罗列用户需求3 用图形化工具描述需求4

11、 导出系统逻辑模型系统设计阶 段1 系统数据库的设计(e-r图、系统表的定义等)2 系统功能模型3 模块的划分4 描述各模块的功能5 用层次图描述软件结构系统实现阶 段1 创建、配置系统数据库2 主要模块的软件实现 3 不同权限用户操作系统流程4 用户使用系统的过程书写论文图1:分析与设计过程第二章 系统分析2.1 可行性分析(1) 经济可行性档案管理是单位管理中的一个重要组成部分,涉及到单位管理的各个方面。档案管理水平的提高,能够带动单位各方面水平的提升。利用计算机对单位的档案进行管理,使档案管理人员从日常锁碎的管理工作中解脱出来,更好的协调单位人才,大大的提高了人才的利用率,使单位人才的能

12、力得以更充分的发挥。(2) 技术可行性以现在的水平看,开发这样一个系统有很多方法,主要应用到网络支持和数据库,运用面向过程和面向对象的编程语言均可实现。(3) 操作可行性由于大部分单位已经具有内部网,大部分员工已经能够运用办公自动化系统,只要将界面设计的接近windows的界面风格,在附上用户使用说明书,操作方面是没有问题的。2.2 流程图用户使用系统实现档案管理、档案查询、借阅等功能的操作流程如图2所示。用户登录是否合法用户在当前库中归档修改属性提交借阅申请查询档案新增档案选择档案库是否审批通过移出档案库是否按期归还是否审批通过返回未通过理由到档案室提取档案ynynynyn提醒操作系统管理员

13、,库管理员一般用户退出 图2:用户操作流程图2.3 需求分析通过调查,实现档案管理系统基本功能的需求如下,为了使系统需求更加清晰,下面先给出分层的用户需求3。(1) 机构管理a 只有系统管理员可对系统中的机构进行管理;b 机构管理要实现新增机构、修改机构名称及描述信息、删除机构等功能;c 新增机构是要提供机构名称和描述信息;d 删除机构前需要指定别的机构继承该机构的档案或者将该机构的所有档案移出档案库。(2) 用户管理a 根据权限不同,用户可以分为系统管理员,普通管理员和普通用户;b 可添加和删除用户和管理员、查询用户的各项信息和验证用户登录。(3) 档案库管理及管理员a 可新建档案库、删除档

14、案库、修改档案库的描述和任命档案库的管理员;b 每个档案库可指定一名管理员,该管理员在这个档案库中有和系统管理员一样的权限;c 某档案库的管理员可对库中的档案进行增加、归档、借阅(检查用户申请表单)和删除等操作;d 只有系统管理员才能对档案库进行管理。(4) 新增档案和归档a 针对某个档案库,只有系统管理员和该档案库的管理员才有权限对该档案库下的档案进行操作;b 用户可选择档案库,在该档案库中新增档案,在新增档案时,需要指定该档案的名称、所属机构、年度、保管期限和备注,但新增档案属未归档类型;c 管理员可查看、审核当前库中新增的档案,对合格的档案,管理员可在本档案库中进行归档操作,而对于不合理

15、的档案,管理员可修改其属性再在当前档案库中进行归档操作或移入别的档案库中接受另一库管理员或系统管理员的审核。(5) 档案的移出和相关操作a 管理员可将档案库中已归档的档案进行移出操作,移出后的档案还在系统中,不过此时状态为未归档状态;b 对于未归档的档案,管理员可以进行删除、更新它的信息,也可将它移入别的档案库或者在本档案库中进行归档等操作。(6) 档案查询a 用户可以查询已归档的档案;b 系统要能提供多种查询条件,如按档案名、所属机构、归档时间或所在档案库进行查询。(7) 借阅申请a 用户可对已归档的档案(未借出)进行借阅;b 借阅是需提交借阅申请;c 由借阅申请指明所借阅档案的档案名称、借

16、出时间和归还时间;d 若档案已有人申请,在管理员拒绝申请前,其他用户无法再申请。(8) 借阅审批a 只有对某个档案库有操作权限的用户才能对该档案库下的借阅申请进行审批;b 审批通过的用户便可到档案室提取档案;c 对审批未通过的借阅申请,管理员需要提出未通过的理由,将信息返回给用户。(9) 档案的归还与提醒a 用户将所借阅的档案归还时,管理员需要在系统中进行档案的归还操作;b 对于归还日期已到的档案,管理员可进行提醒操作,提醒借阅人归还档案。第三章 系统设计3.1 数据库设计3.1.1 引言数据库设计是开发数据库系统的首要环节和基础问题。它的目标是:对于给定的应用环境,建立一个性能良好的能满足不

17、同用户要求的,又能被选定的dbms所接受的数据库系统模式。在上一章中需求分析得出的逻辑模型的基础上,按新奥尔良方法(new orleans)进行数据库设计,先由分er图综合得到er模型,即数据库的概念模型,然后按转换规则将概念模型转化为关系模型,最后得出系统数据库的表4。3.1.2 数据库概念结构的设计利用分类、聚集和概括这三种基本方法对系统分析阶段收集到的数据进行抽象,得到实体集、属性和码如下:(1) 用户:用户账号,用户密码,用户权限(2) 机构:机构名称,机构描述(3) 档案库:名称,档案库说明(4) 档案:档案编号,档案名称,档案年度,保存类型,创建人,创建时间,状态,档案说明(5)

18、系统消息:消息编号,信息内容,状态(6) 操作日志:操作编号,操作描述确定实体集之间的联系类型(一对一、一对多和多对多的联系),设计各实体及属性的e-r图、分e-r图及汇总后的系统的e-r图。先得出各实体及属性的e-r图如上图3示,再得出分e-r图如上图4所示。分e-r图之间的冲突主要有:属性冲突、命名冲突和结构冲突,通过消除这3类冲突,将图4的分e-r图综合起来,得到综合后的e-r图如图5示。用户档案机构用户账号机构名称机构描述权限用户密码系统消息档案库档案编号档案名称档案年度保存类型创建人创建时间状态档案说明档案库说明名称操作描述操作编号状态消息内容消息编号操作日志图3:各实体及属性的e-

19、r图用户系统消息档案机构档案库档案库管理员系统消息档案库借阅包含管理发送借阅原因借出时间归还时间借出办理人拥有档案1n1nn1n1nn111管理员1接收操作 用户用户操作日志档案编号n(d)(a)(e)(g)(c)(f)(b)图4:分e-r图 用户系统消息操作日志系统消息接收发送操作借阅机构管理包含拥有档案档案库1n111nnnnnn111图5:分e-r图的综合3.1.3 数据库逻辑结构设计将概念模型中的一个实体集转换为关系模型中的一个关系,实体的属性就是关系的属性,实体的码就是关系的码。(1) 图4(a) 转换的关系模式为用户(用户账号,用户密码,用户权限)档案(档案编号,档案名称,档案年度

20、,保存类型,创建人,创建时间,状态,档案说明)借阅管理(档案编号,借阅人,借阅原因,借出时间,归还时间,借出办理人)(2) 图4(b) 转换的关系模式为机构(机构名称,机构描述)档案(档案编号,档案名称,档案年度,保存类型,创建人,创建时间,状态,档案说明,机构名称)(3) 图4(c) 转换的关系模式为档案库(名称,档案库说明)档案(档案编号,档案名称,档案年度,保存类型,创建人,创建时间,状态,档案说明,档案库名称)(4) 图4(d) 转换的关系模式为用户(用户账号,用户密码,用户权限)档案库(名称,档案库说明,管理员账号)(5) 图4(e) 转换的关系模式为用户(用户账号,用户密码,用户权

21、限)系统消息(消息编号,信息内容,状态,消息发送者)(6) 图4(f) 转换的关系模式为用户(用户账号,用户密码,用户权限)系统消息(消息编号,信息内容,状态,消息接收者)(7) 图4(g) 转换的关系模式为用户(用户账号,用户密码,用户权限)操作日志(操作编号,操作描述,操作针对表名,操作者)3.1.4 系统数据库表的定义在3.3中得到的关系模式中,根据需要可将具有相同码的关系合并为一个关系,经合并、消除命名冲突及重命名后,得出该系统所需的表汇总,如表1:表1:系统中用到的表汇总表名英文名作用用户信息表users记录系统中用户信息档案信息表file记录系统中档案信息档案库信息表filebas

22、e记录系统中档案库信息借阅信息表borrowrecord用户借阅记录机构信息表department记录系统中的机构信息系统消息表message记录与用户交互的系统消息系统日志信息表syslog记录系统日志消息表2:用户信息表字段名称别名数据类型字段大小用户账号id字符型20用户密码password字符型12用户权限privilege数值型1(0-超级管理员1-普通管理员 2-普通用户)表3:机构信息表字段名称别名数据类型字段大小机构名称name字符型20机构描述description字符型40表4:档案库信息表字段名称别名数据类型字段大小档案库名称name字符型20档案库说明descripti

23、on字符型40管理员账号admin字符型20表5:档案信息表字段名称别名数据类型字段大小档案编号id字符型6档案名称name字符型20机构名称dept字符型20档案年度fileyear字符型4保存类型timelimit数值型1(1-长期0-短期)创建人builder字符型20创建时间buildtime日期时间型8状态attr数值型1(1-已入库0-未入库)档案库filebase字符型20档案说明note字符型40借阅人borrower字符型20表6:借阅信息表字段名称别名数据类型字段大小档案编号file字符型6借阅原因reason字符型40借阅人borrower字符型20借出时间beginti

24、me日期时间型8归还时间endtime日期时间型8借出办理人lender字符型20状态state数值型1(1-借出0-申请)表7:系统消息表字段名称别名数据类型字段大小信息编号id字符型4信息发送者from字符型20信息接收者to字符型20信息内容message字符型40状态state数值型1(1-未读0-已读)表8:操作日志表字段名称别名数据类型字段大小操作编号id字符型4操作者operator字符型20操作描述operation字符型20操作针对表名tablename字符型12本系统所需要的数据库基本表如表2至表8所列。系统各表间的关系如图6所示:messageidfromtomessag

25、estateusersidpasswordprivilegefileidnamedeptfileyeartimelimitbuilderbuildtimeattrfilebasenoteborrowerdepartmentnamedescriptionsyslogidoperatoroperationtablenamefilebasenamedescriptionadminborrowrecordfilereasonborrowerbegintimeendtimelenderstate图6:各表间的关系3.1.5 数据库完整性的设计数据库完整性的设计将直接影响dbms能否真实的体现现实世界,完

26、整性控制机制的使用,能够防止合法用户向数据库添加错误数据,从而降低应用程序的复杂性,提高系统易用性。此阶段根据需求分析的结果,对系统实现符合要求的约束,细致规划出各类完整性,尽力排除完整性约束间的冲突5。通常情况,数据库完整性约束可分为静态约束和动态约束,静态约束应尽量包含在数据库模中,一般数据库产品主要支持primary约束,unique约束,check约束,default约束,foreign约束。动态约束主要定义对约束条件本身的约束,由程序完成。参照完整性fpreign约束设计非常重要,它要求外键的值必须来源于被参照关系的取值或空值,上述设计系统的表中的主外键关系如下表9所示:表9:各表间

27、主外键的关系主键外键users.idmessage.fromusers.idmessage.tousers.idfile.builderusers.idborrowrecord.borrowerusers.idborrowrecord.lenderusers.idfilebase.adminusers.idsyslog.operatorfile.idborrowrfile.filebaseusers.idfile.borrower系统的参照关系如下:系统消息表中信息发送者参照用户信息表中用户账号;系统

28、消息表中信息接收者参照用户信息表中用户账号;档案信息表中的创建人参照用户信息表中用户账号;借阅信息表中借阅人参照用户信息表中用户账号;借阅信息表中借出办理人参照用户信息表中用户账号;档案库信息表中管理员账号参照用户信息表中用户账号;操作日志表中操作者参照用户信息表中用户账号;借阅信息表中的档案编号参照档案信息表中档案编号;档案信息表中机构名称参照机构信息表中机构名称;档案信息表中档案库参照档案库信息表中名称;档案信息表中借阅人参照用户信息表中用户账号;3.2 模块设计3.2.1 系统架构为了使软件结构清晰,便于设计和开发,提高系统的可靠性和软件的可修改性,使用模块化原理将系统划分成如图7所示7

29、个模块,每个模块对应需求分析中的各个功能,只有具有系统账号的用户才可适用本系统。用户登录用户管理机构管理档案库管理档案管理借阅管理档案检索与借阅我的档案sqlserver数据库图7:模块划分图3.2.2 各模块的功能(1) 用户管理模块用户管理模块主要实现用户(普通用户、某个档案库管理员)的添加和删除,查看用户的详细信息(生成报表),验证用户的登录等功能。只有系统管理员才有权进行该项管理。(2) 机构管理模块机构管理模块主要实现增加机构、删除机构、修改机构描述信息等功能。只有系统管理员才有权进行该项管理。(3) 档案库管理模块档案库管理模块的功能包括新建档案库、删除档案库、修改档案库的描述和任

30、命档案库的管理员等。只有系统管理员才有权进行该项管理。(4) 档案管理模块档案管理模块的操作主要有:在档案库中增加档案、删除库中未归档档案、对未归档档案进行归档、修改未归档档案的信息、将档案库下未归档的档案移入其他档案库、将已归档的档案移出档案库等。档案管理是有权限限制的,其权限分割的标准是档案库。针对某个档案库,只有系统管理员和该档案库的管理员才有权对该档案库下的档案进行操作。(5) 借阅管理模块借阅管理模块的操作主要有:显示指定档案库下的借阅申请和已借档案的列表、显示借阅申请或已借档案的详细信息、提醒借阅人归还和归还档案等。同档案管理一样,只有对某个档案库有操作权限的用户才能对该档案库下的

31、借阅事务进行管理。(6) 档案检索与借阅模块档案检索与借阅模块主要实现检索档案和提交借阅申请单。用户通过设定检索条件对档案进行检索,可以查看检索出档案的详细信息,针对某个未被借出的档案提出借阅申请并填写借阅申请单。档案检索与借阅模块是所有用户都可操作的模块。(7) “我的档案”模块该模块为用户提供与借阅档案有关的信息,包括已提交的借阅申请,正在借阅的档案,申请的处理情况。“我的档案”模块是所有用户都可操作的模块。33 软件结构设计档案管理系统用户管 理档案库管理机构管 理档案管 理借阅管 理档案检索借 阅我的档 案用户的增加和删除查询用户信息验证用户登录机构的添加和删除修改机构描述信息档案库的

32、增加修和改删除任命档案库管理员档案的增加修改和删除档案的归档和移出档案的转移借阅申请的审批档案的归还与提醒检索档案借阅申请图8:系统层次图在上面模块设计中将系统划分成了7个模块,每个模块完成一个适当的子功能。应该把模块组织成良好的层次关系,顶层模块调用它下层模块以实现程序的完整功能,每个下层模块再调用更下层的模块,从而完成程序的一个子功能,最下层的模块完成最具体的功能。软件结构,即由模块组成的层次系统,可用层次图来描绘,如图8所示:层次图中的一个矩形框代表一个模块,方框间的连线表示调用关系,上图中,最顶层的方框代表档案管理系统的主控模块,它调用下层模块完成档案管理系统的全部功能,第二层的每个模

33、块控制完成档案管理系统的一个主要功能。第四章系统实现41 开发工具本系统采用microsoft visual c+ 6.0作为开发工具,visual c+6.0不仅是一个c+编译器,而且是一个基于windows操作系统功能强大的可视化集成开发环境(integrated development environment,ide)。visual c+6.0由许多组件组成,包括编辑器、调试器以及程序向导appwizard、类向导class wizard等开发工具。mfc,微软基础类(microsoft foundation classes),实际上是微软提供的,用于在c+环境下编写应用程序的一个框架和

34、引擎6,vc+是windos下开发人员使用的专业c+ sdk(sdk,standard software develop kit,专业软件开发平台),mfc就是挂在它之上的一个辅助软件开发包,mfc作为与vc+血肉相连的部分。mfc是win api与c+的结合,api,即微软提供的windos下应用程序的编程语言接口,是一种软件编程的规范,但不是一种程序开发语言本身,可以允许用户使用各种各样的第三方的编程语言来进行对windos下应用程序的开发,使这些被开发出来的应用程序能在windos下运行,比如vb、vc+、java、dehpi编程语言函数本质上全部源于api,因此用它们开发出来的应用程序

35、都能工作在winos的消息机制和绘图里,遵守windos作为一个操作系统的内部实现7。上面说到mfc是微软对api函数的专用c+封装,这种结合一方面让用户使用微软的专业c+ sdk来进行win下应用程序的开发变得容易,因为mfc是对api的封装,微软做了大量的工作,隐藏了好多程序开发人员在win下用c+ & mfc编制软件时的大量内节,如应用程序实现消息的处理,设备环境绘图,这种结合是以方便为目的的,必定要付出一定代价,因此就造成了mfc对类封装中的一定程度的冗余和迂回,但这是可以接受的8。42 各个模块的界面和代码实现本系统有7个功能模块,其中系统管理员可以进行全部的操作,普通管理员不能进行

36、用户管理,机构管理,档案库管理这三种操作,而一般用户只能进行档案检索和借阅,“我的档案”这两种操作,“我的档案”的功能未全部实现。4.2.1 登录模块当用户进入档案管理系统时,系统将转向用户登录界面,输入用户账号和密码,如图9。登录成功后,系统将转向系统管理员操作界面,如图10所示。然后用户就可以根据自己的权限选择各种操作了。图9:用户登录界面 登录模块的代码:bool clanddlg:pretranslatemessage(msg* pmsg) / todo: add your specialized code here and/or call the base classi

37、f( pmsg-message = wm_keydown) if( pmsg-wparam = 0x0d)/屏蔽回车 this-onbtnland();return true; if( pmsg-wparam = vk_escape )/屏蔽esc return true; return cdialog:pretranslatemessage(pmsg);图10:系统主界面void clanddlg:onbtnland() / todo: add your control notification handler code herecstring uid;this-getdlgitemtext

38、(idc_edit1,uid);if( uid = )if( idcancel = this-messagebox(用户名为空,单击确定继续,单击取消退出系统,警告,mb_okcancel | mb_iconwarning) )this-sendmessage(wm_close);(cfilemanagedlg *)this-getparent()-sendmessage(wm_close);this-m_uid.setfocus();return ;cstring psw;this-getdlgitemtext(idc_edit2,psw);if( psw = )if( idcancel =

39、 this-messagebox(密码为空,单击确定继续,单击取消退出系统,警告,mb_okcancel | mb_iconwarning)this-sendmessage(wm_close);(cfilemanagedlg *)this-getparent()-sendmessage(wm_close);this-m_psw.setfocus();return ;extern_recordsetptr precordset;extern _connectionptr pconnection;cfilemanagedlg * pfilemanagedlg = (cfilemanagedlg *

40、)this-getparent();pfilemanagedlg-connectdatabase(document);precordset-open(select * from users,pconnection.getinterfaceptr(),adopenstatic,adlockoptimistic,adcmdtext);precordset-movefirst();extern cstring afx_uid; /当前合法用户的帐号extern cstring afx_privilege; / 当前合法用户的密码while(!precordset-adoeof)_bstr_t _ui

41、d=precordset-getcollect(id);_bstr_t _psw=precordset-getcollect(password);_bstr_t _privilege=precordset-getcollect(privilege);if( _uid = uid & _psw = psw )pfilemanagedlg-m_land_flag = true;afx_uid = uid;afx_privilege =(const char*)_privilege;break;precordset-movenext();/whileprecordset-close();if( !p

42、filemanagedlg-m_land_flag)this-messagebox(不存在用户或密码输入错误,请重新输入);this-onbtnreset(); else /是合法的用户this-sendmessage(wm_close); /关闭用户登陆界面,进入程序主窗口void clanddlg:onbtnreset() / todo: add your control notification handler code herethis-m_uid.setsel(0,-1);this-m_uid.clear();this-m_psw.setsel(0,-1);this-m_psw.cl

43、ear();this-m_uid.setfocus();4.2.2 用户管理模块在系统主界面中单击“用户管理”按钮,系统将转向用户管理界面,如图11所示。单击“生成报表”按钮,系统将转向生成用户报表界面,列出系统所有用户信息,如图12所示。返回用户管理界面,单击“添加用户”按钮,系统将转向添加用户界面。若要添加的用户信息有误,系统将给出提示信息,若添加操作成功,系统将给出对话框提示添加操作成功,如图13所示。返回用户管理界面,单击“删除用户”按纽,系统转向删除用户界面,若要删除的用户信息有误,系统将给出提示信息,若删除操作成功,系统将给出对话框提示删除操作成功,如图14所示。 图11:用户管理

44、界面图12:生成用户报表界面图13:添加用户界面图14:删除用户界面用户管理模块的代码: 添加用户void cadduserdlg:onadd() this-updatedata();if( this-m_uid.getlength() = 0)this-messagebox(用户帐号为空,单击确定继续,警告,mb_ok | mb_iconwarning) ;return ;if( this-m_psw.getlength() = 0)this-messagebox(用户密码为空,单击确定继续,警告,mb_ok | mb_iconwarning) ;return ;if( thi

45、s-m_uid.getlength() 20 )this-messagebox(用户帐号过长,单击确定重新输入,警告,mb_ok | mb_iconwarning) ;cedit * pedit = (cedit *)this-getdlgitem(idc_edit1);pedit-setsel(0,-1);pedit-clear();pedit = (cedit *)this-getdlgitem(idc_edit2);pedit-setsel(0,-1);pedit-clear();(cedit *)this-getdlgitem(idc_edit1)-setfocus();return

46、;if( this-m_psw.getlength() 12 )this-messagebox(用户密码过长,单击确定重新输入,警告,mb_ok | mb_iconwarning) ;cedit * pedit = (cedit *)this-getdlgitem(idc_edit2);pedit-setsel(0,-1);pedit-clear();pedit-setfocus();return ;cstring privilege;this-m_privilegelist.getlbtext( this-m_privilegelist.getcursel(),privilege );/输入

47、正常,写入数据库extern _connectionptr pconnection;extern_recordsetptr precordset;precordset-open(select id from users,pconnection.getinterfaceptr(),adopenstatic,adlockoptimistic,adcmdtext);precordset-movefirst();_bstr_t uid;while(!precordset-adoeof)uid = precordset-getcollect(id);if( uid = _bstr_t(lpctstr)t

48、his-m_uid) )this-messagebox(该用户名已存在,请重新输入一个用户名,操作失败);this-onreset();precordset-close();return ;precordset-movenext();precordset-close();_bstr_t sql=insert into users(id,password,privilege) values(;sql += (lpctstr)this-m_uid;sql += ,;sql += (lpctstr)this-m_psw;sql += ,;sql += (lpctstr)privilege;sql +

49、= );_variant_t recordsaffected;pconnection-execute(sql,&recordsaffected,adcmdtext);this-messagebox( 添加用户操作成功!,操作成功,mb_iconinformation );this-onreset();(cedit *)this-getdlgitem(idc_edit1)-setfocus();void cadduserdlg:onreset() cedit * pedit = (cedit *)this-getdlgitem(idc_edit1);pedit-setsel(0,-1);pedi

50、t-clear();pedit = (cedit *)this-getdlgitem(idc_edit2);pedit-setsel(0,-1);pedit-clear();(cedit *)this-getdlgitem(idc_edit1)-setfocus();bool cadduserdlg:oninitdialog() cdialog:oninitdialog();this-m_privilegelist.addstring(0);this-m_privilegelist.addstring(1);this-m_privilegelist.addstring(2);this-m_pr

51、ivilegelist.setcursel(0);return true; bool cadduserdlg:pretranslatemessage(msg* pmsg) if( pmsg-message = wm_keydown) if( pmsg-wparam = 0x0d)/屏蔽回车 return true; if( pmsg-wparam = vk_escape )/屏蔽esc return true; return cdialog:pretranslatemessage(pmsg); 删除用户void cdeleteuserdlg:ondelete() / todo: add your control notification handler code her

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论