基于web的文档管理系统的设计与实现

基于web的文档管理系统的设计与实现

ID:12364640

大小:722.00 KB

页数:31页

时间:2018-07-16

上传者:U-8436
基于web的文档管理系统的设计与实现_第1页
基于web的文档管理系统的设计与实现_第2页
基于web的文档管理系统的设计与实现_第3页
基于web的文档管理系统的设计与实现_第4页
基于web的文档管理系统的设计与实现_第5页
资源描述:

《基于web的文档管理系统的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

基于Web的文档管理系统的设计与实现摘要随着信息处理技术和网络技术的发展,文档管理系统逐渐成为提高办公效率、节约成本的有效工具。本文详细论述了基于Web的文档管理系统的设计过程。系统用ASP.NET2005作开发平台,C#作编程语言,SQLServer2000作数据库管理系统,采用典型的四层架构设计模式,实现了文档管理、用户管理、角色管理、部门管理和短信管理等功能。论文组织如下:首先阐述了该系统的开发背景、意义;其次介绍了相关的开发工具及技术基础;接着对系统的需求进行了分析,并提出了具体的设计方案和数据库模型;然后展现了系统各功能模块的实现;最后对该软件进行了严格的测试。关键词:文档管理;整体设计;详细设计;功能模块 TheDesignandImplementationofDocumentManagementSystembasedonWebAbstractAlongwiththedevelopmentoftheinformationprocessingtechnologyandthenetworktechnology,documentmanagementsystemhasgraduallybecomeatoolimprovingofficeefficiency,reducingofficecost.ThispaperdiscussesindetailthedesignprocessoftheWeb-baseddocumentmanagementsystem.ThesystemusesASP.NET2005asthedevelopmentplatform,C#astheprogramminglanguage,SQLServer2000asthedatabasemanagementsystem,andadoptsthetypicalfour-tiersstructuredesignpattern,andincludesdocumentsmanagement,usersmanagement,rolesmanagement,departmentsmanagementandnotesmanagement,etc..Thepaperisorganizedasfollowing:Firstly,analyzesthebackgroundandsignificance;Secondly,introducesthedevelopmenttoolsandthefoundationofthetechnology;Thirdly,analysesthedemandofthesystem,givesaspecificdesignprojectandadatabasemodel;Thenshowstheimplementationofeverymodule.Finallygivesatestofthesystem.Keywords:Documentmanagement;Overalldesign;Detaileddesign;Functionalmodules 目录论文总页数:28页1引言11.1开发背景11.2研究现状11.3本课题研究的意义12相关理论基础12.1SQLsever2000简介12.2ASP.NET2005简介23需求分析及系统设计23.1需求分析23.2业务分析23.3数据库的设计与实现33.4文档管理系统ER图53.5部分存储过程的建立54系统设计74.1系统的整体设计与构思74.2模块的设定及模块的功能85各功能模块的实现105.1文档管理模块105.1.1文档上传105.1.2文档下载115.1.3浏览共享文档115.1.4删除文档115.1.5修改文档相关信息125.2用户登录模块125.3用户管理模块155.3.1添加用户155.3.2修改用户密码195.3.3修改用户信息195.3.4删除用户195.4角色管理模块195.4.1角色添加205.4.2修改角色20 5.4.3删除角色205.5部门管理模块205.5.1部门的添加205.5.2修改部门205.5.3删除部门215.6短信管理模块215.6.1浏览短信215.6.2写短信226系统测试226.1硬件环境226.2软件环境226.3主要模块测试226.3.1登录后的界面226.3.2用户管理界面236.3.3修改用户密码236.3.4角色管理236.3.5浏览单个文档246.3.6添加部门246.3.7浏览短信界面246.3.8出错信息显示25结论25参考文献26致谢27声明28 1引言1.1开发背景文档管理系统是信息技术在公司里管理中最典型的应用。传统文档管理模式是由人工去管理的,效率低下,无法适用于当前对文档管理的需求。文档管理系统基于网络技术,使办公室对文档的管理工作逐步信息化,从而形成由办公室人员与办公室设备共同构成服务于某种目标的人机文档处理系统,因而可以将跨地区的各个部门紧密连接在一起,从而达到对文档的实时共享,可以最大程度地发挥各级人员的工作效率。通过以上分析,得出结论:文档管理是一个过程,因为网络化的文档管理系统并不局限于办公室,具有广泛的应用范畴。从领导各个业务部门乃至单位的所有工作人员,几乎人人都可能成为使用文档管理系统的用户。随着社会的发展和信息技术的进步,全球信息化的直拨越来越明显,任何单位和企业不再是局限于某一个地区,都在自觉不自觉在参与到了全球化的竞争中。在这个全球化的竞争中,政府机关企事业单位对信息的掌握程序,信息获取是否及果,信息能否得到充分的利用、对信息的瓜刘否敏感准确,已越来越成为徇其竞争能力的最重要因素。综上所述,文档管理系统的前景是非常广阔的。1.2研究现状从世界范围来看,推进政府部门对文档管理的网络化、自动化、电子化,全面信息共享已是大势所趋。21世纪的国家政府应该能够不断正确地调整自己,他是一个勇于革新、在革新中能不断矫正方向的政府,并且将变得越来越精简、灵敏、和反应迅速、决策有力。只有这样,才能适应高速变化、高速发展的21世纪信息时代。1.3本课题研究的意义随着国家信息基础建设的深入,规划用网络构建文档管理系统以实现管理员对文档的管理,角色的管理,部门的管理和用户的管理,同时还包括对短信的管理,实现了对文档的上传,下载,浏览共享文档,删除文档,同时管理员还有权限对个人资料的修改。在此让管理员和用户都方便的实现了对文档的有效管理和其它相关信息的有效管理,为人们提供更广泛的、更便捷的信息及服务。2相关理论基础2.1SQLsever2000简介MicrosoftSQLServer2000数据库是一个多关系数据管理系统。它不仅是一个完整的数据库,而且具有强大的扩展性。它是Windows操作系统最为流行的数据库,比较适合小型、中型或大型应用程序的后台数据库。它也适用于电子商务,数据仓库和在线商业应用程序等。第27页共28页 系统从数据库的基础概念和应用领域中加强了对数据库的认识,目前使用的数据库一般都是关系数据库管理系统(RDBMS),它分别从关系、管理系统(MS)、数据库三个方面来定义。又从定义数据库的目标、数据库的逻辑设计、数据库的物理设计、数据库的物理实现、复查构建为数据库来构建数据库。2.2ASP.NET2005简介VisualStudio是一套完整的开发工具集,用于生成ASP.NETWeb应用程序、XMLWebServices、桌面应用程序和移动应用程序。VisualBasic、VisualC++、VisualC#和VisualJ#全都使用相同的集成开发环境(IDE),利用此IDE可以共享工具且有助于创建混合语言解决方案。另外,这些语言利用了.NETFramework的功能,通过此框架可使用简化ASPWeb应用程序和XMLWebServices开发的关键技术。VisualStudio2005与VisualStudio2003相比,新增了许多的功能,如开发环境,代码编辑操作,项目、解决方案和项,生成、测试和部署操作,VisualStudio2005调试器,VisualStudio2005中扩展性和自动化等一系列新增功能。3需求分析及系统设计3.1需求分析随着各个单位规模的不断扩大,单位内部对文档处理急剧增加。如果通过网络文档管理系统工作,就可以抛弃以入往传统的模式,发文件的一级一级传达的烦琐。普通用户只要上网就以查看上级发下来的文件和相互交流信息的目的,而通过短信管理并且又可以对单位内部进行信息的交流。因而根据公司对文档管理的需要,及公司内部通信的需要,系统中设计对文档的管理功能,用户管理功能,角色管理功能,部门管理功能以及短信管理功能。如图1所示:文档管理系统用户登录功能用户管理功能文档管理功能角色管理功能部门管理功能短信管理功能图1 系统功能图3.2业务分析1.第27页共28页 文档管理:文档管理是系统的核心,同样对不同用户身分对文档的可操作权限不同。对管理员而言,对上传文档(上传的文档可以分为共享文档和不共享文档)、下载共享文档、删除共享文档和管理员自己上传的文档、浏览共享文档、修改用户上传的共享文档的相关信息。对普通用户而言,浏览共享文档、上传文档(上传的文档可以分为共享和非共享)、下载共享文档和删除自己上传的文档。2.用户的登录功能:用户登录功能也是系统设计的一个中心环节,用户分为两种身份,不同身份可操作的权限不同。一种管理员身份,一种普通用户身份。3.用户管理:对不同用户身份登录,对用户管理功能的操作权限不同。若为管理员身份,能对用户的进行添加、删除、修改管理员个人的密码、修改管理员自身及其它用户的相关信息的操作。若为普通用户登录,就只能对用户自已的密码及个人信息进行修改。4.角色管理:对角色进行添加,修改,删除等操作,并且同用户管理相关联。在对角色进行操作时,用户管理中用户的角色信息将进行相应的操作。5.部门管理:对部门进行添加,修改,删除等操作。由于公司或企业内部有多个部门,多个部门又分别有附属的上级部门,部门之间也会涉及到对文档的处理。6.短信管理:短信管理用于公司内部员工之间的通信,可以方便快捷的收到公司内部人员发过来的信息。短信管理是公司内部人员使用的,用户向站内人员发送短信和接收站内人员发送过来的短信。3.3数据库的设计与实现由于文档管理系统的实际需要和设计,本系统需要的数据至少包括文档数据以及角色数据、用户数据、部门数据和短信数据。用户数据以及角色数据主要包括用户数据、角色数据、以及用户和角色关系数据,用户和文档之间的关系。文档数据主要包括文档的信息,如文档的标题,详细介绍,以及链接地址等。部门数据主要包括部门数据用所从属部门。1.用户表User用户表User用来存储用户数据,如用户ID、用户注册名称、真实姓名等。该表引用Role表的RoleID字段作为该表的外键引用字段。表的字段说明如表:表1User表字段名数据类型字段说明键引用备注UserIDInt用户IDPK主键(自动增1)UserNameVarchar用户注册名称RealNameVarchar用户真实姓名PasswordVarchar用户密码AddressVarchar用户地址第27页共28页 PhoneVarchar电话EmailVarchar电子邮件RoleIDint所属角色IDFK引用Role表的RoleID2.角色表Role角色表Role用来存储公司或企业的角色数据,如角色名称,角色ID等。表的字段说明如表2所示:表2Role表字段名数据类型字段说明键引用备注RoleIDint用户IDPK主键(自动增1)RoleNamevarchar角色名称3.文档表Document文档表Document用来存储上传的文档的数据,如文档ID,文档作者,文档来源,文档的上传时间等。表的字段说明如表所示:表3 Document表字段名数据类型字段说明键引用备注DocumentIDint文档IDPK主键(自动增1)DesnVarchar文档标题BodyText文档说明CreateDateDatetime创建日期UpdateDateDatetime更新日期LastViewDateDatetime最后浏览时间LastViewerVarchar最后浏览的用户ViewCountVarchar记录浏览人数AuthorInt作者FromSourceVarchar来源UserIDInt用户IDUrlVarchar链接地址RemarkText详细说明IsShareBit是否共享0:不共享1:共享4.部门表Department部门表Department用来存储公司或企业的部门数据,如部门ID、部门名称、部门电话、部门说明等。表的字段说明如下表:表4Department表字段名数据类型字段说明键引用备注DepartmentIDInt部门IDPK主键(自动增1)NameVarchar部门名称DesnVarchar部门的详细描述PhoneVarchar部门电话ParentIDInt部门所属上级部门第27页共28页 Remarktext备注5.短信表Message短信表Message用来存储站内短信数据,如短信ID,发送人,接收人,以及短信内容。表的字段絮说如下表5表5Message表字段名数据类型字段说明键引用备注MessageIDInt短信ID主键(自动增1)SenderVarchar发送人ReceiverVarchar接收人MsgTypeInt短信类型SendDateDatetime发送日期BodyText短信内容IsReadInt是否已读1:读0:未读Mobilevarchar电话3.4文档管理系统ER图图2表示用户与文档间的联系(“浏览”)是多对多的,即一个用户可以浏览多个文档,而每个文档也可以被多个用户浏览。mn用户浏览文档详细说明作者更新日期创建日期文档说明文档标题文档ID用户ID号用户名称真实姓名用户密码用户地址用户角色IDID用户电话电子邮件浏览人数来源图2用户和文档ER图用户上传文档详细说明作者更新日期创建日期文档说明文档标题文档ID用户ID号用户名称真实姓名用户密码用户地址用户角色IDID用户电话电子邮件浏览人数来源图2用户和文档ER图n3.5部分存储过程的建立对于网络应用程序而言,数据库是必不可少的,存储过程是数据库中很重要的一部分,它是存放在数据库中的一个脚本,和视图一样,它都是预编译的对象。它可以输入多个参数,可以修改数据库,也可以以一种非常宽松的方式返回结果集。1.添加用户的存储过程Pr_AddUser第27页共28页 该存储过程实现向User表中插入一个新的用户信息,它定义参数UserName,RealName,Password,Address,Phone,Email,RoleID。插入之前同时还定义了一个临时变量@RecordCount判断是否存在UserName的记录,如果存在则不再插入记录,否则将插入该记录。存在过程Pr_AddUser的程序代码如下:CREATEPROCEDUREPr_AddUser(@UserNamevarchar(200),@RealNamevarchar(200),@Passwordvarchar(255),@Addressvarchar(200),@Phonevarchar(200),@Emailvarchar(200),@RoleIDint)ASDeclare@RecordCountasintSET@RecordCount=(SELECTcount(*)FROM[User]WHEREUserName=@UserName)IF@RecordCount<1BEGININSERTINTO[User](UserName,RealName,Password,Address,Phone,Email,RoleID)VALUES(@UserName,@RealName,@Password,@Address,@Phone,@Email,@RoleID)RETURN@@IdentityEND2.删除用户存储过程Pr_DeleteUser该存储过程实现在User表中,删除一条记录,它定义了参数UserID,并删除与之相匹配的记录。存储过程Pr_DeleteUser的程序代码如下:CREATEPROCEDUREPr_DeleteUser( @UserIDint ) AS DELETE[User] WHERE UserID=@UserID3.修改用户信息的存储过程Pr_UpdateUser该存储过程在User表中,更新用户信息的操作,它定义了参数UserID,UserName,RealName,Address,Phone,Email,RoleID,然后更新User表中与其选中的ID号匹配的的用户信息。存储过程Pr_UpdateUser的程序代码如下:CREATEPROCEDUREPr_UpdateUser(@UserIDint,UserNamevarchar(200),@RealNamevarchar(200),@Addressvarchar(200),@Phonevarchar(200),@Emailvarchar(200),@RoleIDint)ASUPDATE[User]SETUserName=@UserName,RealName=@RealName,Address=@Address,Phone=@Phone,Email=@Email,RoleID=@RoleIDWHEREUserID=@UserID4.获得用户登录信息的存储过程Pr_GetUserLogin在该存储过程中,实现了获得用户的登录信息,它定义了参数UserName,Password。存储过程Pr_GetUserLogin的程序代码如下:CREATEPROCEDUREPr_GetUserLogin第27页共28页 (@UserNamevarchar(200),@Passwordvarchar(255)) AS SELECT UserID,RoleID FROM [User] WHERE UserName=@UserNameANDPassword=@Password5.获得单用户信息Pr_GetSingleUser在该存储过程中,主要实现获得所指定用户的信息,其中定义了参数UserID,存储过程Pr_GetSingleUser的程序代码如下:CREATEPROCEDUREPr_GetSingleUser(@UserIDint)ASSELECT*FROM[User]WHEREUserID=@UserID6.获得所有用户的信息Pr_GetUsers在该存储过程中,主要实现获得所有用户的信息,其存储过程程序代码如下:CREATEPROCEDUREPr_GetUsersASSELECT*FROM[User]4系统设计     4.1系统的整体设计与构思本系统采用ASP.NET应用程序的系统架构模式:数据库——数据库访问层——业务逻辑层——页面表示层。数据库是应用系统的基础,它保存系统中所有数据。数据访问层封闭对数据库的操作,如创建数据连接,打开数据库连接,执行存储过程和关闭数据连接。在本系统中,数据访问层由SQLHelper实现,这定义了一个类SQLHelper用来处理数据库的各种操作。业务逻辑层与应用系统的上层业务逻辑相关联,它调用数据访问层,同时也为上层页面表示层服务。业务逻辑层通过数据访问层实现对数据库的操作。如添加,修改和删除等,同时为应用系统的页面表示层服务提供访问数据库的接口或函数等。页面表示层实现应用系统的具体页面,系统页面是利用Dreamweaver里面的框架设计的。页面一般由WEB页面或控件组成,如系统登录页面Default.aspx、用户管理页面UserManage.aspx等。系统通用类SQLHelper,它是应用程序通过ADO.NET访问数据库的基础类,也是应用程序实现上层业务逻辑的基础。该类主要封装了创建访问数据库的一些对象或方法,如数据库连接对象等,以用执行数据库操作的对象或方法。如Command对象,还封装添加存储过程参数的方法。系统采用系统日志通用类,该类主要实现写入系统事件的日志功能。特别注意是应用程序必须对日志文件具有写权限,否则会导致应用程序出错。应用程序定义了几个工具通用类,它们在整个应用程序中将被应用很多次,因此先把它们集中在一起作为系统工具通用类。系统工具通用类由类SystemTools实现。该类定义函数ConvertDataReaderToDataTable(SqlDataReader第27页共28页 dataReader),此函数实现将DataReader对象转化为DataTable对象的功能。4.2模块的设定及模块的功能根据需求分析和性能分析,对系统各功能进行集中、分块,按照结构化程序设计的要求,为本系统实现了6个的功能,可以根据这些功能设计出系统中的功能模块。1.文档管理模块设计本系统中,文档管理模块中主要是实现对文档的上传,下载,删除,浏览共享文档和修改文档有些相关的信息等功能。而对于普通用户而言,主要实现对文档的上传,下载共享文档,删除个人发布的文档,浏览共享文档等功能。其设计如图3所示:文档管理删除文档下载文档上传文档浏览共享文档图3文档管理模块图修改文档相关信息2.用户登录模块用户分为管理员和普通用户两种身份,登录时的身份不同,可操作的权限就不同,这样比较符合公司或企业的人事管理。本系统设计了管理员登录和普通用户登录,其模块图分别如图4和图5所示。文档管理管理员登录角色管理部门管理用户管理短信管理图4管理员登录模块图普通用户登录用户管理文档管理短信管理图5普通用户登录模块第27页共28页 3.用户管理模块设计在本系统中,管理员能够添加用户,删除用户,修改用户密码和信息等操作,普通用户只能实现对个人有些信息的修改和个人密码的修改。分别如图6和图7所示。管理员管理添加用户删除用户修改用户密码修改用户信息图6管理员登录模块图普通用户管理修改用户密码修改用户信息图7管理员登录模块图4.角色管理模块设计本系统中,角色管理只针对管理员权限而言,主要实现对角色的添加,角色的修改和删除角色等功能。其关系图如图8所示:角色管理添加角色修改角色删除角色图8角色管理模块5.部门管理模块设计在本系统中,部门管理模块同角色管理模块一样,都只是针对管理员而言,只有管理员才有权限对部门进行添加、删除和修改。同时在添加部门时,还可以实现添加其附属的上级部门。其设计如图9所示:部门管理添加部门删除部门修改部门图9部门管理的流程图第27页共28页 6.短信管理模块设计短信管理浏览来自站内人发的短信写短信(给站内人)图10短信管理模块设计在本系统中,短信管理模块主要是针对本站内短信的浏览和写短信。短信只能发给存在于站内的用户,用户也只能浏览从站内发来的短信,其设计图如图10所示:5各功能模块的实现5.1文档管理模块文档管理页面DocumentManage.aspx,它的代码隐藏文件为DocumentManage.aspx.cs。它主要实现文档的上载,文档的下载,文档的浏览查看。针对不同的身份对文档的操作权限是不一样。若为管理员身份登录即可浏览、上载,下载,查看文档,修改文档的某些信息还可删除共享文档等一系列操作。而普通用户则只能上载、下载、浏览共享文档和修改自己上传的文档的有关信息。5.1.1文档上传文档的上载也即是添加文档,是由页面AddDocument.aspx,它的代码隐藏文件为AddDocument.aspx.cs。它可由DocumentManage.aspx页面中的[添加]按钮跳转到添加文档页面。上传文档是管理员和普通用户都能进行的操作的,当合法用户登录时,就可以实现文档的上传功能。Document表中,有一个字段IsShare,当用户在上传文档时,根据是否为共享文档来设定以字段的值。当上传成功后,把上传的信息写入Document表中,表中的DocumentID实现自动增1。同时文档上传还采用了一个函数,可产生随机数,使上传的文档不会因为名字重复而不能上传。实现上传文档名的惟一性。事件首先调用UploadAttachment()上载指定的文档,然后事件调用类Document中的函数AddDocument(stringsDesn,stringsBody,intnUserID,stringsAuthor,stringsFromSource,stringsUrl,stringsRemark,intIsShare)来实现添加文档的相关信息到数据库中。其中上传文档的流程图如图11所示第27页共28页 用户登录登录成功上传文档私人文档是否共享共享文档图11上传文档流程图结束开始YNYN5.1.2文档下载文档下载,是由Request.QueryString["DocUrl"]接收BrowserDocument.aspx页面中的DocUrl传来的文件名,根据链接地址,获取文件的路径后,实现对相应文件的下载。5.1.3浏览共享文档浏览共享文档,是当合法用户登录系统后,用户能够浏览到其它上传的共享文档。共享文档是根据用户上传是否设置了IsShare字段来确定的,当用户设置了此字段,就可以作为共享文档浏览。可以浏览共享文件的标题、最后浏览时间、最后浏览的人、浏览次数。ViewSharedDocument.aspx调用Page_Load(objectsender,EventArgse)初始化,该函数调用函数BindDocumentData()绑定文档列表。函数BindDocumentData()调用类Document中的函数GetSharedDocument()从数据库的文档表Document中获取数据。5.1.4删除文档删除文档页面是在页面DocumentManage.aspx中进行的,也只有管理员有这个权限删除所有共享和非共享文档,普通用户只有删除自己上载的文档,当普通用户试图去删除共享文档时,系统就弹出会出错提示。删除文档是根据用户的选择的文档的ID号来确定文档哪个文档。当文档被删除后,此文档的所有信息将从数据库中移出,删除文档的功能是由Document类中的函数DeleteDocument(intnDocumentID)实现的。第27页共28页 5.1.5修改文档相关信息修改文档的相关信息页面是在页面DocumentManage.aspx中进行的,也只有管理员有这个权限修改所有的文档,对普通用户而言,只有修改自己上载的文档的权限。修改文档的相关信息也是根据用户选择的文档的ID号来确定要修改的文档。当管理员或普通用户选中一个数据项并单击页面上的[]按钮时,由Request.Params["DocumentID"]来获取选中文档的ID。Document类中的函数UpdateDocument(intnDocumentID,stringsDesn,stringsBody,stringsAuthor,stringsFromSource,stringsRemark,intisShare)来实现修改用户相关信息的功能。最后把修改的文档信息再绑定,从而实现修改的功能。5.2用户登录模块用户登录是由页面Default.aspx实现,它的代码隐藏文件为Default.aspx.cs,该页面也是整个应用程序的起始页面,用户(包括管理员,普通用户)都是从该页面登录进入应用系统的。1.界面设计为了实现用户登录功能,应用程序在该页面添加了2个TextBox控件,1个ImageButton控件,2个验证控件,1个Lable控件,它们的名称分别为:UserName、Password、btnLogin、RFVUserName、RFVPassword和Message。UserName、Password分别用来输入用户名称和用户密码;控件ImageButton用来实现用户登录功能;RFVUserName、RFVPassword分别执行用户名称和用户密码的非空验证;控件Message显示用户登录操作的结果。页面Default.aspx的设计如图12所示:图12页面Default.aspx的设计页面2.页面初始化设置页面Default.aspx为应用程序的起始页面。出现如图13所示的初始界面:第27页共28页 图13应用程序的起始页面Default.aspx3.用户登录功能用户登录功能是调用类User中的函数GetUserLogin(stringsUserName,stringsPassword)从数据库的User表中获得用户的UserID和RoleID值。利用UserID和RoleID一起来确定用户登录是否成功以及用户的身份。在输入用户名和密码后,先把密码加密成密文后,再根据用户名和密文去搜索数据库,如果搜索出搂的UserID值为空,则说明该用户为非法用户,否则添加用户的用户信息(如UserID)到全局变量Session中。最后再根据用户的RoleID值来确定用户登录时的身份,若RoleID=1,表示管理员身份,若RoleID=2表示普通员工身份,最后根据用户的身份分别跳转到应用系统操作主页面。事件LoginBtn_Click(objectsender,EventArgse)的程序代码如下:protectedvoidLoginBtn_Click(objectsender,EventArgse){///如果页面输入合法if(Page.IsValid==true){StringuserId="";///定义类并获取用户的登陆信息OfficeAutomatization.Useruser=newOfficeAutomatization.User();SqlDataReaderrecu=user.GetUserLogin(UserName.Text.Trim(),OfficeAutomatization.User.Encrypt(Password.Text.Trim()));///判断用户是否合法if(recu.Read()){userId=recu["UserID"].ToString();}recu.Close();第27页共28页 ///验证用户合法性,读取角色信息,并跳转到系统平台if((userId!=null)&&(userId!="")){Session["UserID"]=userId;if(user.IsAuthorityAdmin(userId)==1){Session["Role"]="admin";    //如果用户身份为管理员,则跳转到AdminIndex.aspx页面Response.Redirect("~/DesktopModules/AdminIndex.aspx");}else{Session["Role"]="other";  //如果用户身份为其它用户,则跳转到OtherIndex.aspx页Response.Redirect("~/DesktopModules/OtherIndex.aspx");}}else{///显示错误信息Message.Text="你输入的用户名称或者密码有误,请重新输入!";}}}在登录时后调用函数GetUserLogin(stringsUserName,stringsPassword),此函数是实现从数据库中获取用户的登录信息,它调用数据库通用类SQLHelper的RunProc()获取输入参数dr的值,并返回dr对象。函数GetUserLogin(stringsUserName,stringsPassword)的程序代码如下:PublicSqlDataReaderGetUserLogin(stringsUserName,stringsPassword){///定义类SQLHelperSQLHelper.SQLHelpersqlHelper=newSQLHelper.SQLHelper();///定义保存从数据库获取的结果的DataReaderSqlDataReaderdr=null;第27页共28页 ///创建访问数据库的参数SqlParameter[]paramList={sqlHelper.CreateInParam("@UserName",SqlDbType.VarChar,200,sUserName),sqlHelper.CreateInParam("@Password",SqlDbType.VarChar,255,sPassword)};try{///执行存储过程sqlHelper.RunProc("Pr_GetUserLogin",paramList,outdr);}catch(Exceptionex){///抛出执行数据库异常SystemError.CreateErrorLog(ex.Message);thrownewException(ex.Message,ex);}return(dr);///返回从数据库获取的结果}5.3用户管理模块用户管理功能主要实现用户的删除、用户的添加、用户有些信息的修改、用户密码的修改等功能。它由页面UserManage.aspx实现,它的代码隐藏文件为UserManage.aspx.cs。5.3.1添加用户在本系统中,新用户注册不是由用户自己实现,而是由系统管理员添加的,即相当于公司或企业中增加新员工的功能。用户注册由页面AddUser.aspx实现,它的代码隐藏文件为AddUser.aspx.cs。1.页面初始化页面AddUser.aspx调用函数Page_Load(objectsender,EventArgse)初始化,该函数调用函数BindRoleData()绑定角色的数据,并根据角色列表控件判断是否可以进行新用户注册。函数BindRoleData()从数据角色表Role中获取数据,并设置角色列表控件RoleList的Text属性值为RoleName、Value属性值为RoleID,最后绑定列表控件的数据。函数Page_Load(objectsender,EventArgse)和BindRoleData()的程序代码如下:protectedvoidPage_Load(objectsender,EventArgse)第27页共28页 {if(!Page.IsPostBack){if(Session[“Role”].Tostring()==”other”){Response.Write("");return;}///绑定控件的数据BindRoleData();}///设置按钮的可用性AddBtn.Enabled=RoleList.Items.Count>0?true:false;}privatevoidBindRoleData(){///获取数据源OfficeAutomatization.Rolerole=newRole();SqlDataReaderrecr=role.GetRoles();///设定控件的数据源,Text域属性、value域属性RoleList.DataSource=recr;RoleList.DataTextField="RoleName";RoleList.DataValueField="RoleID";///绑定控件的数据RoleList.DataBind();///关闭数据源和数据库的链接recr.Close();}应用程序运行后,查看页面AddUser.aspx,它的初始页面如图14,此时角色列表已经显示职位数据,当前选择的是职位是超级管理员。第27页共28页 图14页面AddUser.aspx的初始页面2.添加用户信息图15添加用户流程图Y用户登录N登录成功?管理员?Y添加用户YRoleID=1?RoleID=2其它普通用户RoleID=1添加角色为管理员开始NN结束添加用户时,涉及到添加用户的角色功能,用户的角色是绑定角色Role表来实现的。在角色表中管理员的RoleID值设置为1,其它用户都随着管理员对角色的添加,RoleID值会自动增1。因而当管理员在添加用户选择一个角色时,首先判断选中的角色的ID值,如果为1,就将角色的RoleID设置为1代表添加的是管理员,若不为1,都把RoleID设置为2代表添加的是其它用户。其添加的流程图如图15所示:第27页共28页 它调用User类中的AddUser(stringsUserName,stringsRealName,stringsPassword,stringsAddress,stringsPhone,stringsEmail,intnRoleID)添加新用户注册信息到User表中,如果用户注册信息输入有误,如两次输入密码不一致,消息控件显示相应的提示信息。事件AddBtn_Click(objectsender,EventArgse)的程序代码如下:protectedvoidAddBtn_Click(objectsender,EventArgse){///如果页面输入内容合法if(Page.IsValid==true){///定义类UserOfficeAutomatization.Useruser=newUser();try{intRoleID=0;if(int.Parse(this.RoleList.SelectedValue)!=1){RoleID=2;}else{RoleID=1;}///添加新用户user.AddUser(UserName.Text.Trim(),RealName.Text.Trim(),OfficeAutomatization.User.Encrypt(Password.Text.Trim()),Address.Text.Trim(),Phone.Text.Trim(),Email.Text.Trim(),RoleID);///显示操作结果信息Response.Write("");}catch(Exceptionex){///显示添加操作中的失败、错误信息第27页共28页 Response.Redirect("~/DesktopModules/ErrorPage.aspx?ErrorUrl="+ASPNET2System.RedirectErrorUrl(Request.RawUrl)+"&ErrorMessage="+ex.Message.Replace(" ",""));}}}5.3.2修改用户密码用户修改密码功能由页面UserUpdatePwd.aspx实现,UserUpdatePwd.aspx.cs为它的代码隐藏文件。首先调用User类中的函数GetSingleUser(intnUserID)和Encrypt(stringpassword)判断用户输入的旧密码是否正确,只有旧密码正确时,才能进行新密码的修改操作,否则中止该事件。其中密码修改功能是由类User类中的函数UpdateUserPwd(intnUserID,stringsPassword)实现的。在此页面,普通用户只有修改个人密码的功能,一般的管理员也只能修改自己的密码,除非管理员有其它用户的旧密码信息时,他也可以修改其它用户的密码信息。5.3.3修改用户信息修改用户信息功能由页面UpdateUser.aspx实现,UpdateUser.aspx.cs为它的隐藏代码文件。1.页面初始化页面UpdateUser.aspx调用函数Page_Load(objectsender,EventArgse)初始化,该函数调用函数BindRoleData()绑定角色的数据和函数BindUserData()绑定用户的数据,并根据角色列表控件和用户列表控件实现修改用户信息的功能。函数BindRoleData()从数据角色表Role中获取数据,并设置角色列表控件RoleList的Text属性值为RoleName、Value属性值为RoleID,最后绑定列表控件的数据。函数BindUserData()从数据用户表User中获取数据。2.修改用户信息调用User类中的函数UpdateUser(intnUserID,stringsUserName,stringsRealName,stringsAddress,stringsPhone,stringsEmail,intnRoleID),当为管理员身份登录时,他可以修改用户的角色信息,当为普通用户登录时,此时角色列表控件不可用,用户只能修改其它相关信息。5.3.4删除用户删除用户信息功能是包含在用户管理页面UserManage.aspx中,它的隐藏代码文件为UserManage.aspx.cs。删除用户是根据每人用户的性的ID号来确定删除哪个用户,调用User类中的函数DeleteUser(intnUserID)实现来删除功能的。第27页共28页 5.4角色管理模块角色管理由页面RoleManage.aspx实现,它的代码隐藏文件为RoleManage.aspx.cs。角色管理主要实现管理员对系统中角色的添加、修改、删除等功能。在页面加载时,会调用BindRoleData()函数绑定角色的数据,并根据角色列表控件来绑定系统中已经存在的角色。函数BindRoleData()从数据角色表Role中获取数据,并设置角色列表控件RoleList的Text属性值为RoleName、Value属性值为RoleID,最后绑定列表控件的数据。5.4.1角色添加当添加角色信息输入合法时,单击页面中的[添加]按钮实现添加角色的功能,为了防止不添加相同的角色时,定义了一个函数GetRoleNamebyUser(stringRoleName)来向数据库中查询是否有同名的角色存在,若存在而不添加新角色。添加角色该事件调用Role类中的AddRole(stringsRoleName)中的函数实现添加角色的功能。5.4.2修改角色修改角色是当管理员选中某一角色时,利用选中的角色的RoleID值来确定要操作的角色。然后调用Role类中的函数UpdateRole(intnRoleID,stringsRoleName)实现修改角色信息的功能。5.4.3删除角色删除角色也是根据角色的RoleID值来确定要删除的角色,然后再调用Role类中的函数DeleteRole(intnRoleID)实现角色的删除功能。5.5部门管理模块部门管理是由页面DepartmentManage.aspx来实现的,它的代码隐藏文件为DepartmentManage.aspx.cs。部门管理主要实现管理员对系统中部门进行的添加、修改、删除等功能。在页面加载时,会调用BindDepartmentData()函数绑定部门的数据,并根据部门列表控件来绑定部门数据的功能。函数BindDepartmentData()从数据部门表Department中获取数据,并设置部门列表控件DepartmentList的Text属性值为Name、Value属性值为DepartmentID,最后绑定部门列表控件的数据。5.5.1部门的添加部门的添加是由管理员来进行的,当管理员输入信息合法时,单击页面上的[添加]按钮,即可触发事件AddBtn_Click(objectsender,System.EventArgse)它调用Department类中的AddDepartment(stringsName,stringsDesn,stringsPhone,intnParentID,stringsRemark)实现添加部门的功能,并在此可实现添加其附属的上级部门的功能。最后将添加部门的相关信息写入到数据库中。第27页共28页 5.5.2修改部门1.页面初始化页面UpdateDepartment.aspx调用函数Page_Load(objectsender,EventArgse)初始化,该函数调用函数BindDepartmentData()绑定部门信息的数据和函数BindDepartmentData()绑定部门信息的数据,并根据部门列表控件绑定部门信息从而实现修改部门的功能。函数BindDepartmentData()从数据部门表Department中获取数据,并设置部门列表控件DepartmentList的Text属性值为Name、Value属性值为DepartmentID,最后绑定列表控件的数据。函数BindDepartmentData()从数据部门表Department中获取数据。2.修改部门修改部门同修改角色一样,都是由管理员操作的。在修改角色时,它调用Department类中的函数UpdateDepartment(intnDepartmentID,stringsName,stringsDesn,stringsPhone,intnParentID,stringsRemark)实现修改部门信息的功能。5.5.3删除部门调用Department类中的函数DeleteDepartment(intnDepartmentID)实现角色的删除功能。5.6短信管理模块短信管理页面Msgview.aspx,它的隐藏代码文件为Msgview.aspx.cs.它主要实现浏览站内人员发来的所有短信,发送所有短信的详细信息,写短信。5.6.1浏览短信直接点击页面上的短信管理就可进入Msgview.aspx页面从而对短信进行浏览,在此可以实现对所有站内人员发过来的短信进行浏览,也可以选择单条短信,查看单条短信的详细信息,同时单击页面上的”写短信”即可进入SendMsg.aspx页面在,实现向站内人员发送短信。1.页面初始化页面MsgView.aspx调用函数Page_Load(objectsender,System.EventArgse)初始化,该函数首先判断用户是否登录,如果用户没有登录,则中止该函数,如果用户已经登录,则调用函数BindMsgData(intnUserID)从数据库获取指定用户ID的所有短信,最后使用数据网格控件MsgList显示该用户的所有短信。2.设置短信为“已读”首先选中控件MsgList中[选择]列中的一个或多个复选框,然后单击[已阅]按钮,触发事件Read_Click(objectsender,System.EventArgese),该事件把选择的短信的[是否阅读]属性设置为“已读“。3.设置短信的“全选“和”取消“第27页共28页 单击页面ViewMsg.aspx中的[全选]按钮和[取消]按钮分别实现对控件MsgList中的所有短信的选择和取消选择功能。“全选“功能和”取消“功能分别由脚本函数SelectAll()和UnSelectAll()实现,它们的程序代码存放在MsgView.aspx中。函数SelectAll()和UnSelectAll()首先找到换件类型为checkbox的所有的控件,然后设置各个控件的属性checked的值。5.6.2写短信发送短信页面SendMsg.aspx它的隐藏代码文件为SendMsg.aspx.cs。单击页面中的[发送]按钮触发事件Send_Click(objectsender.System.EventArgse),该事件实现发送短信的功能。它首先调用函数GetSenderByUser(intnUserID)根据用户ID获取发送者的名称,然后调用类Message中的函数SendMsg(StringsSender,StringsReceiver,stringsBody,stringsMobile)实现发送短信功能。如果发送成功,则函数SendMsg()返回短信ID的值大于0,否则发送短信失败,事件最后给出发送短信是否成功的提示对话框。6系统测试6.1硬件环境计算机一台,足够硬盘空间。6.2软件环境VisualStudio2005,MicrosoftSQLServer2000。6.3主要模块测试6.3.1登录后的界面登录后的页面分别有两个不同的界面,由于操作的权限不同,把登录后的界面分为管理员界面和普通用户的界面,当为管理员登录时,登录后的界面就如图14所示,若这其它用户登录时,登录后的界面就如图16所示。图16管理员界面第27页共28页 图17普通用户界面6.3.2用户管理界面通过用户管理界面,可分别跳转到添加用户界面、修改用户信息界面、删除用户。图18 添加用户信息成功6.3.3修改用户密码当用户登录后,进入修改用户密码页面,用户此时输入用户的旧密码和用户的新密码,待用户的旧密码输入无误,新密码和确认新密码相同时,即可实现对用户密码的修改。图19修改用户密码界面6.3.4角色管理角色管理页面是只有管理员身份登录才能看到的界面,在此它可选中一个数据项,对数据项的相关信息进行更改或对数据项进行删除操作,也可添加新的角色信息。第27页共28页 图20 角色管理界面6.3.5浏览单个文档浏览单个文档界面,是管理员和普通用户都可操作的界面如图21所示:图21 浏览单个文档操作界面6.3.6添加部门添加部门页面,同角色管理一样,它只能由管理员进行操作的,该页面可以设置添加的部门名称、部门的详细描述用部门的联系电话等相关内容,如下图22所示:图22添加部门信息6.3.7浏览短信界面用户登录后,即可查询站内人员发送来的短信,如图23所示:第27页共28页 图23浏览短信6.3.8出错信息显示当运行页面时,待机时间过长时,就会出现如图24所示的错误,只要重新登录即可解决此问题,这也是出于安全角色的考虑,一般的时间是20分钟。图24出错信息显示图结论这次毕业设计实现了一个基于Web的文档管理系统。系统用ASP.NET2005作开发平台,C#作编程语言,SQLServer2000作数据库管理系统,采用典型的四层架构设计模式,实现了文档管理、用户管理、角色管理、部门管理和短信管理等功能。当然,在实际运用中该设计还略显稚嫩,还有一些的功能有待完善,在以后类似的系统可以加些公文的流转和用户考勤及其设置方面的功能,从而使系统更加完善。通过完成这次毕业设计,我经历了一个完整的第27页共28页 软件研发过程,熟练掌握了相关开发工具的使用,文档管理系统对办公室带来的方便,从而也更强化自已的逻辑思维能力。总之,本次毕业设计的经历不但让我对程序的完整开发过程有了深刻的了解,更是借此机会让我对自己有了进一步的认识。我将会在以后的学习中,更加努力的去提高自己各方面的能力,激励自己不断向着自己的目标而奋斗。参考文献[1]郑耀东.ASP.NET网络数据库开发实例精解[M].北京:清华大学出版社,2006。[2]陈完斌,孙永强,邸艳辉.VisualC#.NET入门与提高[M].北京:清华大学出版社,2002。[3]王波,桑军,谭克艰,蔡海尼.办公自动化系统设计[M].北京:人民邮电出版社,2003。[4]马嘉,张立科.中文版FireworksMX网页制作培训教程[M].北京:人民邮电出版社,2003。[5]吉根林.ASP.NET程序设计教程[M].北京:电子工业出版社,2004。[6]方睿,刁仁宏,吴四九.网络数据库原理及应用[M].成都:四川大学出版社,2005。[7]赵杰,李涛,王国业.毕业设计指导及案例剖析——数据库应用方向[M].北京:清华大学出版社,2005。第27页共28页 致谢本文是在**老师的热情关心和指导下完成的,他渊博的知识和严谨的治学作风使我受益匪浅,对顺利完成本课题起到了极大的作用。在此向他表示我最衷心的感谢!在论文完成过程中,本人还得到了**老师和**同学的热心帮助,本人向他们表示深深的谢意!最后向在百忙之中评审本文的各位专家、老师表示衷心的感谢!第27页共28页

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