2.1.4 系统性能需求分析
整个系统规模比较大,信息量大,因此对系统的性能提出了较高的要求。这个系统的性能包括:
(1) 可靠性。系统对数据需要有较高的判断能力,在输入数据不合理的情况下能给出错误警告,以避免数据库的数据发生混乱。
(2) 易维护性。随着技术和业务的发展,系统维护需要简单、易行。
(3) 安全性。该系统中数据库起着非常重要的作用,不能随意存取或改动,因此必须对数据库的存取和改动进行严格的控制,对系统数据进行有效的保护,防止对数据库的非法操作,防止计算机病毒对数据的破坏,定期对数据库进行备份。
(4) 可扩展性。该系统是根据目前条件进行设计的,随着周围环境的改善,该系统也应该很容易地被扩展。
(5) 易操作性。本系统是企业人力资源管理系统,直接供企业用户使用,而非计算机专业人员。本系统应该适用于不同水平的使用者,包括企业各级人员,同时系统不应太复杂和烦琐,因此要求系统的操作尽可能简单易行。
2.2 开发环境介绍
2.2.1 ASP介绍
本系统采用在Windows XP Professional下基于IIS5.1下的ASP + Access编写。
ASP (Active Server Pages) 是 Microsoft 推出的一种服务器端命令执行环境,ASP内含于IIS中,通过ASP可以轻松地结合 HTML Web 页面、脚本(Script)程序和 ActiveX 组件建立或执行动态、交互式 Web 服务器应用程序。你不需要写入复杂的程序,就可以开发站点应用程序。ASP 让你只要学习使用 VBScript 或 JScript 等简单的 script 语言,结合 HTML 码、ASP 对象和内置或自行制作的 ActiveX Server component(ActiveX 服务器组件),数十条简单的 Script 程序码,即可快速地开发出各种于站点服务器执行的站点应用程序。
选择ASP编程是因为它有着如下的优点:
(1) ASP的特点
① 易用性
ASP使用VBScript 和JavaScript等简单易学的脚本语言,结合HTML代码,即可快速地开发网站的应用程序。而且无须编译即可在服务器端直接执行,使用普通的记事本程序即可实际应用程序。
② 兼容性
ASP可与任何ActiveX语言兼容,特别是通过plug-in方式,可以使用第三方提供的其它脚本语言。
③ 安全性
ASP的源程序不会被传递到客户浏览器,避免他人剽窃或者修改源程序,从而提高了程序的安全性。
④ 可扩充性
ASP具有无限可扩充性,可以使用Visual Basic、Java 、Visual C++和COBOL等编程语言编写所需要的服务器控件。
(2) ASP的6大内部对象
ASP提供了6个功能强大的内部对象,每个对象具有各自的属性(Property)、方法(Method),有的还拥有数据集合(Collection)与事件(Event),它们共同完成Web中的一些重要工作。这6个对象及其功能描述如表2.2所示。
表2.2 内部对象及其功能
对象名称 |
功能描述 |
Request |
从客户端取得信息 |
Response |
将信息送给客户端 |
Server |
提供一些Web服务器工具 |
Session |
储存在一个Session内的用户信息,该信息仅可被该用户访问 |
Application |
在一个ASP-Application中让不同的客户端共享信息 |
ObjectContext |
配合Microsoft Transaction服务器进行分布式事务处理 |
(3) ASP访问数据库的原理
ASP是服务器端的脚本执行环境,可用来产生和执行动态的高性能的WEB服务器程序。
当用户使用浏览器请求ASP主页时,WEB服务器响应,调用ASP引擎来执行ASP文件,并解释其中的脚本语言(JScript 或VBScript),通过ODBC连接数据库,由数据库访问组件ADO(ActiveX Data Objects)完成数据库操作,最后ASP生成包含有资料查询结果的HTML主页返回客户端显示。
由于ASP在服务器端运行,运行结果以HTML主页形式返回用户浏览器,因而ASP源程序不会泄密,增加了系统的安全保密性。此外,ASP是面向对象的脚本环境,用户可自行增加ActiveX组件来扩充其功能,拓展应用范围。
(4) ASP页面的结构
ASP的程序代码简单、通用,文件名由.asp结尾,ASP文件通常由四部分构成:
1) 标准的HTML标记:所有的HTML标记均可使用。
2) ASP语法命令:位于<% %> 标签内的ASP代码。
3) 服务器端的include语句:可用#include语句调入其它ASP代码,增强了编程的灵活性。
4) 脚本语言:ASP自带JScript和VBScript两种脚本语言,增加了ASP的编程功能。
2.2.2 Access介绍
Access是一个前后台结合的“软件”。也就是说Access既拥有用户界面;也拥有逻辑、流程处理,即VBA语言;又可以存储数据,即在“表”中存储数据。而所有这些都存储在一个 MDB 格式的文件中(当然,也可以是 MDE 等格式)。因此ACCESS具有快速开发的优点。Access 2003是微软公司推出的Office 2003组件之一,与低版本的Access数据管理系统相比,Access 2003着重加强了在因特网上进行数据交流的功能,同时它还继承了以往界面清晰,操作简单等诸多优点。
Access数据库包含7种对象:表、查询、窗体、报表、Web页、宏和模块。与其它的数据库系统不同的是:Access的每一个对象都不能独立保存,而只能作为Access中的一部分。Access本身即可自动完成对各种文件的管理工作。
Access2003就是关系数据库开发工具,数据库能汇集各种信息以供查询、存储和检索。Access 的优点在于它能使用数据表示图或自定义窗体收集信息。数据表示图提供了一种类似于 Excel 的电子表格,可以使数据库一目了然。
Microsoft Access 2003的功能:
(1) 数据库窗口
Access2003的“数据库”窗口提供了下列用于查看和处理数据库对象的功能。
使用对象栏:在“对象”栏中可查看数据库对象,新的“对象”栏的纵向排列方式更易于使用。
使用新的对象快捷方式:在数据库窗口中,使用向导可快速创建新的数据库对象,
或是在设计视图中打开一个新的数据库对象。
自定义在数据库窗口中选择及打开对象的方式:选择“工具” “选项”
“视图” “数据库窗口中的鼠标动作”,选中“单击打开”单选钮,则可以更改默认的“双击打开”方式。
(2) 数据使用和数据库设计
自动更正字段重命名产生的错误:“名称自动更正”功能可自动更正在为窗体、报表、表、查询、字段、文本框或其他控件重命名时产生的错误。
打印关系:在Access数据库中打印出现在“关系”窗口中的关系的报表。
通过键盘处理关系:通过键盘创建、编辑及删除关系和连接。
使用ActiveX数据对象(ADO):通过任何OLE DB提供者,使用ActiveX数据对象(ADO)访问和处理数据库服务器中的数据。
4 程序设计
系统用Microsoft Access设计数据,以Dreamweaver MX 2004为开发平台,通过Asp实现网页及动态操作,其中运用了Java Script和VB Script脚本,基本实现其功能。以下介绍本人完成模块的主要程序设计。
4.1 登陆系统模块
当我们建立了一个完整的系统时,尤其是运用于一个企业管理的系统,对于进入每个系统的人员我们都要对他进行身份验证,因为该系统是保护企业内部资料以及每个员工基本信息的,我们当然不希望有任何人进入该系统进行恶意的破坏,对系统中的数据进行修改,维护该系统的系统管理员也不希望有任何麻烦,所以对系统进行安全保护显的很重要,无论对于谁,系统的安全问题是首要的。
为了解决这个问题,有一个简单、实用,但是老套的方法,就是口令加密。在此我们使用ASP技术对口令加密。简单的讲,就是将用户提供的口令加密之后,然后让它和存放于系统中的数据比较,如果相同,则通过验证,否则该用户就不允许进入。
在ASP中,只能使用外部的对象来进行加密。在本系统中,我设计用户名,密码等信息存储在数据库里,当用户输入用户名和密码的时候系统会使用conn.asp来和数据库进行连接查询,如果相同,则通过验证进入系统。也可以存储在cookies中,因为查询存在cookies中的数据使用的时间较少,不用重复查询数据库中数据,这样减轻了程序冗余的压力。
模块功能:用户身份认证
实现页面:default.asp
数据定义:username,password
关键代码:
1) 数据库连接ADO
set conn=opendb("oabusy","conn","accessdsn")
set rs=server.createobject("adodb.recordset")
2) 数据库查询
sql="select * from userinf where username=" & sqlstr(username) & " and password=" & sqlstr(password) & " and forbid='no'"
4.2 工作计划模块
该模块主要是实现安排个人工作计划和增加员工工作任务。当系统管理员增加工作任务时,首先在数据库userinf中查找该员工的用户名,存在则增加工作任务,包括用户名、工作任务的日期、工作任务的标题等。
模块功能:个人工作计划和增加员工工作任务
实现页面:addworkrep.asp
数据定义:title,recdate,username,superior,remark,imp,finished
关键代码:
1) 数据库连接ADO
set conn=opendb("oabusy","conn","accessdsn")
set rs=server.createobject("adodb.recordset")
2) 数据库查询
sql="select name from userinf where username=" & sqlstr(username)
sql = "Insert Into workrep (username,recdate,title,remark,superior) Values( "
sql = sql & SqlStr(username) & ", "
sql = sql & "#" & recdate & "#" & ", "
sql = sql & SqlStr(title) & ", "
sql = sql & SqlStr(remark) & ", "
sql = sql & SqlStr(superior) & ")"
4.3通告管理模块
系统管理员发布通告时,在数据库newnotice中插入发送者用户名、新通告的标题和描述事件等,当删除通告的时候,取得该通告发布的时间,然后在数据库中删除该通告的所有内容。
通告管理模块包括发布通告、管理通告和浏览通告3个子模块。
(1) 子模块1
模块功能:发布通告
实现页面:broadcast_notice.asp
数据定义:sendusername,title,content,noticedate,readuserid,sort
关键代码:
1) 数据库连接ADO
set conn=opendb("oabusy","conn","accessdsn")
2) 数据库查询
sql = "Insert Into newnotice (sendusername,title,content) Values( "
sql=sql & SqlStr(oabusyusername) & ","
sql = sql & SqlStr(title) & ", "
sql = sql & SqlStr(content) & ")"
(2) 子模块2
模块功能:管理通告
实现页面:manage_notice.asp
数据定义:sendusername,title,content,noticedate,readuserid,sort
关键代码:
1) 数据库连接ADO
set conn=opendb("oabusy","conn","accessdsn")
set rs=Server.CreateObject("ADODB.recordset")
2) 数据库查询
'删除数据库中的记录
sql = "delete * from newnotice where " & condition
sql="select * from newnotice order by id desc"
(3) 子模块3
模块功能:浏览通告
实现页面:looknotice.asp
数据定义:sendusername,title,content,noticedate,readuserid,sort
关键代码:
1) 数据库连接ADO
set conn=opendb("oabusy","conn","accessdsn")
set rs=Server.CreateObject("ADODB.recordset")
2) 数据库查询
sql="select * from newnotice order by id desc"
4.4 公文管理模块
公文管理模块包括管理公文、发送公文、已发公文和已收公文。主要是传递企业内部部门之间的一些公文。
模块功能:管理公文、发送公文、已发公文和已收公文