办公自动化管理系统

办公自动化管理系统
办公自动化管理系统

本科生实践教学活动周实践教学成果

成果形式:实践报告+系统

成果名称:办公自动化管理系统

学生姓名:吴艳霞

学号: 0905170119

专业:计算机科学与技术

班级:计本0901

指导老师:许文丽

完成时间: 2012年7月22日

目录

一、绪论 (1)

(一)问题的提出 (1)

(二)本文研究的背景和意义 (1)

(三)需求分析 (1)

1.同类系统存在的问题 (2)

2.数据流图 (2)

3.数据字典 (3)

(四)研究方法和技术路线 (4)

(五)采用的开发工具及特点 (4)

1.开发工具 (4)

2.编程语言 (5)

(六)系统的软硬件环境要求 (5)

二、办公自动化管理系统的设计与分析 (5)

(一)设计原则 (5)

1.开放性原则 (5)

2.实用性原则 (6)

3.先进性原则 (6)

4.可靠性原则 (6)

(二)项目规划 (6)

1.日常管理模块 (6)

2.业务管理模块 (6)

3.用户管理模块 (6)

(三)系统功能结构图 (6)

(四)数据库设计 (7)

(五)界面设计 (7)

1.系统登录模块设计 (7)

2.日常管理模块设计 (8)

(六)主要模块算法设计 (8)

1.个人活动登记管理模块 (8)

2.个人活动管理模块 (10)

3.个人邮件管理模块 (12)

4.名片夹管理模块设计 (14)

三、办公自动化系统的实现与测试 (19)

(一)系统的实现 (19)

(二)系统的测试 (20)

1.用户登录模块测试 (20)

2.日程管理模块测试 (20)

四、设计总结 (21)

参考文献 (22)

一、绪论

(一)问题的提出

随着中国加入WTO及全球经济一体化进程的加快,世界经济已由工业化经济逐步进入网络信息化时代。在信息时代来临之季,各企业都紧跟时代的脚步,转变着企业的经营模式、管理模式,从传统的人工管理体制,向信息自动化管理体制过渡。与此同时,企业的传统式的办公管理模式也在逐步向自动化办公管理模式转变。网络自动化办公系统就是在这样的大背景下应运而生的。

信息时代的到来让人们尝到了“信息爆炸”的滋味,信息的大量拥入让企业在信息处理方便应接不暇,传统的办公模式、对信息的处理方法,早已不能满足企业对信息快速、准确的处理的要求。一个企业对信息数据的掌握程度、处理能力,体现了一个企业对市场的敏感程度,数据的真实性、准确性直接决定着企业的发展方向。从传统的办公模式向自动化办公管理模式转变,提高企业的信息处理能力,以增强企业的市场竞争力,成了企业发展过程中的首要问题。(二)本文研究的背景和意义

传统的办公模式已经显示出低效率和资源的巨大浪费,主要表现在几个方面:

(1)传统的数据存储和处理对以文件、报表、信函、传真等形式为载体的复合文档型数据以及多媒体数据类型渐渐不兼容。

(2)信息资源的流通不畅通导致地区、跨部门之间的协作无法展开。

(3)决策层不能够及时得到足够的信息来做出科学的决策。

(4)缺乏对工作流自动化的支持。

(5)缺乏对移动办公的支持。

(6)缺乏集成其它业务应用系统的能力。

而办公自动化管理系统可以很好的解决这一系列的问题,进而提高企业的办公效率增强企业的竞争能力。

(三)需求分析

经过一点时间的相关调研还有网上搜查,要求本网站具有以下功能:(1)员工通过前台发布和查看公告、公文信息。

(2)设置员工信息的添加、浏览、查找功能。

(3)通过前台可以查看部门和职位信息。

(4)通过前台实现收发信息的功能。

(5)通过后台对部门信息、职位信息进行管理。

(6)后台对员工在职状态信息进行管理。

(7)设置后台员工信息的管理模块。

(8)通过后台管理员工前台登录账号

(9)通过后台实现对邮件信信息进行查看、删除等管理。

(10)通过后台实现查看、删除在线员工信息功能。

1.同类系统存在的问题

传统的办公自动化管理存在的问题有如下几点

(1)传统的手工办公模式下,文档的保存、共享、使用和再利用是十分困难的。在手工办公的情况下文档的检索存在非常大的难度。

(2)传统的办公自动化束缚了人的创造力和想象力,使人们耗费了大量的时间跟精力去手工处理那些复杂的工作,而且手工处理还有延时和差错。

(3)决策层不能够及时得到足够的信息来做出科学

(4)缺乏集成其它业务应用系统的能力。

2.数据流图

员工登陆数据流图:

内部邮件系统的数据流图:

3.数据字典

