办公自动化系统毕业设计论文_第1页
办公自动化系统毕业设计论文_第2页
办公自动化系统毕业设计论文_第3页
办公自动化系统毕业设计论文_第4页
办公自动化系统毕业设计论文_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

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

文档简介

前言办公自动化系统(OA)是典型的管理信息系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。因此本人结合某小型私人企业的要求,对SQL语言原理、Asp、VBScript技术进行了较深入的学习和应用,主要完成对OA的需求分析、功能模块划分、数据库模式分析,并由此设计了数据库结构和应用程序。系统运行结果证明,本文所设计的OA系统可以满足企业内部管理者、普通员工两方面的需求。第一章绪论,对系统进行了可行性分析,并介绍了所要用到的语言、工具及开发系统所要用到的环境。第二章需求分析,对研究的意义、国内外的现状及存在的问题进行了分析,对系统的研究目标和内容也进行了概括,列出了系统主要功能和结构图。第三章数据库设计,按照数据库设计理论一步一步地给出了系统需求说明书、数据表、设计模式,利用Asp建立了数据库。第四章详细设计与实现,对系统进行了详细的界面设计和编码,完成每个模块的功能。第五章系统测试,列出了测试环境及数据库的连接与转换。设计充分利用Asp,VBScript的强大力量,提高了编程效率。此次毕业设计是对我四年来所学专业知识的一个总结。它使我提高了自身解决实际问题的能力。但由于本人知识水有限,系统设计中还存在着很多不足,请各位领导批评指正,以便我今后改进。此外,该系统能够顺利的完成离不开各位老师对我的帮助,在此深表感谢。1绪论一个良好的办公自动化系统(OA),应该以计划为核心、以控制为手段,实现“以人为本”、“动态控制”、“透明延伸”的办公管理思想。那么OA系统如何与管理思想结合呢?主要体现在“工作管理”、“沟通管理”、“管理创新”和“权限机制管理”四个方面。目前大部分OA系统是以办公事务的计算机自动化管理为基础的,基本内容包括文件处理、事务处理、文字处理、日程处理、邮件收发、收文发文、电子报表、会议管理等,实现了日常工作方方面面的管理。本程序着重从信息管理和规范日常工作两方面着手,解决了日常办公中的难点,提高了办公人员的工作效率,也体现了管理工作的系统化,透明性。本程序有很好的适用性和工作监督作用。1.1可行性分析可行性分析的任务是从经济上、技术上、操作上、法律上分析要解决的问题是否存在可行的解决方案。经济上可行性:现在,计算机的价格已经十分低廉,性能却有了长足的进步。而本系统的开发,为公司的工作效率带来了一个质的飞跃,主要表现有以下几个方面:第一,本系统的运行可以代替人工进行许多繁杂的劳动;第二,本系统的运行可以节省许多资源;第三,本系统的运行可以提高公司的工作效率;第四,本系统可以使敏感文档更加安全。所以,本系统在经济上是可行的。技术上可行性:本系统的开发是使用asp作为网站开发的开发环境,它作为一种现代的编程语言,提供完善的指令控制语句、类与对象的支持及丰富的数据类型,给开发高性能系统提供的保障为开发满足客户要求的系统,保证了代码的模块化要求,而代码模块化的提高,非常有利于以后对新系统的扩展与修改。综上所述,本系统的设计与开发在技术上和硬件设备上的条件都是满足的,因此,它在技术上是可行的。运行上可行性:本系统为一个小型的公司办公化系统,所耗费的资源非常的小,一般的电脑在硬件还是软件都能够满足条件,因此,本系统在运行上是可行的。法律可行性:本系统纯为毕业设计,在开发过程中没有涉及合同、责任等与法律相抵触的方面。因此,本系统在法律上是可行的。1.2开发工具及开发环境概述1.2.1ASP语言和VBScriptASP(ActiveServerPages动态网页)是微软公司推出的一种用以取代CGI(CommonGatewayInterface通用网关接口)的技术。目前,Internet上的许多基于Windows平台的Web站点已开始应用ASP来替换CGI。简单地讲,ASP是一个位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式Web服务器应用程序,如交互式动态网页,包括使用HTML表单收集和处理信息,上传与下载等等。通常情况下,用户通过浏览器看到的网页大多是静态的,目前Internet上的许多站点,仍然提供“静态”(static)的主页内容。所谓“静态”,指的就是站点的主页内容是“固定不变”的。当浏览器通过Internet的HTTP(HypertextTransportProtocol)协议,向站点服务器(WebServer)要求提供主页的内容时,站点服务器收到要求后,就传送原已设计好的静态的HTML的文件数据给浏览器。一个“静态”的站点,若要更新主页的内容,必须手动的来更新其HTML的文件数据。而随着Web应用的发展,用户希望能够看到根据要求而动态生成的主页,例如响应用户查询数据库的要求、生成报表等。当在浏览器上填好表单(form)的输入数据,以提供HTTP要求时,可以在站点服务器中执行的应用程序,而不只是一个HTML文件。站点服务器收到要求执行的应用程序,分析表单(form)的输入数据,将执行的结果以HTML的格式传送给浏览器。根据用户请求生成动态主页的传统方法有CGI、ISAPI等。CGI是根据浏览器端的http请求激活响应进程,每一个请求对应一个进程。当同时有很多请求时,程序挤占系统资源,造成效率低下;ISAPI针对这一缺点进行改进,利用dll(动态链接库)技术,以线程代替进程,提高了性能和速度,但要考虑线程的同步问题,而且开发步骤烦琐。这两种技术和另一普遍使用的开发动态网页的技术Java都还存在着另外一个问题,那就是开发困难,程序的开发和HTML写作是两个完全不同的过程,需要专门的程序员开发。而较简单的开发技术如javascript和IDC(InternetDatabaseConnector)等功能有限,不敷使用。ASP使用的ActiveX技术基于开放设计环境,用户可以自己定义和制作组件加入其中,使自己的动态网页几乎具有无限的扩充能力,这是传统的CGI等程序所远远不及的地方。ASP与常见的在Client端实现动态主页的技术如Javaapplet、ActiveXControl、VBScript、javascript等不同,ASP中的命令和Script语句都是由服务器来解释执行的,执行结果产生动态生成的Web页面并送到浏览器;而Client端技术的Script命令则是由浏览器来解释执行。由于ASP是在服务器端解释执行,开发者可以不必考虑浏览器是否支持ASP;同时由于它在服务器端执行,开发者也不必担心别人下载程序从而窃取编程逻辑。ASP通过后缀名为.asp的ASP文件来实现,一个.asp文件相当于一个可执行文件,因此必须放在Web服务器上有可执行权限的目录下。当用户从浏览器输入了.asp文件的地址后,浏览器就将这个URL请求发给WebServer,如果WebServer上装了ASP,就调用ASP。ASP读出相应.asp文件,解释并执行命令,动态生成一个HTML页面回传WebServer,然后WebServer再把结果发送给浏览器。ASP文件的制作和HTML类似,且和HTML开发集成,可以在同一个过程完成,利用ASP将可以执行的脚本嵌入到HTML文件中(将HTML文件的后缀名改为.asp),这使得HTML文件的编写与脚本的开发融合在一起。通过ASP内置的对象、服务器组件(ServerComponent)可以完成非常复杂的任务,而且用户还可以自己开发或利用别人开发的服务器组件完成专门的任务。ASP比较网关及服务器扩展模式有着以下优点:(1)完全与HTML文件融合在一起;(2)容易创建,不需要其它编译、链接程序;(3)面向对象的并通过ActiveXServer对象可扩展。ASP的特点:任何开发工具皆可发展ASP,只要使用一般的文书编辑程序,如Windows记事本,就可以编辑。当然,其他网页发展工具,例如,FrontPageExpress、FrontPage等也都可以;不过还是建议你用记事本来写,既省钱又方便,若是使用那些所见即所得的网页编辑来写ASP,可能会发生一些意想不到的离奇状态。

