毕业设计论文公文管理系统的设计与实现Word文件下载.docx
《毕业设计论文公文管理系统的设计与实现Word文件下载.docx》由会员分享,可在线阅读,更多相关《毕业设计论文公文管理系统的设计与实现Word文件下载.docx(44页珍藏版)》请在冰豆网上搜索。
![毕业设计论文公文管理系统的设计与实现Word文件下载.docx](https://file1.bdocx.com/fileroot1/2022-11/26/c9c6986f-6b34-44d8-9d8f-e75258435792/c9c6986f-6b34-44d8-9d8f-e752584357921.gif)
(3)机关成员以及集成学区、学校校长可按流程在线起草公文。
(4)用户能够对自己创建的任务进行跟踪,实时监控处理情况。
(5)有权限的用户能够查看教育局发布的公文。
(6)能够登记外来文件,并提供分类检索。
2.1.1用户身份级别要求
系统将用户划分成多个不同的角色,并为每种角色分配不同的操作权限。
用户角色一般根据岗位职务来划分,分别是:
局长、副局长、股长、科员、校长,每个用户都分配管辖范围。
系统运行时,用户可按照自己的角色,在自己管辖范围内行驶相关权利。
同时为简化权限数据存储,系统还规定了一些共同的权限,赋予所有的合法用户。
2.1.2系统功能模块图
图2-1系统功能模块图
2.1.3系统基本模块及主要功能
系统主要包括如下模块:
(1)用户注册登录模块,负责处理用户的注册、登录需求。
(2)待办任务查询模块,负责查询、显示当前分发给用户的所有任务。
(3)已办任务查询模块,负责查询自己单独或参与完成的公文或其他任务。
(4)任务处理模块,负责处理公文在线编辑、公文流转等。
系统设计目标
公文管理系统可以满足现代办公的需要,在Internet上实现公文交流。
系统的基本设计原则有:
先进性与方便性原则、功能实用性原则、开放性与可扩展性原则等。
系统设计时采用通用的技术、协议,确保系统有较长的生命周期。
本系统总体目标是将网络技术、信息技术、现代管理技术和科学的公文管理结合,实现了公文处理的自动化流转。
本系统首先要实现动态性和交互性。
所谓的动态性就是能动态更新内容,如更新个人信息、公文信息、流转信息等。
这要求与数据库有良好的连接;
交互性则要求公文的及时审批和归档。
实现系统的安全性和可靠性,严格、周密的权限管理,确保系统行为有序可控进行,避免非法用户进入破坏数据库信息。
开发环境
2.3.1。
net框架
.NET框架(.NETFramework)是由微软开发,一个致力于敏捷软件开发(Agilesoftwaredevelopment)、快速应用开发(Rapidapplicationdevelopment)、平台无关性和网络透明化的软件开发平台。
.NET是微软为下一个十年对服务器和桌面型软件工程迈出的第一步。
NET包含许多有助于互联网和内部网应用迅捷开发的技术。
.NET框架是一个多语言组件开发和执行环境,它提供了一个跨语言的统一编程环境。
.NET框架的目的是便于开发人员更容易地建立Web应用程序和Web服务,使得Internet上的各应用程序之间,可以使用Web服务进行沟通。
从层次结构来看,.NET框架又包括三个主要组成部分:
公共语言运行时(CLR:
CommonLanguageRuntime)、服务框架(ServicesFramework)和上层的两类应用模板——传统的Windows应用程序模板(WinForms)和基于ASP.NET的面向Web的网络应用程序模板(WebForms和WebServices)。
在.NET框架中,所有的编程语言,从高层Javascript到低层的C++语言,一律是等同的,他们都将生成托管代码,并且可以一次编写,随处运行。
.NET框架还可以使不同的语言进行交互,即一种语言可以使用另一种语言所编写的组件。
的工作原理
在多数场合下,可以将ASP.NET页面简单地看成一般的HTML页面,页面包含标记有特殊处理方式的一些代码段。
当安装.NET时,本地的IISWeb服务器自动配置成查找扩展名为.aspx的文件,且用ASP.NET模块(名为aspnet_isapi.dll的文件)处理这些文件。
从技术上讲,ASP.NET模块分析ASPX文件的内容,并将文件内容分解成单独的命令以建立代码的整体结构。
完成此工作后,ASP.NET模块将各命令放置到预定义的类定义中(不需要放在一起,也不需要按编写顺序放置)。
然后使用这个类定义一个特殊的ASP.NET对象Page。
该对象要完成的任务之一就是生成HTML流,这些HTML流可以返回到IIS,再从IIS返回到客户。
简言之,在用户请求IIS服务器提供一个页面时,IIS服务器就根据页面上的文本、HTML和代码(这对我们来说是最重要的)建立该页面。
2.3.3C#简介
C#(发音为“Csharp”)是微软公司在2006年6月发布的一种新的编程语言,它是一种简单的、现代的、面向对象的和类型安全的变成语言,由C和C++发展而来。
C#牢固的植根于C和C++语言族谱中,并容易被C和C++程序员所熟悉。
C#看起来与Java也有着惊人的相似,与COM(组件对象模型)是直接集成的,而且它是微软公司.NETwindows网络框架的主角.C#的目标在于把VisualBasic的搞生产力和c++本身的能力结合起来,并充分挖掘.Net框架所提供的潜力。
2.3.4Access简介
数据库是一些关于某个特定主体或目的信息集合,例如客户订单或年终报表等。
MicrosoftAccess是一个多用户桌面关系数据库管理系统(RDBMS),同一局域网中的多个用户可以同时访问一个Access数据库。
(1)数据库。
从广义上讲,数据库就是数据或信息的集合,相当于一个数据仓库。
具体地说,数据库是一组经过计算机整理后的数据,由许多数据表组成。
从结构上看,数据库由许多数据表组成,而一个数据表由许多记录组成,一条记录由多个字段组成。
数据库的主要特征包括:
·
数据的结构化:
数据库中的数据是有条理的,有相似特征的数据属于同一个集合。
数据的共享性:
在一个单位的各个部门之间,存在着大量的重复信息。
共享性即允许各个部门共同享有这些信息。
数据的独立性:
指数据记录和数据管理软件之间的独立性。
数据的完整性:
它保证数据库中数据的正确性。
数据库管理系统可以通过对数据的性质进行检查而管理它们。
数据的灵活性:
数据库管理系统不是把数据简单堆积,而是在记录数据信息的基础上具有多种管理功能,如输入、输出、查询、编辑、修改等。
数据的安全性:
一个单位所记录的信息并不是所有的人都有权力查看、更改。
应根据用户的职责把它们的权利分成几个等级,不同级别的人对数据库的使用有不同的权限,以保证数据的安全性。
(2)关系数据库。
数据库管理系统最常用的模型有3种:
层次模型、网状模型和关系模型。
层次模型
层次模型数据库管理系统采用树状结构,它结构简单,不同层次间数据直接关联,但是它很难建立横向关联,数据很容易重复出现,因此用它不能建立较复杂的数据库。
网状模型
网状模型数据库管理系统将每笔记录当成一个节点,节点和节点间可以建立关联,形成一个复杂的网状结构。
它虽能建立复杂的数据库,避免数据的重复出现,但它的关联性很复杂,难以理解,当数据库变得越来越大时就很难维护了。
关系模型
关系模型数据库管理系统采用相互关联又互相独立的多个二维表格来反映各种数据关系。
关系数据模型的基本元素包括表、关键字和关系。
表是关系数据模型中的最重要的概念之一。
关系模型中定义的表是比较严格的,当按照关系模型创建表时,表中必须包含用来将一个表映射到另一个表中,关系定义为映射的结构。
关系模型独有的特征是:
通过使用关键字访问数据的能力(而不是通过额外的嵌入指针)。
根据关系模型设计的数据库好处很多,其中如:
数据输入、更新和删除效率更高。
数据检索、摘要和报告同样效率更高。
因为数据库遵循规范完善的模型,所以行为是可预测的。
因为大量的信息存放在数据库中而不是应用程序中,数据库可以实现某种程序自编文档化。
(3)Access2003
数据库可包含表、查询、报表、页、宏和模块。
使用Access2003进行信息管理,可以在单一的数据库文件中管理所有的信息。
在Access2003中,如果要保存数据,可以为每一种类型的信息创建一个表。
如果要从查询、窗体或报表中的多个表中将数据合并在一起,则可以定义各个表之间的关系。
如果要搜索并检索符合指定条件的数据,包括来自多个表中的数据,则创建查询。
此外,查询也可以更新或删除多条记录,并对数据执行内嵌或自定义的计算。
如果要简单地直接在某个表中查看、输入及更改数据,可创建一个窗体。
在打开一个窗体时,Access2003将从一个或多个表中检索数据,并使用用户“窗体向导”中选择的版面布局或所创建自定义版面布局将窗体显示屏幕上。
如果要分析数据或将数据以特定的方式打印出来,可创建一个报表。
Access2003的数据库实际上就是一个完整的应用程序,它将信息、信息检索及信息处理集成到一个单独的数据库文件中,通过正确设计该数据库文件即可构造功能完备、使用方便的信息管理系统。
在Access2003数据库中,表是存储信息的数据库对象,整个数据库各项功能的实现,都离不开表,因为表中存储的数据是查询、窗体、报表、宏、页及模块工作的基础,其它各种数据库对象的设计,都将围绕表而展开。
例如,查询所检索的数据来自表,窗体、报表及页以表为基础,而宏和模块的功能,在大多数情况下虽不直接作用于表,但使用他们最终仍是为方便利用表中所存储的数据来得到对某一应用程序有用的信息。
在Access2003中设计数据库的基本步骤如下:
(a)确定新建数据库的目的。
(b)确定该数据库中需要的表。
(c)确定表中需要的字段。
(d)明确有唯一值的字段。
(e)确定表之间的关系。
(f)优化设计。
(g)输入数据并新建其它数据库对象。
(h)使用Access2003的分析工具。
Access2003提供两种创建数据库的方法:
可以先创建一个空数据库,然后再添加表、窗体、报表及其它对象,这是最灵活的方法。
但是必须分别定义每一个数据库组件;
也可以使用“数据库向导”,仅一次操作就可以为所选择的数据库类型创建所需的表、窗体及报表,这是开始创建数据库最简单的办法。
无论哪一种方法,在数据库创建之后,都可以在任何时候修改或扩展数据库。
2.3.5系统运行环境
硬件环境:
CPU:
AMDAthlon(tm)IIX2215
内存:
512MB硬盘:
320G
软件环境:
服务器端:
操作系统:
Windows7,网站服务器:
IIS7.0,应用软件:
Access2003、Microsoft.VisualStudio2005平台,
相关组件:
北京点聚公司开发的WebOffice.ocx控件,开源项目Extjs库.
客户端:
WindowsXp,MicrosoftOffice2003,IE浏览器
3相关技术介绍
3.1Ajax技术
AJAX即“AsynchronousJavaScriptandXML”(异步JavaScript和XML),AJAX并非缩写词,而是由JesseJamesGaiiett创造的名词,是指一种创建交互式网页应用的网页开发技术。
这个术语源自描述从基于网页的Web应用到基于数据的应用的转换。
在基于数据的应用中,用户需求的数据如联系人列表,可以从独立于实际网页的服务端取得并且可以被动态地写入网页中,给缓慢的Web应用体验着色使之像桌面应用一样。
统的web应用允许用户填写表单(form),当提交表单时就向web服务器发送一个请求。
服务器接收并处理传来的表单,然後返回一个新的网页。
这个做法浪费了许多带宽,因为在前後两个页面中的大部分HTML代码往往是相同的。
由于每次应用的交互都需要向服务器发送请求,应用的响应时间就依赖于服务器的响应时间。
这导致了用户界面的响应比本地应用慢得多。
与此不同,AJAX应用可以仅向服务器发送并取回必需的数据,它使用SOAP或其它一些基于XML的webservice接口,并在客户端采用JavaScript处理来自服务器的响应。
因此在服务器和浏览器之间交换的数据大量减少,结果我们就能看到响应更快的应用。
同时很多的处理工作可以在发出请求的客户端机器上完成,所以Web服务器的处理时间也减少了。
使用Ajax的最大优点,就是能在不更新整个页面的前提下维护数据。
这使得Web应用程序更为迅捷地回应用户动作,并避免了在网络上发送那些没有改变过的信息。
Ajax不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。
就像DHTML应用程序那样,Ajax应用程序必须在众多不同的浏览器和平台上经过严格的测试。
网页上使用Ajax的一般方式为3各步骤,
第一步:
创建XmlHttpRequest对象,一般使用如下代码:
FunctionCreateXmlHttpRequest(){
varxmlhttp_request="
"
;
try{
if(window.ActiveXObject){
for(vari=5;
i;
i--){
try{
if(i==2){
xmlhttp_request=newActiveXObject("
Microsoft.XMLHTTP"
);
}
else{
xmlhttp_request=newActiveXObject("
Msxml2.XMLHTTP."
+i+"
.0"
xmlhttp_request.setRequestHeader("
Content-Type"
"
text/xml"
);
Charset"
gb2312"
}
break;
catch(e){
xmlhttp_request=false;
}
elseif(window.XMLHttpRequest)
{
xmlhttp_request=newXMLHttpRequest();
if(xmlhttp_request.overrideMimeType)
{
xmlhttp_request.override.MimeType('
text/xml'
}
}
catch(e){
xmlhttp_request=false;
Returnxmlhttp_request;
}
第二步:
发送信息到服务器,并监听、处理服务器返回的数据。
示例代码如下:
Varxpr=CreateHttpRequest();
Xpr.open(‘模式’,网址,true);
Xpr.send(参数信息);
Xpr.onreadystatechange=function(){
if(xpr.readyState==4){
//收到完整的服务器响应
}else{
//访问服务器异常处理代码
}
3.2Extjs简介
ExtJS可以用来开发RIA也即富客户端的AJAX应用,是一个用javascript写的,主要用于创建前端用户界面,是一个与后台技术无关的前端ajax框架。
因此,可以把ExtJS用在.Net、Java、Php等各种开发语言开发的应用中。
ExtJs最开始基于YUI技术,由开发人员JackSlocum开发,通过参考JavaSwing等机制来组织可视化组件,无论从UI界面上CSS样式的应用,到数据解析上的异常处理,都可算是一款不可多得的JavaScript客户端技术的精品。
Ext的UI组件模型和开发理念脱胎、成型于Yahoo组件库YUI和Java平台上Swing两者,并为开发者屏蔽了大量跨浏览器方面的处理。
相对来说,EXT要比开发者直接针对DOM、W3C对象模型开发UI组件轻松。
下面就在本项目开发中用到的一些知识介绍如下。
Extjs对Ajax调用
Ajax技术是当前以数据驱动网页技术的关键。
但是每一种浏览器对Ajax的支持又不尽相同,给我们开发跨浏览器的应用带来了不便。
Extjs库对Ajax进行了很好的封装,它使我们可以忽略各种浏览器接口的差异,使用同一的步骤处理Ajax请求。
在Extjs库中,Ext.Ajax是一个全局的Ajax请求类,提供了使用Ajax请求的简单途径,并具有最大的灵活性。
是客户端想服务端发送请求的重要方法。
主要分两大步骤,第一步是配置请求信息,需要指明目标网址、上传参数以及回调方法;
第二步发送请求。
下面以提交登录信息为例,简要说明如下:
<
scripttype="
text/javascript"
>
functionlogin(){
varrequestConfig={
url:
'
loginServer.jsp'
//请求的服务器地址
form:
'
loginForm'
//指定要提交的表单id
callback:
function(options,success,response){//回调函数
varmsg=["
请求是否成功:
success,"
\n"
服务器返回值:
response.responseText];
alert(msg.join('
));
Ext.Ajax.request(requestConfig);
//发送请求
/script>
br>
formid='
用户名:
inputname='
userName'
type='
text'
密码:
password'
inputtype='
button'
value='
登陆'
onclick='
login()'
/form>
应用Ext.Ajax时,只需在配置请求中提供参数的相关信息,就可以提交多种形式的参数。
若要提交某个表单中的所有数据,则在配置项中添加:
”form:
‘表单id’,”;
若要提交json数据,则在配置项中添加”jsonData”一节,若要提交xml数据,则可添加xmlData一节。
3.2.2Extjs的Panel使用方法
面板Panel是ExtJS控件的基础,很高级控件都是在面板的基础上扩展的,还有其它大多数控件也都直接或间接有关系。
应用程序的界面一般情况下是由一个一个的面板通过不同组织方式形成。
面板由以下几个部分组成,一个顶部工具栏、一个底部工具栏、面板头部、面板尾部、面板主区域几个部分组件。
面板类中还内置了面板展开、关闭等功能,并提供一系列可重用的工具按钮使得我们可以轻松实现自定义的行为,面板可以放入其它任何容器中,面板本身是一个容器,他里面又可以包含各种其它组件。
面板的类名为Ext.Panel,其xtype为panel,下面的代码可以显示出面板的各个组成部分:
Ext.onReady(function(){
newExt.Panel({
renderTo:
hello"
title:
面板头部header"
width:
300,
height:
200,
html:
h1>
面板主区域<
/h1>
tbar:
[{text:
顶部工具栏topToolbar'
}],
bbar:
底部工具栏bottomToolbar'
buttons:
按钮位于footer"
}]
});
面板中可以有工具栏,工具栏可以位于面板顶部或底部,Ext中工具栏是由Ext.Toolbar类表示。
工具栏上可以存放按钮、文本、分隔符等内容。
面板对象中内置了很多实用的工具栏,可以直接通过面板的tools配置选项往面板头部加入预定义的工具栏选项。
比如下面的代码:
tools:
[{
id:
save"
},
{id:
help"
handler:
function(){Ext.Msg.alert('
help'
'
pleasehelpme!
},{id:
close"
}]。
这段代码可以在面板中预定义工具栏上放置三个按钮。
(2)ExtJs的store
EXT中所有和数据相关的类都放在Ext.data命名空间下。
•Store:
最主要的对外交互接口,内部保存了一个数据集。
•Record:
数据集里面的每一条记录。
•DataField:
定义了记录每个字段的schema。
•Proxy:
获取数据的代理。
•DataReader:
把代理读取的数据读入数据集。
Store的实现
•内部用一个Ext.util.MixedCollection(既能够作为map进行索引,又能够作为list进行索引,并且更新数据时会触发事件,并且有一些其它功能的数据结构)作为数据集存