由于数据字典内容较多,列出重要的数据字典的内容如下所示:

“管理员信息”数据结构的数据项定义

“邮件信息”数据结构的数据项定义

(四)研究方法和技术路线

本文主要阐述一个办公自动化管理系统操作过程。该系统主要是为了主要是针对中小型企业员工管理、信息的传递、发布,日程安排需要开发的应用软件。其功能基本符合用户需求,能够完成员工正常的签到、签退。信息的发布,日程的安排。以及包括如按要求显示考勤记录,文档的添加,附件的上传等功能。主要包括三个功能模块:日常管理模块、业务管理模块、用户管理模块本系统采用的方法是逐个模块检测的方法,通过调整和修改,各个模块都能完成自己的功能,在各个模块都通过测试后,进行总体测试,结果各项功能均已基本达到设计的要求

(五)采用的开发工具及特点

1.开发工具

Visual Studio 开发系统是微软开发的一套开发工具,它包含了微软的几个重要的开发工具,如Visual Basic,C#,Visual C++,J# 等。Visual Studio 经过严格的设计和测试,能够提供良好的一致性、可靠性、安全性、互操作性和兼容性。

Visual Studio 实现了安全功能、可伸缩性和互操作性的完美组合。Visual Studio 不断推出前瞻性功能,但其设计也尽可能确保向后兼容性,简化WEB服务开发,以及快速构建中间层业务组件的能力,本系统决定使用VisualStudio 2008作为开发平台。

2.编程语言

本系统使用SQL Server 2000作为后台数据库,因为SQL Server 2000具有突出的性能、对XML有良好的支持、带有强大的分析和管理工具,采用SQL Server2000,还可以利用其全文搜索功能、集成事务SQL调试器,以及使用灵活的在线分析处理器进行WEB数据访问。SQL Server 2000 也包括了许多新的和改进的功能来帮助IT 工作人员更有效率地工作。SQL Server 2000 包含几个在企业数据管理中关键的增强易管理性、可用性、可伸缩性、安全性、易管理性,SQL Server 2000 使部署、管理和优化企业数据以及分析应用程序变得更简单、更容易。

(六)系统的软硬件环境要求

硬件平台:

CPU:P41.8GHz。

内存:256MB以上。

软件平台:

数据库:SQL Server 2000。

浏览器:IE5.0,推荐使用IE6.0。

Web服务器:IIS5.0。

分辨率:最佳效果1024×768像素。

二、办公自动化管理系统的设计与分析

(一)设计原则

1.开放性原则

系统设计要为发展留有余地。随着用户的需求的增加,系统应能不断扩大其功能,随着新技术的发展,新设备的涌现,系统应能不断提高其性能。应此,系统设计应贯彻模块化思想,底层模块采用变量传递方法,提高程序灵活性、可读

性和编程效率,同时使用动态数据库控制,使系统具有高度灵活性和可维护性。

2.实用性原则

系统设计要密切结合实际公司管理需求,真正解决实际问题。要充分考虑各级管理者的需求,方便使用,建立友好的人机界面。

3.先进性原则

系统设计应尽量采用当今采用当今技术的发展的新思想、新方法和新工具。

4.可靠性原则

系统的每一步设计都要考虑可靠性措施。数据的采集、传输和存取要采取质量把关,访问要有保护措施,每个使用人员都要有自己独立的用户名和口令。(二)项目规划

办公自动化管理系统是一个典型的数据库开发应用程序,由日常管理模块、业务管理模块、用户管理模块组成,规划系统功能模块如下:

1.日常管理模块

该模块包括收文管理模块、发文管理模块、批示管理模块、会议管理模块、公共信息管理模块、个人办公管理模块、人事管理模块。

2.业务管理模块

该模块包括生产报表模块、采购计划模块、库存管理模块、指标情况块。

3.用户管理模块

该模块主要包括用户添加模块、用户管理模块、用户注销模块。

(三)系统功能结构图

办公自动化管理系统功能结构如图1所示。

图1 系统功能结构图

(四)数据库设计

数据库在一个管理系统中占有非常重要的地位,数据设计的优劣将直接对应用系统的效率以及实现的效率产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整性和一致性,从而有利于程序的实现。所以本系统数据库采用SQL Server 2000数据库

(五)界面设计

1.系统登录模块设计

系统登录模块主要用于验证用户登录系统时输入的用户名、密码、验证码是否正确,如果正确用户进入系统,否则将不能进入此系统。系统登录页面的设计

2.日常管理模块设计

日常管理模块主要包括收文管理、发文管理、批示管理、会议管理、公共信息管理、个人办公管理、人事管理7部分。

收文管理模块设计:

