OA.docx
- 文档编号:24051407
- 上传时间:2023-05-23
- 格式:DOCX
- 页数:26
- 大小:581.94KB
OA.docx
《OA.docx》由会员分享,可在线阅读,更多相关《OA.docx(26页珍藏版)》请在冰豆网上搜索。
OA
前言
随着国内经济建设的持续发展和知识经济模式的到来,企业以一种前所未有的热情致力于企业内部管理与效率的提高工作上;另一方面,国家对电子政务的推广力度也逐步加大,办公自动化作为其中的一个重要环节,也被要求更好更深入解决问题,达到更多目标。
在这些新形式下,办公自动化系统迎来了新的挑战。
本系统所设计的系统是针对企业、机关办公中存在的信息不畅、效率低下、操作不规范等一系列问题,用信息化手段和新一代的管理思想,提供了强有力的网络化,电子化支持,把协同办公的理念,知识管理的思想带入办公生活,帮助工作单位实现信息化程度的全面提升。
本OA系统包含以下三个模块:
我的邮件、我的短信、我的联系人。
使用SQLServer2000作为后台数据库,使用ASP.NET语言开发。
在运行环境.NETFramework1.1、Windows2000,IE6.0下编译调试通过。
在本系统所实现的模块中,采用了用户界面和系统功能分开的反复市来实现,每个模块所实现的功能都在相应的类中完成,这样对于代码的维护和升级带来了极大的便利。
对于数据库的存取,全部都是使用存储过程来实现的存储过程是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。
用户特定存储过程的名字并给出参数来执行它。
存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。
1.ASP.NET技术介绍及数据库技术
1.1ASP.NET简介
ASP.NET是一种将各种Web元素组合在一起的服务器技术,是一个统一的Web开发平台,它提供了生成一个完整的Web应用程序所必需的各种技术。
ASP.NET是一个以编译的,基于.NET的环境,可以使用任何与.NET兼容的的语言(包括VisualBasic.NET,C#和JScript.NET)来创建相应的应用程序。
另外,任何ASP.NET应用程序都可以使用整个.NETFramework。
开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等[1]。
1.1.1ASP.NET中的并行(side-by-side)支持
.NETFramework允许在同一台计算机上安装运行库的多个版本。
默认情况下,在已经安装了.NETFramework的计算机上安装新的.NETFramework时,所有的ASP.NET应用程序都会自动更新以使用新安装的.NETFramework版本。
唯一的例外是那些绑定到不兼容的运行库版本或更新的运行库版本的应用程序。
尽管更高版本的.NETFramework具有向后兼容性,您仍可能需要相应地配置ASP.NET应用程序以使用某种旧版本。
1.1.2ASP.NET缓存功能
ASP.NET允许您在具有HTTP 1.1功能的机制上缓存动态页的整个响应内容,这些机制指浏览器、代理服务器和您的应用程序所驻留的Web服务器等。
这为您提供了一个强有力的方式来提高Web应用程序的性能。
此技术叫做输出缓存,它允许从缓存满足后面的对特定页的请求,这样当后面的请求发生时就不需要运行最初创建页的代码。
使用该技术来缓存站点中最经常访问的页可以充分地提高Web服务器的吞吐量(通常以每秒的请求数计算)。
1.1.3ASP.NET访问数据库
从ASP.NET应用程序访问数据库是向Web站点访问者显示数据的常用技术。
ASP.NET包含数据访问工具,利用这些工具,您可以比以前任何时候都方便地设计站点,以允许您的用户通过Web页与数据库进行交互。
ASP.NET可以通过其独有的控件插入,更新,删除数据库中数据。
1.2数据库技术
数据库系统是一个实际可运行的存储、维护和应用系统提供数据的软件系统,是存储介质、处理对象和管理系统的集合体。
它通常由软件、数据库和数据管理员组成。
数据库由数据库管理系统统一管理,数据的插入、修改和检索均要通过数据库管理系统进行。
数据库管理系统是一种系统软件,它的主要功能是维护数据库并有效地访问数据库中任意部分数据。
对数据库的维护包括保持数据的完整性、一致性和安全性。
用SQLServer2000开发数据库,建立库表结构,SQLServer2000就是关系数据库开发工具,数据库能汇集各种信息以供查询、存储和检索。
SQLServer2000的优点在于它能使用数据表示图或自定义窗体收集信息。
数据表示图提供了一种类似于Excel的电子表格,可以使数据库一目了然。
另外,SQLServer2000允许创建自定义报表用于打印或输出数据库中的信息。
ASP.NET提供了各种管理数据的工具和方式,用户可利用数据控件与结构不同的数据库发生联系,并且对它们进行读写操作。
以下是ASP.NET提供的几种数据库技术的使用方法:
ASP.NET包含数据访问工具,利用这些工具,您可以比以前任何时候都方便地设计站点,以允许您的用户通过Web页与数据库进行交互。
.NETFramework中有两个用于访问企业数据库的数据提供程序:
OLEDB.NETFramework数据提供程序和SQLServer.NETFramework数据提供程序。
本系统采用的是OLEDB.NETFramework数据提供程序:
从ASP.NET访问SQLServer2000数据库:
1.使用SqlConnection类创建一个数据库连接。
2.使用SqlDataAdapter类从数据库中选择一组记录。
3.使用SqlDataAdapter类填充新的DataSet。
4.当使用SqlDataAdapter时,请使用SqlCommand查询选择记录,并创建一个从SqlCommand对象的ExecuteNonQuery方法返回的SqlDataAdapter。
在某些情况下(例如当需要对一组数据进行排序或筛选时),也可能需要基于DataSet为所需表创建一个新的DataView。
5.将服务器控件(如DataGrid)绑定到DataSet、OleDbDataAdapter或DataView。
.NETFramework包含三个便于显示大量数据的控件:
Repeater控件、DataList控件和DataGrid控件。
这三个控件都使用相似的数据绑定过程。
2.系统设计
2.1功能模块简介
个人办公系统包含以下3个模块:
我的邮件、我的短信、我的联系人。
邮件用语网络时代协同工作的重要工具,主要应用于企业级的通信、协作Internet/Intranet实现。
使用系统的邮件模块可以方便员工之间的沟通,提高工作效率。
系统自动为每个员工提供了一个内部邮箱,邮箱预设了3个邮件夹(收件夹、发件夹、垃圾夹),每个邮件夹都可以对邮件进行排序,方便于邮件的精确定位。
我的邮件模块包括“收件箱”、“发件箱”、“废件箱”、“撰写新邮件”4个功能模块。
我的短信模块为用户提供了一个便利、快捷的交流功能,并且结合其他模块实现了非常强大的提醒、催办功能。
我的短信模块包括“我的消息”、“已发送消息”、“写新消息”3个功能模块。
我的联系人模块实现对用户常用联系人进行管理的功能,并且与系统紧密集成,联系人分为3类,分别是员工联系人、客户联系人、自定义联系人。
我的联系人模块包括“添加联系人(员工联系人、客户联系人)”、“添加联系人(自定义联系人)”、“删除联系人”、“修改联系人”3个功能模块。
2.2模块的设计及程序预览
根据上一节分析得到以下所示的功能模块图。
1.我的邮件模块
1)收件箱
这里将显示当前用户收到的所有邮件,按照时间的先后顺序依次排列,最新接收的邮件将显示在最上面,单击击栏目进行排序,再次单击将按相反方向进行排序(▲▼表示升序和倒序),界面如下:
收件箱界面
单击邮件标题将显示邮件的具体内容,包括收件人、发件人、抄送人、密抄人、邮件
标题及内容等,如下图所示。
如果此邮件带附件的话,将会依次在附件位置分行显示,单击附件,将会弹出是否下载对话框,提示是否下载。
邮件详细资料界面
单击“保存”按钮,将附件保存到本机,单击“打开”按钮,将在当前位置打开此文件。
在邮件内容的下方,分别放有“回复”、“转发”、“返回”、“删除”4个按钮,功能分别如下:
回复对发件人进行邮件回复。
转发将此邮件转发给其他人。
删除删除此邮件。
返回返回邮件列表。
2)发件箱
这里将存放已发送过的邮件的副本,可以方便地进行历史邮件的查询、排序,功能
收件箱。
3)废件箱
这里将存放删除过的邮件,以便以后在恢复。
如果想彻底删除邮件,请在次箱中再进
行删除操作,就可以彻底删除该邮件。
其他功能同发件箱。
4)撰写新邮件
界面如下所示。
点击“选择收件人”按钮,弹出收件人选择窗口,双击左边的人员名
称,就可以将此人员添加至收监人文本框中,也可以多选。
当选择结束后,单击“确定”按钮,在相应文本框中将会出现刚才所选择的人员。
这样就完成了人员的选择。
在下方提供了4个附件上传按钮,可以方便的添加附件,附件数量不限。
在完成收件人的选择、邮件内容的撰写、附件的添加后,单击“发送”按钮,则会弹出对话框“发送成功!
”,表示此邮件已经发送成功。
发送新邮件
另外在界面上方提供了“全选”、“取消”、“删除”3个功能按钮及一个“移动至”下拉列表,如图所示。
全局邮件管理功能按钮
功能分析分别如下:
全选选中当前页的所有邮件。
取消取消当前的选择。
删除删除所选中的邮件。
移动至将选中邮件移动至选择邮箱。
2.我的短信模块
1)我的消息
我的消息是指所有我接收的消息,以列表形式呈现出来,其中包括发送者、内容、短
信类型、是否已读、发送时间这几个选项,如图所示。
我的消息主界面
2)已发送消息
这里存放的已发送消息的历史记录。
3)写新消息
这里提供一个发送消息的界面,在发送内容框中填入想发送内容,单击“选择人员”
按钮,将会弹出人员选择对话框,如图所示。
选择人员对话框
如果想给某个用户发送站内短信,请将此用户加入到站内短信框中,如果是手机短信,则加入至手机短信框中,选择完成后,请单击“确定”按钮。
实现发送手机短信需要短信网关提供相应的接口,此处本程序没有。
如果希望给其他用户发送手机短信时,请在“附加手机号码”栏中依次添入需要发送至的手机号码,其中多个号码间用“,”相隔。
单击“确定”按钮,将会被排入发送阵列。
3.我的联系人模块
1)添加联系人(员工联系人、客户联系人)
联系人的类别:
联系人模块与系统其他模块集成,联系人来自公司员工(所有使用该系统的用户账号)、客户联系人(客户模块中由该用户添加客户的联系人)、自定义联系人。
通过在选择框中选取不同类别的联系人类别来分别添加联系人到用户不同的联系人类别中,如图所示。
我的联系人主界面
添加操作(仅用于“公司员工”和“客户联系人”添加界面中):
当选中了联系人后进行添加操作,完成后该联系人就被添加到用户的联系人列表中了。
人员选择框:
灰色的选择框表示该人员已经在您的联系人列表中了,无法重复加入。
可选选择框表示该人员目前还不在您的联系人列表中,可以进行添加操作。
2)添加联系人(自定义联系人)
界面如下:
添加自定义联系人
填完需要的资料后,单击“确认”就完成了“自定义”联系人的添加。
自定义联系人并不属于任何其他的模块,所以他可以自由地删除和添加。
3)删除联系人
在“员工联系人”和“客户联系人”类别的联系人列表中单击“删除”按钮,则仅仅从联系人列表中将其删除而没有彻底删除联系人的原始信息,因为它与其他模块关联。
如果在“自定义联系人”类别的联系人列表中“删除”联系人则会将此联系人的原始信息一并删除,因为他不属于其他模块。
4)修改联系人
“员工联系人”和“客户联系人”的信息是无法在联系人列表中更改的,只有自定义联系人的内容可以更改。
单击“自定义联系人”的名字就会进入修改自定义联系人的界面,修改完信息后单击“修改”按钮提交修改,如图所示。
修改自定义联系人的详细信息
3.用户登录模块的实现
在ASP.NET中的Web程序设置用Web.config来存储数据库连接字,通过XML来记录信息。
3.1逻辑功能设计
ASP.NET的身份验证方式有3种,分别是Windows、Froms、Passport,其中又以Forms
验证用的很多,也最灵活。
在本模块中采用的是Froms的方式进行验证。
Froms验证方式对基于用户的验证授权提供了很好的支持,可以通过一个登录页面验证用户的身份,将此用户的身份发回到客户端的Cookie,之后此用户再访问这个Web应用时就会连同这个身份Cookie一起发送到服务端。
服务端上的授权设置就可以根据不同目录对不同用户的访问授权进行控制了。
身份验证
采用Froms身份验证,先要在应用程序根目录中的Web.config中设置。
身份验证票包含信息;
CookiePath返回发出Cookie的路径。
注意,穿体的路径设置为/。
由于窗体区分大小写,这是为了防止站点中URL的大小写不一至而采取的一种措施。
这在刷新Cookie时使用。
Expiration获取Cookie过期的日期/时间。
IsPersistent如果已发出持久的Cookie,则返回true.否则,身份验证Cookie将限制在浏览器生命周期范围内。
IssueDate获取最初发出Cookie的日期/时间。
Name获取与身份验证Cookie关联的用户名。
UserData获取存储在Cookie中的应用程序定义字符串。
Version返回字节版本号供将来使用。
2.访问授权
验证了身份后,就可以根据不同的身份进行不同的操作处理了,最常见的就是对不同的身份进行不同的授权,Froms验证就提供这样的功能。
Froms授权是基于目录的,可以针对某个目录来设置访问权限,比如,这些用户可以访问这个目录,那些用户不能访问这个目录。
下面介绍一下授权的详细过程。
一旦一个用户访问这个网站,并登录确认身份,身份验证票的Cookie也写到了客户端。
之后,这个用户再次申请这个Web的页面,身份验证票的Cookie就会发送到服务端。
在服务端,ASP.NET为http请求都分配一个HttpApplication对象来处理这个请求,在Web端已经建立起来,这个身份完全是由客户端发送回来的身份验证票的Cookie建立的。
用户身份在HttpContext.User属性中,在页面中可以通过Page.Context来获取同这个页面相关的HttpContext对象。
对于Forms验证,HttpContext.User属性是一个GenericPrincipal类型的对象,GenericPrincipal只有一个公开的属性Identity,有个私有的m_role属性,是string[]类型,存放此用户是属于哪些role的数组,还有一个公开的方法IsInRole(stringrole),来判断此用户是否属于某个角色。
由于身份验证票的Cookie中根本没有提供role这个属性,就是说Forms身份验证票没有提供此用户的role信息,所以,对于Forms验证,在服务端得到的GenericPrincipal
用户对象m_role属性永远是空的。
GenericPrincipal.Identity属性是一个FormsIdentity类型的对象,这个对象有个Name属性,就是此用户的标示,访问授权就是此属性作为user来进行授权验证的。
FormsIdentity还有一个属性,就是Ticket属性,此属性是身份验证票FormsAuthenticationTicket类型,就是之前服务器写到客户端的身份验证票。
服务器在获取到身份验证票FormsAuthenticationTicket对象后,查看这个身份验证票是不是非持久的身份验证,是的话要根据web.config中timeout属性设置的有效期来更新这个身份验证票的Cookie
在HttpApplication.ResolveRequestCache事件之前,ASP.NET开始取得用户请求的页面,建立HttpHandler控制点。
着意味着,在HttpApplication.ResolveRequestCache
事件要对用户访问权限进行验证,看此用户或角色是否有权限访问这个页面,之后在这个请求的生命周期内再改变此用户的身份或角色就没有意义了。
以上是Forms验证的全过程,可以看出,这个Forms验证是基于用户的,没有为角色的验证提供直接支持。
身份验证票FormsAuthenticationTicket中的Name属性是用户标示,其实还有一个属性UserData,这个属性可以由应用程序来写入自定义的一些数据,我们利用这个字段来存放role的信息,从而达到基于角色验证的目的。
3.2数据库设计与实现
建立数据表_Staff来保存职员的基本信息,结构如表所示:
职员基本信息表
其Staff_Name是职员用于登录的登录名称,Password存放职员登录时候使用的密码。
3.3用户界面与数据访问
登录页面的路径为“~/Module/Login/index.aspx”,界面如图所示:
职员登录界面
当页面第一次加载的时候,检测客户锻Cookie是否保存了以前登录的时候保存的用户名,如果保存有,则取出该值,赋给用户名的文本框中。
当职员登录的时候,校验输入是否正确,如果错误,则给出显示错误信息,如果帐号密码正确,则在客户端保存Cookie,页面重定向到登录成功的页面。
4我的邮件模块的实现
4.1逻辑功能设计
在本模块中实现的功能相当于一个简单的邮件管理系统,所不同的仅仅是仅供内部使用,无法和外部的邮件系统进行通信。
这也保证了邮件的安全性。
4.2数据库设计与实现
下面建立数据表TabMailList来保存职员的来往信件,结构如下:
职员邮件明细表
4.3用户表示与数据访问
1.发件箱、收件箱和废件箱设计
页面如下:
2.撰写新邮件
撰写新邮件的页面主要实现“回复”、“转发”和“撰写新邮件”的功能,根据传
入的参数Action来判断“回复”、“转发”还是“撰写新邮件”功能。
设计界面如下:
撰写新邮件界面
下面完成如何选择收件人、抄送人、密抄人,为了保证邮件系统的正确性,收件人、抄件人、密抄人必须从列表中选择,因此建立一个新页面,以供使用者用。
界面如下:
收件人、抄送人、密抄人的选择界面
3.阅读邮件
如何实现接收到的邮件的阅读,如果有附件则允许下载的过程。
阅读邮件的界面如:
阅读邮件的设计期界面
5我的短信模块的实现
5.1逻辑功能设计
我的短信模块为用户提供了一个便利、快捷的交流的功能,并且结合其他模块实现了提醒功能。
系统自动为每个职员提供了内部短信帐号,用登录名来区分,此模块的功能和我的邮件很相似,其实有很大的不同。
我的邮件模块经过扩展可以收发外部邮件系统的邮件,而我的短信模块经过扩展则可以收发手机短信。
需要短信网关的支持。
5.2数据库设计与实现
建立的数据表UDS_SMS_Msg来保存职员的短信,结构表如下:
职员短信表
数据表UDS_SMS_Receiver保存职员短信的接受者,结构表如下:
短信接收者表
5.3用户表示与数据访问
1.我的消息和以发送消息
我的消息和已发送消息只是当前消息的两种不同的状态,因此使用了一个页面完成两个页面的功能,界面如下:
我的消息和已发送消息设计界面
2.写新消息
写新消息的设计界面如下:
撰写新信息
6.我的联系人模块的实现
6.1逻辑功能设计
我的联系人模块实现对用户常用联系人进行管理的功能,并且与系统紧密集成,联系人分为3类,分别是员工联系人,客户联系人、自定义联系人。
联系人的类别分为公司员工、客户联系人、自定义联系人类。
通过在选择框中选取不同类别的联系人类别来分别添加联系人到拥护不同的联系人类别中。
6.2数据库设计与实现
建立数据表UDS_Linkman_LinkmanList来保存职员的联系人,结构如下表:
职员联系人表
职员自定义联系人的详细信息表
职员的自定义联系人分类表
职员的自定义联系人分类结果表
6.3用户表示与数据访问
1.员工联系人、客户联系人和自定义联系人设计时界面如下:
2.新增员工联系、客户联系人和自定义联系人
新增员工联系、客户联系人和自定义联系人设计界面如下:
新增员工联系、客户联系人和自定义联系人设计期截图
在这个页面中实现添加操作,当选中了联系人后进行添加操作,完成后该联系人就被添加到用户的联系人列表中了。
人员选择框:
灰色的选择框表示该人员已经在您的联系人列表中了,无法重复加入。
可选选择框表示该人员目前还不在您的联系人列表中,可以进行添加操作。
对于自定义联系人,填完需要的资料后,单击“确认”按钮就完成了“自定义”联系人的添加。
自定义联系人并不属于任何其他模块,所以它可以自由的删除和添加。
该页面如下:
新增自定义联系人设计期截图
3.删除联系人
页面如下:
结论
个人办公系统主要是为了给广大用户提供更多的方便,提高个人办公的工作效率。
本系统可以让用户方便、迅速的查找到所需资料,并且以信誉度机制使网络上的信息流通的处理得到最大限度的安全保障。
经过一个多月的努力,我实现了其中的用户信息管理模块,商品查询及商品讨论模块中的信誉度评定模块,以及系统管理模块中的商品讨论管理模块。
现在个人办公系统已经能正常运行和使用了,个人或公司可以利用他有效的处理一些个人和公司的事情,可以发布邮件讨论,可以对用户进行信誉度评价,还可以通过短信息方式以及打电话的方式与客户职员,朋友联系商务事情了,为用户提供了很多的方便以及提高了个人办公的效率。
但是由于毕业设计时间较短我和同伴能力的不足,所以该系统还有许多不尽如人意的地方,比如详细设计不够,缺少联机文档,用户界面不够美观,出错处理不够等多方面问题。
这些都有待进一步改善。
特别是在易用性方面还存在不少问题。
这些都是在做开发时做的不够的地方,以后我将尽量注意相关问题,争取做得更好。
参考文献
[1]郑阿奇主编|顾韵华周淑琴黄群编著.《ASP.NET实用培训教程》.——北京:
电子工业出版社,2004.9174-271页
[2]老虎工作室刘遵仁于忠清编著.《SQLServer中文版基础培训教程》.——北京.人民邮电出版社,2002.9:
251-265页
[3]陈明,王智广.《软件工程实验》.第一版.北京.中央广播电视大学出版社,2001年:
7-15页
[4]史济民,顾春华.《软件工程-----原理,方法与义勇》.第二版.北京.高等教育出版社,2002年:
1-262页
[5]微软公司.《VisualBasic.Net语言参考手册》.第一版.北京.清华大学出版社,2002年:
2-45页
[6]覃征,杨利英.《软件项目管理》.第一版.北京.清华大学出版社,2004年:
21-29页
[7]黄敬仁.《系统分析》.第一版.北京.清华大学出版社,2002年:
27-100页
[8]李建中,王删.《数据库系统原理》.第一版.北京.电子工业出版社,1998年:
20-4
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- OA