通吃各家浏览由于ASP程序是在网络服务器端中执行,执行结果所产生的HTML文件适用于不同的浏览器。语言相容性高:ASP与所有的ActiveXScript语言都相容,除了可结合HTML,VBScript、JavaScript、ActiveX服务器组件来设计外,并可经由plug-In(外挂组件模组)的方式,使用其他厂商(ThirdParty)所提供的语言。隐密安全性高:如果我们在浏览器中直接查看网页的原始代码,就只能看到HTML文件,原始的ASP程序代码是看不到的!这是因杰ASP程序先于网站服务(WebServer)端执行后,将结果转换成标准HTML文件,再传送到客户端(Client)的浏览器上,因此,我们所辛苦撰写的ASP程序并不会轻易地被看见进而被盗用。易于操控数据库:ASP可以轻易地通过ODBC(OpenDatabaseConnectivity)驱动程序连接各种不同的数据库,例如:Acess、Foxpro、dBase、Oracle等等,另外,ASP亦可将“文本文件”或是”Excel”文件当成数据库用。面向对象学习容易:ASP具备有面向对象(Object-Oriented)功能,学习容易,ASP提供了五种方便能力强大的内建对象:Request、Response、Sever、Application以及Session,同时,若使用ASP内建的“Application”对象或”Session”对象所撰写出来的ASP程序可以在多个网页之间暂时保存必要的信息。ASP内部6大对象:ASP提供了6个功能强大的内部对象,每个对象具有各自的属性(Property)、方法(Method),有的还拥有数据集合(Collection)与事件(Event),它们共同完成Web中的一些重要工作。这6个对象及其功能描述如表1-1所示。表1-1ASP内部6大对象及其功能对象名称功能描述Request从客户端取得信息Response将信息送给客户端Server提供一些Web服务器工具Session储存在一个Session内的用户信息,该信息仅可被该用户访问Application在一个ASP-Application中让不同的客户端共享信息ObjectContext配合MicrosoftTransaction服务器进行分布式事务处理合理地运用这些对象可以使原本复杂,烦琐的工作变得简捷而条理清晰。我们可以用以下的语法直接使用这些对象:对象/属性/方法/数据集合。VBScript是程序开发语言VisualBasic的一个子集,是ASP默认的脚本编程语言。VBScript语言易学易用,以对象为基础,对象基础语言不仅支持对象的属性和成员函数,而且可以用来编写动作并反映出和对象相关的事件,在VBScript中,可以非常容易的使用ASP的内建对象。在网页设计过程中使用VBScript语言,一般是在HTML文件中嵌入VBScript脚本,用以扩展HTML的功能,从而获得单凭HTML语言无法取得的效果。VBScript也是默认情况下ASP的主脚本语言,它用来处理在分界符“<%”和“%>”内部的命令。1.2.2DreamweaverDreamweaver与其它同类软件相比主要有以下优点:不生成冗余代码:可视化的网页编辑器,都要把使用者的操作转换成HTML代码。一般的编辑器都会生成大量的冗余代码,给网页以后的修改带来了极大的不方便,同时还增加了网页文件的大小。Dreamweaver则在使用时完全不生成冗余代码,避免了诸多麻烦。而且,通过设置,还可用Dreamweaver清除掉网页文件原有的冗余代码。方便的代码编辑:可视化编辑和源代码编辑都有其长处和短处。有时候,直接用源代码编辑会很有效。Dreamweaver提供了HTML快速编辑器和自建的HTML编辑器,能方便自如的在可视化编辑状态和源代码编辑状态间切换。强大的动态页面支持:Dreamweaver的Behavior能在使用者不懂javascript的情况下,往网页中加入丰富的动态效果。Dreamweaver还可精确的对层进行定位,再加上timeline功能,可生成动感十足的动态层效果。操作简便:首先,Dreamweaver提供的历史面板、HTML样式、模版、库等功能避免了重复劳动,使用者不必重复输入相同的内容、格式。其次,Dreamweaver能直接往页面中插入Flash、Shockwave等插件,经过设置后还可直接调用相应的软件对这些插件进行编辑。最后,Dreamweaver与Fireworks集成紧密,可直接调用Fireworks对页面的图象进行修改、优化。优秀的网站管理功能:在定义的本地站点中,改变文件的名称、位置,Dreamweaver会自动更新相应的超级链接。Checkin和Checkout功能可协调多个使用者对远程站点的管理。便于扩展:使用者可给Dreamweaver安装各种插件,使其功能更强大。使用者若有兴趣,还可自己给Dreamweaver制作插件,使Dreamweaver更适应个人的需求。Dreamweaver有两组共八种浮动面板。浮动面板浮动在主窗口上,可随意移动。这两组浮动面板各含有四种,每次显示一种,可用鼠标点击面板的标题栏来进行切换显示。还可用鼠标拖动各面板的标题栏,来分化、组合各组面板。每种面板均有不同的功能。Dreamweaver的主要工作区域是Objects、Properties和Launcher三个面板。Objects面板还是浮动在主窗口上,可随意移动。点击Objects面板上的图标是往页面插入相应的页面元素。Properties面板同样是浮动在主窗口上,可随意移动。Properties面板是用来设置选定的页面元素的属性。Launcher面板也浮动在主窗口上,可随意移动。点击Launcher面板上的图标可打开相应的窗口或浮动面板。1.2.3IIS(InternetInformationServer)简介IIS是InternetInformationServer的缩写,它是微软公司主推的服务器,最新的版本是Windows2000里面包含的IIS5,IIS与WindowNTServer完全集成在一起,因而用户能够利用WindowsNTServer和NTFS(NTFileSystem,NT的文件系统)内置的安全特性,建立强大,灵活而安全的Internet和Intranet站点。IIS支持HTTP(HypertextTransferProtocol,超文本传输协议),FTP(FeleTransferProtocol,文件传输协议)以及SMTP协议,通过使用CGI和ISAPI,IIS可以得到高度的扩展。IIS支持与语言无关的脚本编写和组件,通过IIS,开发人员就可以开发新一代动态的,富有魅力的Web站点。IIS不需要开发人员学习新的脚本语言或者编译应用程序,IIS完全支持VBScript,JScript开发软件以及Java,它也支持CGI和WinCGI,以及ISAPI扩展和过滤器。IIS支持服务器应用的MicrosoftBackOffice系列,MicrosoftBackOffice系列包括以下内容:1.MicrosoftExchangeServer客户/服务器通讯和群组软件;2.MirrosoftProxyServer代理服务器;3.用于连接IBM企业网络的MicrosoftSNAServer;4.用于集中管理分布式系统的MicrosoftSystemsManagementServer;5.MicrosoftCommercialInternetSystem(MCIS)。IIS的设计目的是建立一套集成的服务器服务,用以支持HTTP,FTP和SMTP,它能够提供快速且集成了现有产品,同时可扩展的Internet服务器。IIS相应性极高,同时系统资源的消耗也是最少,IIS的安装,管理和配置都相当简单,这是因为IIS与WindowsNTServer网络操作系统紧密的集成在一起,另外,IIS还使用与WindowsNTServer相同的SAM(SecurityAccountsManager,安全性账号管理器),对于管理员来说,IIS使用诸如PerformanceMonitor和SNMP(SimpleNerworkManagementProtocol,简单网络管理协议)之类的NT已有管理工具。IIS支持ISAPI,使用ISAPI可以扩展服务器功能,而使用ISAPI过滤器可以预先处理和事后处理储存在IIS上的数据。用于32位Windows应用程序的Internet扩展可以把FTP,SMTP和HTTP协议置于容易使用且任务集中的界面中,这些界面将Internet应用程序的使用大大简化,IIS也支持MIME(MultipurposeInternetMailExtensions,多用于Internet邮件扩展),它可以为Internet应用程序的访问提供一个简单的注册项。IIS的一个重要特性是支持ASP。IIS3.0版本以后引入了ASP,可以很容易的张贴动态内容和开发基于Web的应用程序。对于诸如VBScript,JScript开发软件,或者由VisualBasic,Java,VisualC++开发系统,以及现有的CGI和WinCGI脚本开发的应用程序,IIS都提供强大的本地支持。IIS服务器具有以下一些特性:1.IIS可以赋予一部主机电脑一组以上的IP地址,而且还可以有一个以上的域名作为Web网站,您可以利用TCP/IP内容设置两组以上的IP地址给它,除了为网卡再加进一组IP地址之外,必须在负责这个点的DNS上为这组IP地址指定另一个域名,完成这些步骤以后,在InternetServiceManage中就会出现一个虚拟Web服务器,虚拟服务器(VirtualServer)必须有它自己的主目录(homedirectory),对于IIS来说,所有服务器都是它的虚拟服务器。2.在互联网上,有很多网站需要多部服务器才能够应付来自用户端的请求,这就需要利用DNS所具有的功能,将一组以上的IP指定给同一个域名,每当这个网站接到服务要求,由DNS负责进行解析,它会指定域名的下一组IP地址给它,若要求采用这套做法,服务器的内容必须逐一复制到每一部服务器上。IIS体系架构:IIS和WindowsNTServer是紧密的结合在一起的,IIS的组成元件是以服务程序的形式在后台执行的,用户端利用TCP/IP协议连接上IIS,TCP/IP协议是有以下比较重要的四层(Layer)所组成的:1.LinkLayer:作为WindowsNT操作系统和网卡以及网络驱动程序之间的界面。2.NetworkLayer:负责控制资料包在网络上的移动,IP(InternetProtocol)即位于这一层。3.TransportLayer:负责用户端到服务器之间的信息的移动,TCP(TransmissionControlProtocol)即位于此层。4.ApplicationLayer:管理较低层和应用程序之间的连接端口,Socket即位于此层。作为MMC(MicrosoftManagementConsole)的一部分,InternetServiceManager(ISM)主要负责IIS提供服务的一些设置组态的管理,InternetServiceManager可以用来增强信息服务器的配置和性能,InternetServiceManager可以帮助用户在网络中任何一台运行WindowsNTServer网络操作系统的计算机上,配置和监视所有的Internet服务。InternetServiceManager位于MicrosoftInternetServer组中。通过选择InternetServiceManager超文本管理器,用户可以采用HTML界面使用InternetServiceManager。对HTML管理平台版本唯一的限制是,不能通过这个界面结束或者启动服务器上的Internet服务。IIS提供的服务:IIS主要集成了WindowsNTServer网络操作系统的三个Web服务器功能,这些功能是通过标准HTTP协议传输数据的,所有的IIS服务(WWW,FTP和SMTP)都是单进程多线程的体系结构,用以优化性能。WWW使用的客户/服务器协议是HTTP,这意味着客户和服务器需要交互作用,以执行特定的任务,例如:用户在Web上的HTML页面上单击一个超级连接,结果屏幕上现有的页面会被新的页面所代替,IIS通过WindowsSockets来支持HTTP,目前的IIS支持HTTP1.1版本。FTP是在TCP/IP网络上两个计算机之间传输文件时使用的协议,IIS通过WindowsSockets来支持FTP,尽管现在使用FTP用户界面的人越来越少,但是这个协议仍然将在一段时间内用来传输文件,因为它几经被Internet用户广为接受,FTP使用TCP作为它的客户和服务器之间进行所有通信和交换的传输协议,而IIS则是以WindowsSockets与TCP打交道的。所有标准Internet服务(如FTP和HTTP)都位于称为Inetinfo(InternetInformationServicesApplication,Internet信息服务应用)的进程中,除了这些Internet服务外,该进程还包含了共享线程池,缓存,纪录和SNMP服务。HTTP和FTP运行与同一进程中,因此它们可以共享缓存中的数据,例如文件句柄,账号信息以及日志文件数据等。您可以使用纪录跟踪正在访问你的节点的那些用户,并控制什么时候可以访问节点,对用户进行跟踪可以帮助确定安全性和性能问题,跟踪信息可以直接纪录到日志文件,这样可以脱机进行处理,以获得更好的性能,同样也可以纪录到数据库中,以进行动态的评价。1.2.4利用ADO访问数据库ADO(ActiveXDataObjects)是一种操作Microsoft所支持的数据库的新技术。在ASP中,ADO可以看作是一个服务器组件(ServerComponent),更简单点说,是一系列的对象,应用这些功能强大的对象,即可轻松完成对数据库复杂的操作。本文中个性化页面的实现便大量地用到了ADO技术。具体的操作步骤可以归纳为以下几步:1.创建数据库源名(DSN)2.创建数据库链接(Connection)3.创建数据对象4.操作数据库5.关闭数据对象和链接详细作法如下:1、创建数据源名DSN(DateSourceName)即数据源名称。我们知道,ODBC是一种访问数据库的方法,只要系统中有相应的ODBC驱动程序,任何程序就可以通过ODBC操纵驱动程序的数据库。比如我们系统中有SQL的ODBC驱动程序,那么即使我们没有SQL软件,也可以在我们的程序中对一个SQL的MDB数据库加、删、改记录。而且我们根本不用知道这个数据库是放在哪里的。我们只要写出SQL语句,ODBC驱动程序就会帮我们做一切事情。我们在给ODBC驱动程序传SQL指令时,即是用DSN来告诉它到底操作的是哪一个数据库。如果数据库的平台变了,比如我们改用了Access的数据库,只要其中表的结构没变,我们就不用改写我们的程序,只要重新在系统中配置DSN就行了。由此可见,DSN是应用程序和数据库之间的桥梁。2、创建数据库链接(Connection)链接用以保持一些关于正在访问的数据的一些状态信息,以及链接者信息。ASP文件中如果要访问数据,必须首先创建与数据库的链接,其语法如下:setConn=Server.createObject(“ADOBD.CONNECTION”)这条语句创建了链接对象Conn,接下来:connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data.Source="&Server.MapPath(""&db&"")conn.Openconnstr这条语句打开链接,用到了DSN,本例为“connstr”。以上两个步骤缺一不可,因为链接对象的创建与打开是两回事,只有打开了才真正可以使用。3、创建数据对象(RecordSet)ADO中的数据对象通常保存的是查询结果。RecordSet是ADO中最复杂的对象,有许多属性和方法。RecordSet保存的是一行行的记录,并标有一个当前记录。以下是创建方法:SetRecordSet=Conn.Execute(sqtStr)这条语句创建并打开了对象RecordSet,其中Con是先前创建的链接对象,rs是一个字串,代表一条标准的SQL语句。例如:rs=“SELECT*FROMshop_books”SetRecordSet=mConn.Execute(rs)这条语句执行后,对象RecordSet中就保存了表tab1中的所有记录。4、操作数据库我们通过调用链接对象的Execute方法来将查询结果返回给一个数据对象或进行插入、删除等操作。例如:rs=“INSERTINTOtab1VALUES(1,2)”mConn.Execute(rs)/执行插入操作5、关闭数据对象和链接对象在使用了ADO对象之后要关闭它,因为它使用了一定的服务器资源。通过调用方法close实现关闭,然后再释放它。RecordSet.closeSetRecordSet=Nothing/关闭创建的数据对象mConn.closeSetmConn=Nothing/关闭创建的链接对象