收文管理主要用于显示发文人、审批人、发文日期、发文标题,通过单击“发文标题”超链接,可以打开收文的详细信息页面。收文信息以分页形式进行显示。

发文管理模块设计:

发文管理主要包括发布发文、发文删除两部分。

批示管理模块设计:

批示管理主要包括发文批示、发文修改、发文删除,只有当用户是超级用户才有权限进行批示管理,普通用户没有此权限。当审批之后,发文在收文管理页面才能够显示出来。

会议管理模块设计:

会议管理主要包括会议修改、会议删除、会议发布3部分。当用户单击会议标题超链接时,进入相关的会议信息详细页面,可对会议的详细信息进行浏览。

(六) 主要模块算法设计

个人办公管理模块主要包括个人活动登记管理、个人活动管理、个人邮件管理、名片夹管理4部分。

1.个人活动登记管理模块

个人活动登记管理模块主要用于添加个人活动记录。个人活动登记管理页面的设计效果如图2所示。

个人活动登记管理页面所涉及的相关的程序代码如下:

<%

if request("post")=2 then '判断是否接收到表单的值

call wrt1

end if

function wrt1

if request("title")="" or request("content")="" then

response.Write("")

else

set rs=server.CreateObject("adodb.recordset")

sql="select * from gerenhuodong"

rs.open sql,conn,1,3

rs.addnew

rs("title")=request("title") '接收个人活动登记标题

rs("content")=request("content") '接收个人活动登记内容

rs("name")=session("admin_name")

rs("time")=now() '获取当前系统日期和时间

rs.update

rs.close

response.Redirect("chenggong.htm")

end if

end function

%>

个人活动登记管理页面的运行结果如图3所示。

2.个人活动管理模块

个人活动管理模块主要包括个人活动信息删除、对提交个人活动信息进行批准、个人活动信息内容的显示3部分。当用户是超级用户时可以对个人活动信息进行批准和删除操作;而普通用户只能对信息进行修改。个人活动管理页面的设计效果如图4所示。

图4个人活动管理页面的设计效果

当用户为超级用户时可以批准发文、删除发文。个人活动管理页面超级用户时所涉及到的相关程序代码如下:

<%

if request("pass")<>"" then '判断是否接收到表单的值

call geren

end if

function geren

set rs2=server.CreateObject("adodb.recordset")

sql2="select * from gerenhuodong where id="&request("id")

rs2.open sql2,conn,1,3

rs2("pass")=1

rs2("pname")=session("admin_name") '接收批准用户名

rs2.update

rs2.close

end function

if request("del")<>"" then '接收删除的值不能为空

call del

end if

function del

sql2="delete from gerenhuodong where id="&request("del") '删除指定记录

conn.Execute(sql2)

end function

%>

<%

set rs=server.CreateObject("adodb.recordset")

sql="select * from gerenhuodong order by time desc" '将个人活动信息进行降序排列

rs.open sql,conn,1,1

%>

当用户为普通用户时只可以修改发文。个人活动管理页面普通用户时所涉及到的相关程序代码如下:

<%

set rs1=server.CreateObject("adodb.recordset")

sql1="select * from gerenhuodong where id="&request("id")

rs1.open sql1,conn,1,1

session("id")=rs1("id") '建立session("id")

if request("post")="true" then '判断表单是否提交

call wri

end if

function wri

if request("title")<>"" and request("content")<>"" then '接收的标题、内容不允许为空

set rs=server.CreateObject("adodb.recordset")

sql="select * from gerenhuodong where id="&session("id")

rs.open sql,conn,1,3

rs("title")=request("title") '接收修改发文标题

rs("content")=request("content") '接收修改发文内容

rs("name")=session("admin_name") '接收修改用户名

rs("time")=now() '获取当前系统日期和时间

rs.update

rs.close '关闭已打开的记录集

response.Redirect("chenggong.htm") '跳转到指定的动态页面else

response.Write("")

end if

end function

%>

个人活动管理页面的运行结果,如图5所示。

图5个人活动管理页面的运行结果

3.个人邮件管理模块

个人邮件管理模块主要包括个人邮件删除、写邮件、邮件阅读(当邮件被阅读之后,“NEW”标识将会消失)。个人邮件管理页面的设计效果如图6所示。

图6个人邮件管理页面的设计效果

个人邮件管理页面所涉及到的程序代码如下:

<%

tel=0 '设置默认值

if request("del")<>"" then '判断接收的值不允许为空

call del '通过call语句调用del模块

end if

function del

sql2="delete from email where id="&request("del") '判断删除指定的记录

conn.Execute(sql2)

end function

set rs3=server.CreateObject("adodb.recordset")

sql3="select * from email where new=0 and

sname='"&session("admin_name")&"' order by time desc"

rs3.open sql3,conn,1,1

cou=rs3.recordcount

