基于MFC档案管理系统的设计与实现

上传人:1888****888 文档编号:39595996 上传时间:2021-11-11 格式:DOC 页数:59 大小:803.52KB
返回 下载 相关 举报
基于MFC档案管理系统的设计与实现_第1页
第1页 / 共59页
基于MFC档案管理系统的设计与实现_第2页
第2页 / 共59页
基于MFC档案管理系统的设计与实现_第3页
第3页 / 共59页
点击查看更多>>
资源描述
基于MFC档案管理系统的设计与实现摘 要档案管理系统是档案管理利用计算机技术的创新,在计算机还未普及之前档案文件管理都是由工作人员人工存档,调阅的方式来操作的。现在,档案管理采用计算机智能化管理,采用计算机作为工具来帮助档案管理员进行更有效的地做好案管理工作。档案管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。基于Visual C+ 6.0编程工具,并利用其中的MFC类库,本系统主要是对档案进行归档、查询、借阅和归还管理,方便档案的管理工作和用户的使用,提供友好的用户界面,并且具有密码和权限管理功能设计并实现了一种基于SQL数据库的实用的档案管理系统。通过档案管理系统,使档案管理工作系统化、规范化、自动化、从而达到提高档案管理效率的目的。关键词:档案管理系统;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, access 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), 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 management 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 archives 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.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档案管理系统的设计与实现第一章 引 言随着经济的发展,社会的进步,计算机越来越深入到我们日常的工作学习及生活中,成为我们日常生活中不可缺少的辅助工具。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。它已经深入到日常工作和生活的方方面面,比如文字处理、信息管理、辅助设计、图形图像处理、教育培训以及游戏娱乐等。各行各业的人们无须经过特别的训练就能够使用电脑完成许许多多复杂的工作。数据库技术是从60年代初发展起来的计算机技术,经过四十来年的发展,数据库技术己经趋于成熟,并成功应用于信息系统的开发当中1。当今时代是飞速发展的信息时代,在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的原因。计算机的最大好处在于利用它能够进行信息管理,不仅提高了工作效率,而且大大的提高了其安全性,尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。档案管理是一个单位不可缺少的部分,它的内容对于该单位的决策者和管理者来说都至关重要,所以档案管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难2。作为计算机科学技术、数据库技术应用的一部分,使用计算机对事业单位的档案信息进行管理,具有手工管理所无法比拟的优点。例如:方便借阅、易于归档、检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高档案管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。由于这些问题,我认为建立一个档案管理系统,开发这样一套信息管理软件成为很有必要的事情。本课题主要研究如何进行系统分析和设计,来实现档案的归档、查询、借阅、审批和归还流程。在下面的各章中将以开发一套档案管理系统为例,谈谈其分析过程、开发过程和所涉及到的问题及相应的解决方法。由于是毕业设计,部分较复杂的功能将会在分析阶段进行分析,但由于时间有限和能力不足,就未予以实现,这不会影响档案管理系统最基本功能的实现。下面,我先给出档案管理系统的分析与设计过程:系统分析阶段1 查询资料了解项目意义、背景2 分析现有系统状况,罗列用户需求3 用图形化工具描述需求4 导出系统逻辑模型系统设计阶 段1 系统数据库的设计(E-R图、系统表的定义等)2 系统功能模型3 模块的划分4 描述各模块的功能5 用层次图描述软件结构系统实现阶 段1 创建、配置系统数据库2 主要模块的软件实现 3 不同权限用户操作系统流程4 用户使用系统的过程书写论文图1:分析与设计过程第二章 系统分析2.1 可行性分析(1) 经济可行性档案管理是单位管理中的一个重要组成部分,涉及到单位管理的各个方面。档案管理水平的提高,能够带动单位各方面水平的提升。利用计算机对单位的档案进行管理,使档案管理人员从日常锁碎的管理工作中解脱出来,更好的协调单位人才,大大的提高了人才的利用率,使单位人才的能力得以更充分的发挥。(2) 技术可行性以现在的水平看,开发这样一个系统有很多方法,主要应用到网络支持和数据库,运用面向过程和面向对象的编程语言均可实现。(3) 操作可行性由于大部分单位已经具有内部网,大部分员工已经能够运用办公自动化系统,只要将界面设计的接近Windows的界面风格,在附上用户使用说明书,操作方面是没有问题的。2.2 流程图用户使用系统实现档案管理、档案查询、借阅等功能的操作流程如图2所示。用户登录是否合法用户在当前库中归档修改属性提交借阅申请查询档案新增档案选择档案库是否审批通过移出档案库是否按期归还是否审批通过返回未通过理由到档案室提取档案YNYNYNYN提醒操作系统管理员,库管理员一般用户退出 图2:用户操作流程图2.3 需求分析通过调查,实现档案管理系统基本功能的需求如下,为了使系统需求更加清晰,下面先给出分层的用户需求3。(1) 机构管理a 只有系统管理员可对系统中的机构进行管理;b 机构管理要实现新增机构、修改机构名称及描述信息、删除机构等功能;c 新增机构是要提供机构名称和描述信息;d 删除机构前需要指定别的机构继承该机构的档案或者将该机构的所有档案移出档案库。(2) 用户管理a 根据权限不同,用户可以分为系统管理员,普通管理员和普通用户;b 可添加和删除用户和管理员、查询用户的各项信息和验证用户登录。(3) 档案库管理及管理员a 可新建档案库、删除档案库、修改档案库的描述和任命档案库的管理员;b 每个档案库可指定一名管理员,该管理员在这个档案库中有和系统管理员一样的权限;c 某档案库的管理员可对库中的档案进行增加、归档、借阅(检查用户申请表单)和删除等操作;d 只有系统管理员才能对档案库进行管理。(4) 新增档案和归档a 针对某个档案库,只有系统管理员和该档案库的管理员才有权限对该档案库下的档案进行操作;b 用户可选择档案库,在该档案库中新增档案,在新增档案时,需要指定该档案的名称、所属机构、年度、保管期限和备注,但新增档案属未归档类型;c 管理员可查看、审核当前库中新增的档案,对合格的档案,管理员可在本档案库中进行归档操作,而对于不合理的档案,管理员可修改其属性再在当前档案库中进行归档操作或移入别的档案库中接受另一库管理员或系统管理员的审核。(5) 档案的移出和相关操作a 管理员可将档案库中已归档的档案进行移出操作,移出后的档案还在系统中,不过此时状态为未归档状态;b 对于未归档的档案,管理员可以进行删除、更新它的信息,也可将它移入别的档案库或者在本档案库中进行归档等操作。(6) 档案查询a 用户可以查询已归档的档案;b 系统要能提供多种查询条件,如按档案名、所属机构、归档时间或所在档案库进行查询。(7) 借阅申请a 用户可对已归档的档案(未借出)进行借阅;b 借阅是需提交借阅申请;c 由借阅申请指明所借阅档案的档案名称、借出时间和归还时间;d 若档案已有人申请,在管理员拒绝申请前,其他用户无法再申请。(8) 借阅审批a 只有对某个档案库有操作权限的用户才能对该档案库下的借阅申请进行审批;b 审批通过的用户便可到档案室提取档案;c 对审批未通过的借阅申请,管理员需要提出未通过的理由,将信息返回给用户。(9) 档案的归还与提醒a 用户将所借阅的档案归还时,管理员需要在系统中进行档案的归还操作;b 对于归还日期已到的档案,管理员可进行提醒操作,提醒借阅人归还档案。第三章 系统设计3.1 数据库设计3.1.1 引言数据库设计是开发数据库系统的首要环节和基础问题。它的目标是:对于给定的应用环境,建立一个性能良好的能满足不同用户要求的,又能被选定的DBMS所接受的数据库系统模式。在上一章中需求分析得出的逻辑模型的基础上,按新奥尔良方法(New Orleans)进行数据库设计,先由分ER图综合得到ER模型,即数据库的概念模型,然后按转换规则将概念模型转化为关系模型,最后得出系统数据库的表4。3.1.2 数据库概念结构的设计利用分类、聚集和概括这三种基本方法对系统分析阶段收集到的数据进行抽象,得到实体集、属性和码如下:(1) 用户:用户账号,用户密码,用户权限(2) 机构:机构名称,机构描述(3) 档案库:名称,档案库说明(4) 档案:档案编号,档案名称,档案年度,保存类型,创建人,创建时间,状态,档案说明(5) 系统消息:消息编号,信息内容,状态(6) 操作日志:操作编号,操作描述确定实体集之间的联系类型(一对一、一对多和多对多的联系),设计各实体及属性的E-R图、分E-R图及汇总后的系统的E-R图。先得出各实体及属性的E-R图如上图3示,再得出分E-R图如上图4所示。分E-R图之间的冲突主要有:属性冲突、命名冲突和结构冲突,通过消除这3类冲突,将图4的分E-R图综合起来,得到综合后的E-R图如图5示。用户档案机构用户账号机构名称机构描述权限用户密码系统消息档案库档案编号档案名称档案年度保存类型创建人创建时间状态档案说明档案库说明名称操作描述操作编号状态消息内容消息编号操作日志图3:各实体及属性的E-R图用户系统消息档案机构档案库档案库管理员系统消息档案库借阅包含管理发送借阅原因借出时间归还时间借出办理人拥有档案1n1nn1n1nn111管理员1接收操作 用户用户操作日志档案编号n(d)(a)(e)(g)(c)(f)(b)图4:分E-R图 用户系统消息操作日志系统消息接收发送操作借阅机构管理包含拥有档案档案库1n111nnnnnn111图5:分E-R图的综合3.1.3 数据库逻辑结构设计将概念模型中的一个实体集转换为关系模型中的一个关系,实体的属性就是关系的属性,实体的码就是关系的码。(1) 图4(a) 转换的关系模式为用户(用户账号,用户密码,用户权限)档案(档案编号,档案名称,档案年度,保存类型,创建人,创建时间,状态,档案说明)借阅管理(档案编号,借阅人,借阅原因,借出时间,归还时间,借出办理人)(2) 图4(b) 转换的关系模式为机构(机构名称,机构描述)档案(档案编号,档案名称,档案年度,保存类型,创建人,创建时间,状态,档案说明,机构名称)(3) 图4(c) 转换的关系模式为档案库(名称,档案库说明)档案(档案编号,档案名称,档案年度,保存类型,创建人,创建时间,状态,档案说明,档案库名称)(4) 图4(d) 转换的关系模式为用户(用户账号,用户密码,用户权限)档案库(名称,档案库说明,管理员账号)(5) 图4(e) 转换的关系模式为用户(用户账号,用户密码,用户权限)系统消息(消息编号,信息内容,状态,消息发送者)(6) 图4(f) 转换的关系模式为用户(用户账号,用户密码,用户权限)系统消息(消息编号,信息内容,状态,消息接收者)(7) 图4(g) 转换的关系模式为用户(用户账号,用户密码,用户权限)操作日志(操作编号,操作描述,操作针对表名,操作者)3.1.4 系统数据库表的定义在3.3中得到的关系模式中,根据需要可将具有相同码的关系合并为一个关系,经合并、消除命名冲突及重命名后,得出该系统所需的表汇总,如表1:表1:系统中用到的表汇总表名英文名作用用户信息表users记录系统中用户信息档案信息表file记录系统中档案信息档案库信息表filebase记录系统中档案库信息借阅信息表borrowRecord用户借阅记录机构信息表department记录系统中的机构信息系统消息表message记录与用户交互的系统消息系统日志信息表syslog记录系统日志消息表2:用户信息表字段名称别名数据类型字段大小用户账号Id字符型20用户密码Password字符型12用户权限Privilege数值型1(0-超级管理员1-普通管理员 2-普通用户)表3:机构信息表字段名称别名数据类型字段大小机构名称Name字符型20机构描述Description字符型40表4:档案库信息表字段名称别名数据类型字段大小档案库名称Name字符型20档案库说明Description字符型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借出时间Begintime日期时间型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所示:messageidfromtomessagestateusersidpasswordprivilegefileidnamedeptfileyeartimelimitbuilderbuildtimeattrfilebasenoteborrowerdepartmentnamedescriptionsyslogidoperatoroperationtablenamefilebasenamedescriptionadminborrowRecordfilereasonborrowerbegintimeendtimelenderstate图6:各表间的关系3.1.5 数据库完整性的设计数据库完整性的设计将直接影响DBMS能否真实的体现现实世界,完整性控制机制的使用,能够防止合法用户向数据库添加错误数据,从而降低应用程序的复杂性,提高系统易用性。此阶段根据需求分析的结果,对系统实现符合要求的约束,细致规划出各类完整性,尽力排除完整性约束间的冲突5。通常情况,数据库完整性约束可分为静态约束和动态约束,静态约束应尽量包含在数据库模中,一般数据库产品主要支持PRIMARY约束,UNIQUE约束,CHECK约束,DEFAULT约束,FOREIGN约束。动态约束主要定义对约束条件本身的约束,由程序完成。参照完整性FPREIGN约束设计非常重要,它要求外键的值必须来源于被参照关系的取值或空值,上述设计系统的表中的主外键关系如下表9所示:表9:各表间主外键的关系主键外键users.idmessage.fromusers.idmessage.tousers.idfile.builderusers.idborrowRecord.borrowerusers.idborrowRecord.lenderusers.idfilebase.adminusers.idsyslog.operatorfile.idborrowRecord.filedepartment.namefile.deptfilebase.namefile.filebaseusers.idfile.borrower系统的参照关系如下:系统消息表中信息发送者参照用户信息表中用户账号;系统消息表中信息接收者参照用户信息表中用户账号;档案信息表中的创建人参照用户信息表中用户账号;借阅信息表中借阅人参照用户信息表中用户账号;借阅信息表中借出办理人参照用户信息表中用户账号;档案库信息表中管理员账号参照用户信息表中用户账号;操作日志表中操作者参照用户信息表中用户账号;借阅信息表中的档案编号参照档案信息表中档案编号;档案信息表中机构名称参照机构信息表中机构名称;档案信息表中档案库参照档案库信息表中名称;档案信息表中借阅人参照用户信息表中用户账号;3.2 模块设计3.2.1 系统架构为了使软件结构清晰,便于设计和开发,提高系统的可靠性和软件的可修改性,使用模块化原理将系统划分成如图7所示7个模块,每个模块对应需求分析中的各个功能,只有具有系统账号的用户才可适用本系统。用户登录用户管理机构管理档案库管理档案管理借阅管理档案检索与借阅我的档案SQLServer数据库图7:模块划分图3.2.2 各模块的功能(1) 用户管理模块用户管理模块主要实现用户(普通用户、某个档案库管理员)的添加和删除,查看用户的详细信息(生成报表),验证用户的登录等功能。只有系统管理员才有权进行该项管理。(2) 机构管理模块机构管理模块主要实现增加机构、删除机构、修改机构描述信息等功能。只有系统管理员才有权进行该项管理。(3) 档案库管理模块档案库管理模块的功能包括新建档案库、删除档案库、修改档案库的描述和任命档案库的管理员等。只有系统管理员才有权进行该项管理。(4) 档案管理模块档案管理模块的操作主要有:在档案库中增加档案、删除库中未归档档案、对未归档档案进行归档、修改未归档档案的信息、将档案库下未归档的档案移入其他档案库、将已归档的档案移出档案库等。档案管理是有权限限制的,其权限分割的标准是档案库。针对某个档案库,只有系统管理员和该档案库的管理员才有权对该档案库下的档案进行操作。(5) 借阅管理模块借阅管理模块的操作主要有:显示指定档案库下的借阅申请和已借档案的列表、显示借阅申请或已借档案的详细信息、提醒借阅人归还和归还档案等。同档案管理一样,只有对某个档案库有操作权限的用户才能对该档案库下的借阅事务进行管理。(6) 档案检索与借阅模块档案检索与借阅模块主要实现检索档案和提交借阅申请单。用户通过设定检索条件对档案进行检索,可以查看检索出档案的详细信息,针对某个未被借出的档案提出借阅申请并填写借阅申请单。档案检索与借阅模块是所有用户都可操作的模块。(7) “我的档案”模块该模块为用户提供与借阅档案有关的信息,包括已提交的借阅申请,正在借阅的档案,申请的处理情况。“我的档案”模块是所有用户都可操作的模块。33 软件结构设计档案管理系统用户管 理档案库管理机构管 理档案管 理借阅管 理档案检索借 阅我的档 案用户的增加和删除查询用户信息验证用户登录机构的添加和删除修改机构描述信息档案库的增加修和改删除任命档案库管理员档案的增加修改和删除档案的归档和移出档案的转移借阅申请的审批档案的归还与提醒检索档案借阅申请图8:系统层次图在上面模块设计中将系统划分成了7个模块,每个模块完成一个适当的子功能。应该把模块组织成良好的层次关系,顶层模块调用它下层模块以实现程序的完整功能,每个下层模块再调用更下层的模块,从而完成程序的一个子功能,最下层的模块完成最具体的功能。软件结构,即由模块组成的层次系统,可用层次图来描绘,如图8所示:层次图中的一个矩形框代表一个模块,方框间的连线表示调用关系,上图中,最顶层的方框代表档案管理系统的主控模块,它调用下层模块完成档案管理系统的全部功能,第二层的每个模块控制完成档案管理系统的一个主要功能。第四章系统实现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+环境下编写应用程序的一个框架和引擎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,因此用它们开发出来的应用程序都能工作在WinOS的消息机制和绘图里,遵守WinDOS作为一个操作系统的内部实现7。上面说到MFC是微软对API函数的专用C+封装,这种结合一方面让用户使用微软的专业C+ SDK来进行Win下应用程序的开发变得容易,因为MFC是对API的封装,微软做了大量的工作,隐藏了好多程序开发人员在Win下用C+ & MFC编制软件时的大量内节,如应用程序实现消息的处理,设备环境绘图,这种结合是以方便为目的的,必定要付出一定代价,因此就造成了MFC对类封装中的一定程度的冗余和迂回,但这是可以接受的8。42 各个模块的界面和代码实现本系统有7个功能模块,其中系统管理员可以进行全部的操作,普通管理员不能进行用户管理,机构管理,档案库管理这三种操作,而一般用户只能进行档案检索和借阅,“我的档案”这两种操作,“我的档案”的功能未全部实现。4.2.1 登录模块当用户进入档案管理系统时,系统将转向用户登录界面,输入用户账号和密码,如图9。登录成功后,系统将转向系统管理员操作界面,如图10所示。然后用户就可以根据自己的权限选择各种操作了。图9:用户登录界面4.2.1.1 登录模块的代码:BOOL CLandDlg:PreTranslateMessage(MSG* pMsg) / TODO: Add your specialized code here and/or call the base classif( 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(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 = 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 *)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 _uid=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( !pFileManageDlg-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.Clear();this-m_uid.SetFocus();4.2.2 用户管理模块在系统主界面中单击“用户管理”按钮,系统将转向用户管理界面,如图11所示。单击“生成报表”按钮,系统将转向生成用户报表界面,列出系统所有用户信息,如图12所示。返回用户管理界面,单击“添加用户”按钮,系统将转向添加用户界面。若要添加的用户信息有误,系统将给出提示信息,若添加操作成功,系统将给出对话框提示添加操作成功,如图13所示。返回用户管理界面,单击“删除用户”按纽,系统转向删除用户界面,若要删除的用户信息有误,系统将给出提示信息,若删除操作成功,系统将给出对话框提示删除操作成功,如图14所示。 图11:用户管理界面图12:生成用户报表界面图13:添加用户界面图14:删除用户界面用户管理模块的代码:4.2.2.1 添加用户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( this-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 ;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 );/输入正常,写入数据库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)this-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 += );_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);pEdit-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_privilegelist.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);4.2.2.2 删除用户void CDeleteUserDlg:OnDelete() / TODO: Add your control notification handler code herethis-UpdateData();if( this-m_uid = )this-MessageBox(用户帐号不能为空!,输入不正确,MB_ICONWARNING);return ;extern _ConnectionPtr pConnection;extern_RecordsetPtr pRecordset;_bstr_t sql = delete from users where id=;sql += (LPCTSTR)this-m_uid;sql += ;_variant_t RecordsAffected;pConnection-Execute(sql,&RecordsAffected,adCmdText);if( RecordsAffected.intVal )if( IDNO = this-MessageBox(删除操作成功,是否继续?!,操作成功,MB_YESNO)this-SendMessage(WM_CLOSE);elsethis-MessageBox(删除操作失败,请重新输入用户名,操作失败);CEdit * pEdit = (CEdit *)this-GetDlgItem(IDC_EDIT1);pEdit-SetSel(0,-1);pEdit-Clear();pEdit-SetFocus();void CDeleteUserDlg:OnReset() CEdit * pEdit = (CEdit *)this-GetDlgItem(IDC_EDIT1);pEdit-SetSel(0,-1);pEdit-Clear();pEdit-SetFocus();4.2.2.3 生成用户报表BOOL CUserTableDlg:OnInitDialog() CDialog:OnInitDialog();/ TODO: Add extra initialization herem_list.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES );m_list.SetBkColor(RGB(247,247,255); m_list.SetTextColor(RGB(0,0,255); m_list.SetTextBkColor(RGB(247,247,255);m_list.InsertColumn(0, 用户帐号, LVCFMT_LEFT, 130); m_list.InsertColumn(1, 用户密码, LVCFMT_LEFT, 100);m_list.InsertColumn(2, 用户权限, LVCFMT_LEFT, 70);extern_RecordsetPtr pRecordset;extern _ConnectionPtr pConnection;pRecordset-Open(select * from users,pConnection.GetInterfacePtr(),adOpenStatic,adLockOptimistic,adCmdText);pRecordset-MoveFirst();int i = 0;_bstr_t uid;_bstr_t psw;_bstr_t privilege;while(!pRecordset-adoEOF)uid = pRecordset-GetCollect(id);psw = pRecordset-GetCollect(password);privilege = pRecordset-GetCollect(privilege);m_list.InsertItem(i,uid);m_list.SetItemText(i,1,psw);m_list.SetItemText(i,2,privilege);pRecordset-MoveNext();i+;pRecordset-Close();return TRUE; 4.2.3 机构管理模块这个模块的界面如图15所示,其中增加机构,删除机构操作与用户管理模块的操作相
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸下载 > CAD图纸下载


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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