2需求分析现代企业的信息系统应用范围越来越广,信息量也越来越大。它们已经开始为决策层提供必要的决策支持信息。但是信息系统应该为决策层提供一个简单、方便的手段,使之以尽可能直接、快捷的方式获得其需要的信息。在企业OA系统首先就是服务于管理层的,随着其功能的日益强大和完善,信息查询方便,易于跨平台的优势使之具备了联接其他系统,提供查询信息,服务管理层的能力,OA的应用开始渗透进各应用系统,以统一的界面为管理层提供信息。其次,OA系统应用于企业的所有部门,是涉及员工最多的一个系统,为大多数员工所掌握,拥有广泛的应用基础。而其他应用系统都有一定的适用范围,应用于某一系统内部,不可能面向所有员工。因此将其作为企业信息化的综合应用平台易于为人们接受。企业选择OA系统作为综合应用平台是目前较为合适的选择,随着应用水平的不断提高,企业信息综合应用平台的发展也会不断的扩充和发展。在传统的办公模式中,办公业务主要是通过手工来完成的,势必带来工作效率低、资源浪费的问题。虽然可以利用通信、印刷和计算机等现代办公设备,仍然不能从根本上改变办公人员劳动强度大、工作效率低的局面。因此,要提高企业的现代化管理水平和工作效率,必须建立一套以计算机网络为基础、结合了科学管理思想和行为科学的办公自动化(OA)系统来促进办公活动的规范化和制度化。2.1研究的目的及存在的问题2.1.1研究的意义及类研究工作国内外现状和存在的问题办公自动化是近年来发展迅速的一项技术,在国内外已经广泛运用,已成为现代化管理中的一个重要部分,是否采用办公自动化,是衡量一个单位管理水平的重要标志之一。在我国,办公自动化的研究和实践,经过了一段时间的沉寂,从最近几年开始呈现迅猛的发展势头,尤其是LotusNotes的流行和政府上网工程的开展,似乎在一夜之间,办公自动化已经成了政府机关、工矿企业、公司、高等院校、研究机构等单位的必备工具。计算机技术尤其使网络技术、通讯技术、数据库技术、多媒体技术、虚拟现实技术等的飞速发展和应用,使办公自动化的发展又呈现出新的景象。(1)计算机网络技术的成熟与普及,使得许多单位建立了自己的局域网和广域网,并与Internet相连,形成了完善的信息流转通路。(2)经过多年的不泄努力,建立了许多以数据库为基础的应用,积累了大量宝贵的信息资源,锻炼和培养了一批信息技术开发应用人员,整个工作人员使用计算机的能力和积极性都有了很大提高。(3)以MicrosoftOffice、MicrosoftOutlook、LotusNotes为代表办公软件的完善,使办公过程中公文的流转得以顺利实现,同时多媒体、数字签名等技术的应用,又使电子公文能得到普遍认可,初步解决了电子文档的法律问题。(4)在新世纪带来之际,我国“政府上网”工程的开展,极大地调动了政府机关、企业公司信息化建设的积极性,为办公自动化带来了新的发展契机。2.1.2实施办公自动化存在的一些问题办公自动化不同于简单的自动化设备,各种办公自动化软件的成功应用,需要多方面的支持。目前困扰办公自动化的应用主要有如下一些问题:(1)系统的安全难以令人满意(2)与办公自动化相适应的规章制度不健全(3)自动化与手工操作的矛盾(4)需要领导的重视和工作人员的支持(5)慎重选择适合自身条件的设备、软件和服务厂商2.2.3研究目标及内容办公自动化系统的软件可以采用C/S(Client/Server,客户/服务器)、B/S(Browser/Server),浏览器/服务器)或者二者的混合体系结构。内容:建设一个安全、可靠、开放、高效的信息管理电子化、办公自动化系统,为用户提供现代化的日常办公条件及丰富的综合信息服务,实现档案管理自动化和办公事务处理自动化,以提高办公效率和管理水平,实现企业各部门日常业务工作的规范化、电子化、标准化;能实现信息在线查询、借阅,最终实现“无纸”办公。2.2需求分析系统具有以下功能:·管理系统用户,由于该系统的使用对象多,要求有较好的权限管理。·管理企业的会议信息,发文信息、公共信息。·提供个人办公服务。·对企业员工基本情况进行全面管理。·设置生产数据统计、打印功能。·对企业制定的采购计划进行管理。·对库存信息进行管理。·发布企业的生产指标,对其进行管理。·强大的生产数据统计功能。·当外界环境(停电、网络病毒)干扰本系统时,系统可以自动保护原始数据的安全。·在相应的权限下,删除数据方便简单,数据稳定性好。·数据计算自动完成,尽量减少人工干预。·系统退出。2.2.1主要功能介绍及结构图本系统分为下述的三个模块:员工信息管理系统、公司财务信息管理系统和公司内部信息交流系统(如图2-1所示)。对于公司员工信息管理系统,除员工信息查询外,还具有拥护修改个人信息页面,系统管理员页面,添加新用户页面和修改某个用户信息页面。对于公司财务管理系统,可以具体细化为添加新财务信息记录页面,添加新财务项目页面,生成各种财务报表页面和修改某个财务记录页面。公司财务信息查询管理系统公司财务信息查询管理系统员工信息管理系统员工信息管理系统企业内部办公网主页企业用户登录页面图2-1主要功能图对于公司内部信息交流系统,可以具体细化为内部通知公告牌页面,发布新通知页面,修改某个通知页面,意见箱页面,意见分析页面,投票站页面和投票分析页面。系统登录页面系统登录页面公司内部办公信息管理系统主页面员工信息管理主页面财务信息管理主页面修改个人信息页面员工信息管理主页面添加新用户页面修改用户信息页面添加新财务信息页面生成财务报表页面修改财务信息页面内部信息交流主页面添加新财务项目页面内部通知公告牌页面意见箱页面投票站页面发送新通知信息页面修改通知信息页面意见建议批阅页面进行投票页面图2-2页面逻辑结构示意图图2-2是整个系统的页面逻辑结构示意图。2.2.2分析系统数据要求根据系统功能设计的要求,对于系统用户信息数据库,有以下数据项和数据结构:·用户信息:用户ID、登陆名、用户姓名、密码、E-mail、部门、职位、内部电话、家庭电话、移动电话、QQ号、家庭地址、系统管理员权限、生日、财务管理员权限、性别、教育程度、备注。对于财务信息管理系统,有以下数据项和数据结构:·财务记录信息:财务记录ID、财务记录经手人、部门、所属财务项目名称、各种具体款项(A、B、C、D等)、款项合计、摘要、备注、会计经手人、记录添加日期、记录修改日期。对于内部信息交流系统,有以下数据项和数据结构:·内部通知信息:同志ID、通知内容、通知类型、通知发送者、通知接收者、通知发送日期、通知发送时间、通知有效天数。·内部意见建议信息:意见建议ID、意见发送者、意见发送部门、意见类型、意见内容、意见处理状态、意见处理评论、意见发送日期。·内部投票信息:投票ID、投票发起者、投票主题、套票开始时、总应投票人数。