set rs=server.CreateObject("adodb.recordset")

sql="select * from email where sname='"&session("admin_name")&"' order by time desc"

rs.open sql,conn,1,1

%>

<%if rs("new")=0 then%>

<%end if%>

个人邮件管理页面中对邮件的总数进行了统计,统计邮件总数所涉及到的程序代码如下所示:

<%

if not rs.eof then

tel=rs.recordcount

set rs3=server.CreateObject("adodb.recordset")

'用于计算新邮件的数量

sql3="select * from email where new=0 and

sname='"&session("admin_name")&"' order by time desc"

rs3.open sql3,conn,1,1

cou=rs3.recordcount

%>

共有<%=tel%>封邮件新邮件

class="style3"><%=cou%>封

个人邮件管理页面中,单击“写邮件”超链接进入写邮件页面。写邮件页面所涉及到的程序代码如下:

<%

if request("post")=2 then '判断是否接收到表单的值

call wrt1

end if

function wrt1

if request("title")="" or request("content")="" then '判断接收邮件的标题、内

容不能为空

response.Write("")

else

set rs=server.CreateObject("adodb.recordset")

sql="select * from email"

rs.open sql,conn,1,3

rs.addnew '通过addnew()方法向数据库中添加记录

rs("title")=request("title") '接收添加邮件标题

rs("content")=request("content") '接收添加邮件内容

rs("sname")=request("sel")

rs("fname")=session("admin_name") '接收添加邮件用户名

rs("time")=now() '获取当前系统日期和时间

rs.update

rs.close '关闭已打开的记录集

response.Redirect("chenggong.htm")

end if

end function%>

个人邮件管理页面的运行结果如图7所示。

图7个人邮件管理页面的运行结果

4.名片夹管理模块设计

名片夹管理模块主要用于添加名片夹、修改名片夹、删除名片夹、添加名片夹详细信息、名片夹详细信息显示、名片夹详细信息修改、名片夹详细信息删除7部分。

在名片夹管理页面,单击“添加”按钮,添加名片夹名称。添加名片夹名称

页面的设计效果如图8所示。

图8添加名片夹名称页面的设计效果

添加名片夹名称页面所涉及到的程序代码如下:

<%

if request("post")=3 then '判断是否接收到表单值

call w

end if

function w

if request("lanmu")="" then

response.Write(">")

else

set rs=server.CreateObject("adodb.recordset")

sql="select * from lanmu"

rs.open sql,conn,1,3

rs.addnew

rs("lanmu")=request("lanmu") '添加名片夹名称

rs("name")=session("admin_name")

rs.update

rs.close '关闭已打开的记录集

response.Redirect("chenggong.htm") '跳转到指定页面

end if

end function%>

在名片夹管理页面,单击名片信息的“添加”按钮,添加名片的详细信息。添加名片详细信息页面主要用于添加姓名、电话、地址、QQ、email等信息。添加名片详细信息页面的设计效果如图9所示。

图9添加名片详细信息页面的设计效果

添加名片详细信息的程序代码如下:

<%

if request("post")<>"" then

call www

end if

function www

Email=request("email")

if request("name")="" or request("tel")="" or request("address")="" orrequest("qq")="" or request("email")="" then

response.Write("")

elseIf Instr(Email, "@") = 0 Or Right(Email, 1) = "@" Or Left(Email, 1) = "@" Then

response.write ""

Response.End

else

set rs1=server.CreateObject("adodb.recordset")

sql1="select * from lianxi"

rs1.open sql1,conn,1,3

rs1.addnew

rs1("lanmu")=request("lanmu")

rs1("name")=request("name")

rs1("tel")=request("tel")

rs1("address")=request("address")

rs1("qq")=request("qq")

rs1("email")=request("email") '添加email地址

rs1.update

rs1.close '关闭已打开的记录集

response.Redirect("chenggong.htm")

end if

end function

%>

在名片夹管理页中,单击名片夹“管理”超链接,进入名片夹管理页面。名片夹管理主要用于修改名片夹名称、删除名片夹,名片夹管理中删除名片夹的程序代码如下:

<%

if request("del")<>"" then

call del

end if

function del

sql2="delete from lanmu where id="&request("del")

conn.Execute(sql2) '执行sq12语句

sql3="delete from lianxi where lanmu="&request("del") '删除名片夹

conn.Execute(sql3) '执行sq13语句

end function%>

<%

set rs=server.CreateObject("adodb.recordset")

sql="select * from lanmu where name='"&session("admin_name")&"'"

rs.open sql,conn,1,1

%>

修改名片夹所涉及到的程序代码如下:

<%

if request("post")=3 then

call w

end if

function w

if request("lanmu")="" then '判断栏目是否为空

response.Write("