3数据库设计3.1数据库设计原则数据库的设计原则如下:第一,进行规范化设计,尽可能地减少数据冗余和重复:合理的数据库表的设计应该是在满足需求的前提下,使数据的重复量最小,就尽量按照关系数据库系统理论方法去设计一个数据库,减少数据的冗余。第二,结构设计与操作设计相结合:在设计数据库结构时,有时为了编程实现的简捷和思路的清晰,往往故意增加一些冗余数据。这虽然有悖于传统的关系数据库理论,但是考虑到选择的机器型号和档次等因素,如果增加的冗余不会明显增加存储空间和降低处理效率,并且对编程实现有很大帮助,往往可以采用这种方法。第三,数据结构具有相对的稳定性:数据结构的相对稳定性,可以作为新、旧系统转换的依据。无论采用何种方法或手段去处理日常事务,都应该能完成相应的功能,决不会因为采用了计算机而丢失了必要的功能,或彻底改变了原有的工作流程和模式。计算机系统的建成是建立在原系统充分调研的基础上的,它既不能脱离原系统的大框架,也不是简单的重复和替代。所以数据库表结构设计应保证数据的相对稳定,这样才能考虑在新的数据结构下的业务处理方式。3.2E-R图及数据库构建3.2.1E-R图公司员工与部门E-R图(图3-1),公司财务信息E-R图(图3-2),通知、投票、意见E-R图(图3-3)分别如下。3.2.2数据库表单1.数据库表单设计根据系统功能设计的要求及功能模块的划分,各个系统的具体逻辑实现如下:对于系统用户信息数据库,有以下数据项和数据结构:用户信息:用户ID、登陆名、用户姓名、密码、E-mail、部门、职位、内部电话、家庭电话、移动电话、QQ号、家庭地址、系统管理员权限、生日、财务管理员权限、性别、教育程度、备注。用户信息表所需的外部数据支持:·部门信息:部门编号、部门名称。·职位信息:职位ID、职位名称。对于财务信息管理系统,有以下数据项和数据结构:财务记录信息:财务记录ID、财务记录经手人、部门、所属财务项目名称、各种具体款项、款项合计、摘要、备注、会计经手人、记录添加日期、记录修改日期。员工公司工作员工公司工作职位姓名性别n1财务部工程部人事部行政部质控部财务信息财务信息员工管理财务部主管普通员工总经理财务部员工记录经手人备注添加日期修改日期图3-2公司财务信息E-R图员工员工通知公告意见建议投票信息操作投票者姓名投票内容投票者ID投票问题ID通知内容通知类型通知发送者通知发送日期通知发送时间通知有效天数发送部门意见类型意见内容意见处理状态意见发送者有效天数图3-3通知、投票、意见E-R图财务信息记录表所需的外部数据支持:·财务项目信息:财务项目ID、财务项目名称。·部门信息:可以从部门信息表中查处。·职位信息:可以从职位信息表中查处。·用户权限信息:可以从系统用户信息数据库里获得。对于内部信息交流系统中的内部通知部分,有以下数据项和数据结构:内部意见建议信息:意见建议ID、意见发送者、意见发送部门、意见类型、意见内容、意见处理状态、意见处理评论、意见发送日期。内部意见建议信息表所需的外部数据支持:·意见类型信息:意见建议的类型。·部门信息:可以从系统用户信息数据库里获得。·用户权限信息:可以从系统用户信息数据库里获得。对于内部信息交流系统中的内部投票部分,有以下数据项和数据结构:·投票信息:投票ID、投票者ID、投票者姓名、投票内容。·部门信息:可以从部门信息数据库里获得。·职位信息:可以从职位信息数据库里获得。·用户权限信息:可以从系统用户信息数据库里获得。2.数据库表单1、记录公司部门信息的数据表如表3-1所示。数据来源:一部分来源于注册页面,一部分来源管理员后台操作。表3-1公司部门信息数据表(Departments)字段名称数据类型说明DepartmentID自动编号部门IDDepartmentName文本部门名称Remark备注备注2、公司职位信息数据表如表3-2所示。表3-2公司职位信息数据表(Positions)字段名称数据类型说明ID自动编号PositionName文本字段名称PositionID数字职位ID3、公司财务项目信息数据记录在公司财务信息表中,如表3-3所示。数据来源:有财务管理权限的相关人员。表3-3公司财务项目信息数据表(FinancialProject)字段名称数据类型说明FinancialProjectID自动编号FinancialProjectName文本财务项目名称AddDate日期/时间项目添加时间FinancialManager文本项目主管4、系统用户数据表记录了系统用户的各项信息,如表3-4。表3-4系统用户信息数据表(PSLogins)字段名称数据类型说明ID自动编号LoginID文本系统用户的登陆名Name文本系统用户的姓名Password文本用户密码EmalAddress文本用户电子邮件地址Department文本用户所在的部门Position文本用户的职位InternalPhone文本用户的内部分机号码HomePhone文本用户的家庭电话MobilePHone文本用户的手机号QQ文本用户的QQ号码HomeAddress文本用户的家庭住址IsSystemManager是/否用户是否是系统管理员Birthday日期/时间用户的生日IsFinancialManager是/否用户是否是财务管理员Sex文本用户性别Education文本用户教育程度Remark备注5、公司财务信息表如表3-5记录的是公司财务的各细项。数据来源:具有财务管理相应权限的员工。表3-5财务信息数据表(FinancialRecotd)字段名称数据类型说明ID自动编号Name文本记录经手人Department文本部门ProjectName文本所属财务项目FundTypeA货币款项A的数额FundTypeB货币款项B的数额FundTypeC货币款项C的数额FundTypeD货币款项D的数额续表3-5字段名称数据类型说明Sum货币各款项求和Summary文本摘要Remark文本备注AccountName文本会计经手人AddDate日期/时间记录添加日期ModifyData日期/时间记录修改日期6、公司通知公告牌数据项记录在公司通知公告牌数据表中,如表3-6。表3-6通知公告牌数据表(MessageBoard):字段名称数据类型说明MessageID自动编号MessageContent文本通知内容MessageType文本通知类型MessageSender文本通知发送者MessageSendDate日期/时间通知发送日期MessageSendTime日期/时间通知发送时间MessageValidTime数字通知有效天数7、公司内部意见信息表记录了公司内部意见信息的各细项,如表3-7表3-7内部意见信息数据表(SuggestionRecords):字段名称数据类型说明SuggestionID自动编号SenderName文本意见发送者ToDepartment文本意见发往部门SuggestionType文本意见类型SuggestionText备注意见内容Status文本意见处理状态Comments文本意见处理评论WhenSent日期/时间意见发送日期8、投票问题信息数据表记录了公司投票问题的各项细则,如表3-8表3-8公司投票问题信息数据表(VotingQuestions):字段名称数据类型说明QuestionID编号SenderName文本投票发起者Subject文本投票主题Question备注投票内容WhenSent日期/时间投票开始时间VoterNumber数字总应投票人数9、公司内部意见类型数据表如表3-9表3-9公司内部意见类型数据表(SuggestionTypes):字段名称数据类型说明SuggestionType文本意见建议的类型10、公司投票信息表如表3-10表3-10投票信息数据表(VotingVotes):字段名称数据类型说明QuestionID数字投票问题IDVoterID文本投票者IDVoterName文本投票者姓名VOte文本投票内容4详细设计与实现4.1登陆界面设置登录页面图如图4-1图4-1登陆页面图系统登陆页面:系统登陆页面主要用于对用户身份进行鉴别。在创建ASP应用程序时,在Global.asp里指定系统允许用户尝试登陆的次数,超过这个次数,系统将不再显示登陆界面。登陆页面用到的数据库组件:登陆页面使用了系统用户信息表(PSLogins)对用户ID,LoginID,Password字段进行身份鉴别,通过身份验证后该页面记录用户详细信息留待以后的页面使用。创建ASP应用程序:在global.asa文件中使用了Application_Onstart事件,创建了一个ASP应用程序来处理用户登陆次数的信息。创建ASP应用程序的具体步骤为:打开IIS服务器,进入Web根目录。单击鼠标右键,弹出属性对话框,在“应用程序设置”里,创建ASP应用程序,名称与Web根目录同名,具有该应用程序执行功能的就是Global.asa文件。该文件是存放在Web应用程序根目录下的一个文本文件。4.2系统主页面4.2.1系统主界面图及主要功能系统主页面如图4-2,主页面上有三个主要链接,分别指向内部系统的3个主要功能模块。图4-2系统功能主界面4.2.2系统主页面对用户进行身份判断,如果用户通过了系统登陆页面验证,服务器会分配一个ID给该用户,用户ID便不会为空,否则表明用户没有通过登陆,系统将用户导向系统登陆页面。在系统中大部分页面都要经过这一判断。4.3员工信息管理系统主页面4.3.1员工信息管理系统主页面图及功能图4-3信息管理系统的主页面,用户可以通过选择不同的单选按钮进行相应的用户信息查询和管理功能。这个页面重要动能有:·按照不同排序查询所有员工记录。·选择查询某一个部门全部员工的记录。·选择查询某一个员工的记录。·选择查询各个部门主管的记录。·选择修改用户自己的员工记录。·选择进入管理员选项。图4-3信息管理界面图4.3.2修改个人信息主页面修改个人信息页面图如图4-4用户可以对原来系统数据库中的个人信息进行修改,有些信息是无法更改的,如部门,职位,是否为系统管理员,是否为财务管理员等,要修改这些信息必须具备系统管理员身份并通过SystemManager.asp和ModifyUserInformation.asp来进行修改。修改个人信息主页面用到的数据库组件有:系统用户信息表(PSLogins)图4-4修改个人信息页面图用户提交表单以后先判断表单元素Password里提交的密码与用户在Session里存储的Password字段是否一致,如果正确可以进行信息更改,关键代码为:IfRequest.Form(”Passward”)=Session(”Password”)then如果密码不真确则不能进行信息更改,关键代码为:ElseTheMessage=”您输入的密码不正确,请重试”Endif用户提供正确明码情况下,还存在是否修改密码的情况,一是用户修改资料不修改密码,另一种是用户要修改密码。(这里只列出修改的情况,因为不修改密码的情况跟修改的情况接近并相对简单得多)用户要求修改自己密码时,必须输入两次密码,以确保用户输入正确,如果两次密码输入相同,则将用户提交的表单信息更新到数据库。4.3.3系统管理员页面系统管理员页面图如图4-5(图中显示的是删除成功的页面图)。系统管理员根据不同的排序方式进入系统管理员页面(图4-5是以姓名方式进入),可以选中要修改的用户,可单击“修改此用户信息”按钮进入修改此用户信息的页面或单击“删除此用户信息”删除选中的用户或单击“添加新用户信息”添加新用户。该页面使用的数据库组件:系统用户信息数据表。如果用户提交删除用户按钮(Delet),这时就要判断选中的是哪一个用户,通过表单元素SelectWho的值来确定,如果未选择用户则SelectWho为空,那么就不进行任何操作。图4-5系统管理员页面图4.3.4管理员修改用户信息页面管理员修改用户信息页面如图4-6(图中显示的是修改成功后的页面图)。当系统管理员进入此页面,页面表单元素显示此前管理员选中的用户详细信息,管理员可以在这里对员工信息的各个字段进行修改。页面使用的数据库组件:系统用户信息数据表(PSLogins),部门信息数据表(Departments)和职位信息表(Positions)。首先对连接的用户进行身份识别,必须是登陆用户并且具有管理员身份才能浏览此页,否则重新导向系统登陆页面。图4-6管理员修改用户信息页面4.3.5员工信息管理系统添加新用户页面系统管理员可以通过这个页面添加新用户信息时登陆名,姓名,密码是必须填写的元素(如图4-7)。页面使用的数据库组件为:系统用户信息数据表(PSLogins),部门信息数据表(Departments)和职位信息表(Positions)。图4-7添加用户界面点击添加按钮,系统要对用户提交的新用户信息表单进行校验,其中登陆名(LoginID)、用户姓名(Name)和用户密码(Password)不能为空。校验通过则将新用户信息插入数据库中。4.4公司财务信息管理系统主页面公司财务信息管理系统主页面如图4-8所示。图4-8公司财务信息管理界面4.4.1公司财务信息管理系统的权限设置财务系统对一个公司来说必须有清晰的权限规定,在这个系统里我把财务权限相关的身份分以下五种,从低到高排列如下:·普通员工(即普通系统用户),具有最低财务权限,只能浏览自己的个人财务报表。·部门主管,除普通员工权限外还具有查看部门财务报表权限。·财务管理员,除普通员工权限外,还具有添加和修改财务记录的权限。·财务部主管,本身即具有财务管理人员权限,还具有浏览总流水帐财务报表的权限。·经理,除普通员工权限外,还可以浏览各种财务报表。具体权限设置:·只有财务管理人员才具有录入财务记录、浏览财务项目的权限。其他任何人都不能添加财务记录。只有财务主管才可以增加和删除财务项目的权限。·对总流水帐报表,只有公司经理、财务主管可以浏览;对部门财务报表,只有公司经理和部门的主管可以浏览;对项目财务报表,只有公司经理和此项目的主管可以浏览;对个人财务报表,只有公司经理和此员工可以浏览。·只有财务管理人员才可以修改财务记录,财务管理人员不能修高所有记录,只能修改他自己经手的那些记录。4.4.2公司财务管理系统的主要功能模块·只有财务管理人员才可以进入添加财务信息记录模块(如图4-9)。·所有系统用户都可以进入生成财务报表模块。·只有财务管理人员才可以进入修改财务记录模块。图4-9公司财务管理系统的主要功能模块图4.4.3添加新财务信息记录页面公司财务管理人员能添加新的财务记录,记录包括:财务经手人、部门、隶属的财务项目、各个款项和数额、会计经手人(如图4-10)。图4-10添加新财务信息记录页面页面使用的数据库组件为:系统用户信息数据表(PSLogins),部门信息数据表(Departments),财务项目信息表(FinancialProjects)和财务记录信息表(FinancialRecords)。该页面的主要功能:·这里设置了一个BOOL型变量Warning,表示页面出现的系统提示信息是否为警告信息,如果是,则把信息设为红色。·对财务经手人和财务项目进行校验,判断经手人和财务项目是否存在,如不存在给出相应提示。4.4.4添加新财务项目页面具有财务管理员身份的用户都可以看到这个页面,但是只有财务部主管才可以添加或修改财务项目操作(如图4-11,图中显示的是添加不成功页面)。身份校验的过程同上个页面的功能,判断用户是否是财务部主管。页面使用的数据库组件有:财务项目信息表(FinancialProjects)和系统用户信息数据表(PSLogins)。4-11添加新财务项目页面4.4.5生成财务信息报表页面系统用户可以通过该页生成4种报表,各个表及表格的权限设置如下:·总流水帐报表是所有财务记录报表,只有公司经理和财务部主管才有权利浏览。·部门财务报表是某个部门所有财务记录的报表,只有公司经理和相应部门的主管可以浏览。·项目财务报表是某个财务项目的所有财务记录报表,只有公司经理和该项目的主管可以浏览。·个人财务报表是某个经手人所经手过的所有财务记录报表,只有公司经理和此经手员工可以浏览。在该页面中,先进行身份校验,由上面可以看出,该页面要进行相关操作所要进行的身份校验是不一样的,所以该页面的代码相对来说比较复杂。主页面图如图4-12(图中显示的是无权修改的页面):在时间是否有时间期限限制时,为了使SQL语句简单,用了StartDate和EndDate来存储报表的起始时间和截止时间,如果选择无时间期限限制,就把StartDate和EndDate分别设置为“0000-1-1”和“9999-12-31”,这里用的是一个字符串变量TheTimeLimit来存储生成报表有无时间限制的信息。关键代码这里就不详细列出了。图4-12生成财务信息报表页面校验身份通过后,在查询数据库中会生成一个记录集RSAllFinancialTecord来存储财务记录以备输出,上述四种类型的报表的记录内容都记录在这个记录集里,所以HTML部分输出时只要对这个记录集输出就可以了。在报表状态,利用Response对象的write输出RSAllFinancialTecord记录集,对RSAllFinancialTecord进行循环输出时,要对个数目进行求和,关键代码如下:该页面中使用到的数据库组件有:财务记录信息表(FinanicialRecord)、部门信息表(Departments)、财务项目信息表(FinancialProject)和系统用户信息表(PSLogins)。4.4.6修改财务信息页面页面图如图4-13。图4-13修改财务信息页面页面分三种状态:·用户第一次进入,可以选择要修改的财务记录查询条件,有四种条件:财务记录的ID号,财务记录所属的财务项目,财务记录的经手人和财务记录的添加日期,用户可以任意组合来查询需要的财务记录。·用户点击“查询符合条件的财务记录”按钮,页面显示符合条件的所有记录。·用户选择某个财务记录并点击“选种某条财务记录”按钮,则页面显示该财务记录的修改页面。该页面的难点:如上所述,页面分三个状态,分别为查询条件状态、查询结果状态和修改某个记录状态。这里使用了变量QueryLabel来表示这三种状态,分别设为1、2、3。而在查询状态又使用了四个字符串变量(sql1,sql2,sql3,sql4)来记录四个查询条件,如果用户选择了某个查询条件,则字符串设为相应的字符串变量,如果没有选择这个查询条件,则将字符串设为空值。在本页面的HTML部分,根据QueryLabel的值,输出相应状态的HTML页面。页面使用的数据库组件有:财务记录信息表(FinanicialRecord)、财务项目信息表(FinancialProject)和系统用户信息表(PSLogins)。4.5内部信息交流系统主页面内部信息交流系统主页面图4-14。图4-14内部信息交流系统主页面图4.5.1内部信息交流系统页面图和主要功能该页面分3个链接,分别指向内部通知公告牌页面(MessageBorad.asp)、意见箱页面(SuggestionBox.asp)和投票站页面(Voting.asp)。页面下方显示当日并且是有效的公司所有内部公共通知。页面使用的数据库组件有:内部信息表(MessageBoard)。4.5.2内部通知公告牌页面页面功能,公司内部的通知分成了3类(页面如图4-15):·公共通知,所有人都看得到·部门通知,只有部门内员工能见。·个人通知,只有被通知人可以看见。所以用户进入该页面可以看到三类通知:集体通知、所在部门的通知和其他员工发给你的通知。还有一列按钮:修改某条通知、删除某条通知、发送新通知和管理员清空过期通知。管理员具有删除任何公共和部门通知的权限。该页面使用的数据库组件有:内部信息表(MessageBoard)。图4-15内部通知公告牌页面4.5.3发送新通知信息页面在这里可以发送三类通知:发送给全体员工的公共通知,发送给某个部门的部门通知和发送给某个用户的个人通知,同时还可以设置新通知的有效天数(如图4-16)。通知确认的过程:·身份校验,通过,则连接数据库。·发送通知,先判断通知类型,这里存储在一个字符串变量TheMessageType中。这里把新通知插入数据库时,使用Session对象的Name作为通知发送者,用系统时间做为通知发送时间。页面使用的数据库组件有:内部通知信息表,系统用户表和部门信息表。图4-16发送新通知信息页面4.5.4修改某条通知信息页面用户可以修改选中的通知的两个内容:通知有效天数和通知内容(如图4-17)。过程:首先判断用户是否登陆,并校验Session对象里MessageID是否为空,如果为空,则用户没有选择通知ID,回到主页面。校验通过,连接数据库。用户提交修改通知按钮,获取用户提交的修改后通知的信息(内容不能为空),更新数据库,更新数据库后此条通知的发送时间和日期将再一次和系统时间同步。图4-17修改某条通知信息页面4.5.5意见箱页面用户可以选择向不同的部门主管提交建议。用户提交意见后,系统将自己动查询此部门主管的电子邮件地址并发送电子邮件给该主管,电子邮件包括意见发送者和意见发送的内容,同时还还有一个此意见的链接,邮件接收者可以通过这个链接访问意见批阅界面,进行意见的批阅。用户还可以点击“查看我的意见”查询所有已经被处理过的自己曾机提交过的意见反馈情况(如图4-18)。主要步骤和过程:首先校验用户身份并连接数据库,所有登陆用户都能进入该页面。用户点击“提交我的意见”后,系统收集用户提交的表单信息,将意见插入数据库中。意见发送时间为系统时间,意见状态统一设置为“未处理”。下一步,程序把用户提交的意见以电子邮件的方式发送给相关部门主管,先确认意见的ID,该ID是系统自动编号的,然后查询发往部门主管的电子邮件地址。图4-18意见箱页面小结:在提供给部门主观链接地址时,使用了QueryString来指定此条意见的ID,格式为:Analysis.asp?SuggestionID=XX.另外还指定了网络地址。页面使用的数据库组件有:部门信息数据表(Departments),意见建议类型数据表(SuggestionTypes)和意见建议信息表(SuggestionRecords)。4.5.6意见建议批阅页面部门主管收到关于某条意见的电子邮件并点击邮件里提供的链接地址,便可以进入批阅界面,部门主管可以对意见进行处理并回复意见。关键步骤分析:判断用户是否有权浏览Analysis.asp页面是通过分析QueryString和一个隐藏表单元素的值来确定的。只有两者都不为空的情况下用户才可以浏览该界面。用户批阅了意见后提交表单,判断用户提交的表单里回复意见栏不能为空。如果意见栏不空,通过隐藏表单元素SuggestionID来获得意见的ID号,然后利用这个ID号在意见建议信息表里查处此条意见要发往的部门,在系统用户信息表里查出这个部门主管的详细信息。接着把用户提交的姓名和登陆密码同系统用户信息表里查出的结果进行校验,校验通过则说明用户是建议接受部门的主管,有权进行批阅,否则无权进行批阅。更新数据库后,在SQL语句里,意见状态设成已处理。意见的提交者可以在意见箱页面点击“查看我的意见”按钮,就可以看到被处理过的意见。页面使用的数据库组件只有意见建议信息表(SuggestionRecords)。4.5.7投票站页面用户可以根据自己的需要向不同的人发送投票邀请,可以分为三类:全体员工;某个部门的员工;某个职位的员工。用户提交表单后,系统根据用户选择的人发送电子邮件,邮件包含了投票的发起人,投票的主题和内容等,还给出参加投票的地址链接,可以通过这个链接进入投票界面(如图4-19)。主要步骤:校验身份,用户填写好投票的标题、内容、发布投票的范围(要邀请的人员的范围)开始投票,首先判断用户选择了何种投票范围,从系统用户信息表查询出相应的被邀请人的邮件地址和总人数。接着把这个新投票插入投票问题信息表里,接着把信息用电子邮件的方式发送给所有被邀请的人。邮件发送完成后,在投票信息数据表里记下对应此次投票的ID和被邀请的人的ID和姓名。图4-19投票站页面投票页面:·在查询总投票人数的SQL语句里,使用了count语句,其含义是对所有满足查询条件的记录的树木进行计数,把各种情况下被邀请参加投票人员的电子邮件地址和人数分别存储在RSEmails和RSVoterNumber记录集里。·使用Session对象的Name字段作为投票发起人的值并使用系统时间做为投票发布时间,要把新插入投票问题信息表的投票ID查询出来,关键代码如下:setRSQuestionID=conn.Execute(”selectQuestionIDfromVotingQuestiongs”_&”whereWhenSent=#”&CurrentDateTime&”#”)·在保证每一个投票的人只有一次投票机会的问题上,要保证没个人只能有一次投票机会,在每个投票人员点击了投票链接地址后,只能投出一票,如果再次点击该链接系统不会再显示投票页面,为了实现这一点,在提供给投票人的链接地址上加了两个具体的QueryString参数:一个是投票的ID,就是QuestionID;另一个是投票的人自己的ID,就是VoterID。所以,当投票人链接投票页面时,可以通过这两个参数判断其是否有权利进行投票。页面使用的数据库组件有:系统用户信息表(PSLogins),部门信息数据表(Departments),职位信息表(Positons),公司投票问题信息数据表(VotingQuestions)和公司投票信息数据表(VotingVotes)。4.5.8进行投票页面用户收到投票发起人的电子邮件,通过电子邮件里此次投票的的一个地址链接进入投票也面进行投票,此页面还对此投票者是否有权进行投票进行校验。投票人员将收到一封电子邮件,邮件包含了最新的投票结果。主要步骤:投票这通过邮件地址链接进入投票界面,该链接里包含了两个QueryString参数QuestionID和VoterID。在页面开始时首先对这两个参数进行判断,如果有一个为空,则说明不是合法的投票人,系统将切换到登陆界面。身份校验通过后,投票人员发送投票请求后,根据投票问题的ID在投票问题信息表里查出投票发起人的姓名,并根据姓名在系统用户信息表里查出电子邮件地址,然后在投票信息表里查处目前3种投票结果(是、否、说不清)的票数分别为多少,这三个结果的和就是已经投票的人数,然后用电子邮件的方式想投票发起人发送投票结果。该页面使用了两个数据库组件:投票问题信息表和投票信息表。

5系统测试5.1测试环境计算机硬件环境CPU:2.0HZRAM:512MHD:40GCDROM:52X显示:800*600,256Colors测试工具:IIS服务器DreamweaverIE5.0SQL2000Access20005.2连接数据库ADO与SQL:在系统中使用了ActiveXDataObject(ADO)来访问各种数据库和数据服务。ADO是OLEDB的低级简约层,而OLEDB则是ODBC顶层的一种数据服务。所以任何一种数据库,只要它具有ODBC驱动,就可以通过ADO来访问它。在系统ASP代码中,每次访问系统数据库都建立了一个和ADO数据库对象连接,然后才打开数据库并执行相应的SQL语句,把执行结果返回到记录集里,关键代码如下:Setconn=serner.createobject(”adodb.connection”)Conn.open”ASPData”,”sa”,”yourpassword”SeRSYourRecordSet=conn.Execute(”YourSQLString”)SQL语言是数据库的标准语言,在ASP中,要访问一个数据库,就要使用SQL语言。SQL语句是有一个重要工作。构造SQL语句在SQL语句编写中,常常需要根据用户输入并提交的表单元素的值进行查询或者更新数据库。这知构造SQL语句的方法便是将表单元素的值嵌入到SQL语句字符串中去。在登陆页面中,为了对用户身份进行校验,需要用户在页面表单里填写用户名和密码,在ASP代码中,在系统用户信息表里对用户提供的信息进行查询,语句如下:TheUsername=Request.Form("Username")ThePassword=Request.Form("Password")setRSLogin=conn.Execute("select*fromPSLoginswhere"&"LoginID='"_&TheUsername&"'and"&"Password='"&ThePassword&"'")其中的TheUsername和ThePassword都是用户填写的。5.3验证用户的输入作为一个系统必须对用户的输入进行校验,如果不进行校验可能导致不可预知的结果。以系统登陆也面为例,为了辩别用户的身份,要求用户输入登陆名和密码,然后根据用户舒服和在系统用户信息表里查询是否匹配,以验证用户是否合法。如果对用户输入的TheUsername和ThePassword不进行校验的话,用户就可以非法进入系统,例如用户可以构造一个用户名,而密码可以为任何值,其生成的SQL语句为:Select*fromPSLoginswhereLoginID=’me’or1=’1’andPassword=’’因为1=1恒成立,逻辑运算符or的存在使得查询条件无效,所以必须对用户的输入进行校验,使得其中不能包含这种单引号,所以使用了VB内置函数Instr(),代码如下:IfInstr(TheUsername,"'")=0andInstr(ThePassword,"'")=0andInstr(TheUsername,"'")=0_andInstr(ThePassword,"'")=0thensetRSLogin=conn.Execute("select*fromPSLoginswhere"&"LoginID='"_&TheUsername&"'and"&"Password='"&ThePassword&"'")ifRSLogin.EOFthenSession("NumAttempts")=Session("NumAttempts")+1ifApplication("NumAttempts")=0thenTheMessage="登录不成功,请重试:"elseifSession("NumAttempts")>Application("NumAttempts")thenTheMessage="登录不成功,登录次数已满,无法重试"elseTheTimes=Application("NumAttempts")-Session("NumAttempts")+1TheMessage="登录不成功,还有"&TheTimes&"次机会,请重试:"endifelse……另外,在对数据库进行插入和更新操作时,数据库中有些字段在设定时就规定了不能为空,如果输入为空,数据库会出现未知错误。5.4数据库转换本系统的开发是基于windowsXPProfessional环境的,数据库使用的是Access2000。在发布的时候,需要把Access数据库中的数据导入windows2000+SQLserver2000下。在前面已经建立了Access数据库,并完成了数据初始化工作。现在只要将Access数据库转移到SQLServer2000中。在数据库的转移过程中,将使用到一种功能强大且操作简单的数据转移工具DTSWizard。DTSWiza

温馨提示

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

评论

0/150

提交评论