OA办公自动化系统详细设计说明书Word文件下载.docx
《OA办公自动化系统详细设计说明书Word文件下载.docx》由会员分享,可在线阅读,更多相关《OA办公自动化系统详细设计说明书Word文件下载.docx(29页珍藏版)》请在冰豆网上搜索。
1.登录验证,2.记录登录用户信息
3.3性能
确保系统能正确运行和进行高效访问。
3.4输入项
表1输入项
字段名称
长度
录入方式
是否非空项
数据检验
默认显示
管理员ID
小于12
文本框
Y
N
管理员密码
Password
3.5输出项
页面能正确的跳转到日程管理模块下的个人便签页面下。
3.6算法
1.登录验证
UserInfouser;
LoginLoglog=newLoginLog();
log.UserId=txtUserId.Value;
log.LoginTime=DateTime.Now;
log.LoginUserIp=Request.UserHostAddress.ToString();
if(this.txtUserId.Value.Trim().Length==0)
{
this.Page.ClientScript.RegisterStartupScript(this.GetType(),"
"
"
<
script>
alert('
用户名不能为空!
'
);
/script>
txtUserId.Focus();
return;
}
if(this.txtPassword.Value.Trim().Length==0)
密码不能为空!
txtPassword.Focus();
stringlogin=this.txtUserId.Value.ToString();
boolyes=UserInfoManager.IsUserIdExist(login);
if(yes)
log.LoginDesc="
用户登录失败,用户名或密码不正确。
;
log.IfSuccess=0;
LoginLogManager.AddLoginLog(log);
用户名或密码不正确!
'
else
您输入的用户名不存在,请重新输入!
this.txtUserId.Value="
this.txtUserId.Focus();
2.记录登录用户信息
UserInfouser;
LoginLoglog=newLoginLog();
//获取用户登录名
log.UserId=txtUserId.Value;
//获取登录时间
log.LoginTime=DateTime.Now;
用户登录成功"
log.IfSuccess=1;
//数据验证成功着将数据传入查询方法进行数据操作
//获取当前登录用户
Session["
CurrentUser"
]=user;
//判断用户角色进行页面转换
if(user.RoleInfo.RoleId==1)
Response.Redirect("
~/ManualSign/ManualSign.aspx"
~/ScheduleManage/PersonNote/PersonNote.aspx"
3.7流程逻辑
图2流程逻辑
3.8接口
本模块式系统的启动模块,他需要用户交互输入用户ID、密码;
它调用系统的主控制模块。
3.9存储分配
表2用户信息数据表
序号
字段名
类型
精度
小数位数
默认值
允许空
主键
说明
1
(UserId)管理员ID
varchar
50
√
2
(password)管理员密码
4
UserName(登录用户姓名)
DepartId(部门ID)
int
10
5
Gender(性别)
6
RoleId(角色ID)
7
UserStateId(状态ID)
3.10注释设计
模块首部的注释:
用户验证程序。
对调用函数的注释:
调用加密函数MD5.
3.11限制条件
当系统第一次使用时,具有统一的用户ID和密码;
管理员账号和*******。
在三次验证错误后,系统将自动关闭。
3.12测试计划
初次安装该系统后,测试初始用户ID和密码能否正确登录到系统;
正确登陆后,对用户名和密码进行更改;
采用刚修改过的用户ID和密码登陆,应该能够正确登录。
3.13尚未解决的问题
暂时还没有发现。
4.程序2主页设计说明
4.1程序描述
(1)功能类型:
查询、添加、修改数据
(2)功能描述:
按照要求对数据进行查找、添加、修改
(3)前提业务:
登录用户为系统管理员
(4)后继业务:
密码修改、重新登录、
(5)功能约束:
(6)操作权限:
登录用户
4.2功能
1.重新登录,回转到登录页面进行重新输入数据进行登录;
2.修改密码,通过Session获取当前登录用户信息,根据用户信息进行密码修改;
3个人便签盒添加便签在日程管理有讲解;
4.3性能
能进行数据的高效访问
4.4输入项
表3重新登录和修改密码输入项
password
注:
添加便签和修改便签输入项在日程管理中有说明
4.5输出项
个人日程信息
4.6流程逻辑
1.重新登录
图3重新登录
2.修改密码
图4修改密码
添加和修改便签在日程管理中有说明;
4.7接口
图5接口
4.8存储分配
表4用户信息数据表
3
4.9注释设计
1.加在模块首部的注释;
2.加在各分枝点处的注释;
3.对各变量的功能、范围、缺省条件等所加的注释;
4.对使用的逻辑所加的注释
4.10限制条件
修改密码时,需先输入原始的密码,验证正确后方可进行重新设置密码的操作。
4.11测试计划
主要对主页设计的几个模块进行测试,用户界面测试:
测试对象控件或访问入口正确,符合用户需求;
界面风格统一,界面美观,直观。
操作有好,人性化,易操作。
4.12尚未解决的问题
在文件中存储文档文件中,不能储存文件名相同,但类型不同的文档可以通过在文件名忠加入文件类型来解决。
但因时间关系,尚未解决。
5程序3日程管理设计说明
5.1程序描述
查看、添加、修改、删除数据
按照要求对数据进行查查看、添加、修改并删除
031(我的日程)032(部门日程)033(我的便签)
系统管理员、一般登录用户,
1.利用树形控件加载出功能页面的链接
2.在我的日程子模块中添加日程是在时间列表控件中点击链接进行跳转
5.3性能
确保系统能高效的进行数据访问
5.4输入项
表5添加我的日程安排
我的日程主题
预约地点
开始时间
结束时间
日程内容
预约对象
树形控件
是否公开
复选框
表6添加便签
便签标题
便签内容
表7查询部门日程
机构名称
下拉列表
部门名称
姓名
时间
5.5输出项
查看:
显示数据库中存在的数据
删除:
显示删除后数据库中存在的数据
添加:
将数据天津啊进入数据库在显示添加后的数据信息
修改:
对数据库中原本存在的某条数据进行修改后在进行展示
5.6算法
HyperLinklink=newHyperLink();
link.ImageUrl="
~/images/add_Schedule.gif"
link.ToolTip="
新增个人日程"
link.NavigateUrl="
SaveMySchedule.aspx?
userid="
+user.UserId+"
&
today="
+day.Date.ToShortDateString();
tc.Controls.Add(link);
5.7流程逻辑
1.部门日程
图6部门日程
2.我的日程
图7我的日程
3.我的便签
图8我的便签
5.8接口
图9接口
5.9存储分配
表8日程信息表
ScheduleId(日程ID)
Int
Title(标题)
Address(预约地点)
MeetingId(会议ID)
BeginTime(开始时间)
datetime
EndTime(结束时间)
SchContent(日程内容)
500
8
CreateUser(创建用户)
9
CreateTime(创建时间)
IfPrivate(是否公开)
是
5.10注释设计
5.11限制条件
在界面上控制输入输出,服务器端如果出错也会也会返回出错信息
5.12测试计划
对日程设计进行项目跟踪测试,对输入信息和输出信息进行对比,找出其中可能出现的异常,对此进行改善。
5.13尚未解决的问题
暂时还没有发现
6程序4系统管理设计说明
6.1程序描述
(2)功能描述:
(4)后继业务:
051角色管理052登陆日志053操作日志054菜单排序
(6)操作权限:
系统管理员
6.2功能
图10功能图
组织机构部门设置、用户管理、流程管理、表单管理、公文模版管理、角色管理、系统设置、系统日志、数据备份和恢复管理
6.3性能
系统能高效的进行数据访问和各项操作的更改
6.4输入项
表9输入功能图
角色名称
角色描述
人事管理
机构信息
部门信息
员工管理
日程管理
部门日程
我的日程
个人便签
消息传递
消息管理
信箱
系统管理
角色管理
登录日志
操作日志
菜单排序
6.5输出项
角色管理:
输出角色信息;
登录日志:
输出相应时间内的登录日志
操作日志:
输出相应时间内的操作日志
菜单排序:
输出通过上下移动后的树形菜单排序情况
6.6算法
1.分配角色权限中关于复选框选择的问题,怎样处理好选择一个模块时选择其下的子模块而不选中其他模块的子模块,需要使用用户自定义控件来完成,在后台代码显示方法中这样写
//得到所有父级点信息
IList<
SysFun>
sysFuns=SysFunManager.GetAllParentNodeInfo();
//根据父节点得到对应子节点生成用户控件,然后循环插入到PlaceHolder容器中
foreach(SysFunsysFuninsysFuns)
//得到父节点Id
stringnodeId=sysFun.NodeId.ToString();
//得到父节点名称
stringdisplayName=sysFun.DisplayName;
//实例化用户控件
SysManage_RoleManage_WebUserControlroleCotrol=(SysManage_RoleManage_WebUserControl)LoadControl(@"
RoleUserControl.ascx"
//实例化隐藏区域,用以存父节点Id
HtmlInputHiddenhidParentMeu=(HtmlInputHidden)roleCotrol.FindControl("
hidParentMenu"
hidParentMeu.Value=nodeId;
//实例化隐藏区域,用以存储角色Id
HtmlInputHiddenhidRoleId=(HtmlInputHidden)roleCotrol.FindControl("
hidRoleId"
hidRoleId.Value=roleId.ToString();
//实例化用户控件中的CheckBox
CheckBoxchkParentMenu=(CheckBox)roleCotrol.FindControl("
chkParentMenu"
//显示父菜单名称
chkParentMenu.Text=displayName;
if(arrRoleParentNodes.Contains(nodeId))
chkParentMenu.Checked=true;
//把父节点生成的用户控件追加打破PlaceHolder容器中
phRoleDistribute.Controls.Add(roleCotrol);
2.查看登录日志和操作日志时,开始时间和结束时间的获取使用javascript代码来实现
functionfillstring(str)
{
if(str.length==1)
{
str="
0"
+str;
}
return(str);
}
functionquickseldate(type)
varbegintime,endtime;
varoneminute=60*1000;
varonehour=60*oneminute;
varoneday=24*onehour;
varoneweek=7*oneday;
vartodayDate=newDate();
vardate=todayDate.getDate();
varmonth=todayDate.getMonth()+1;
varyear=todayDate.getYear();
varday=todayDate.getDay();
if(navigator.appName=="
Netscape"
)
year=1900+year;
//-->
if(type=="
day"
begintime=year.toString()+"
-"
+fillstring(month.toString())+"
+
fillstring(date.toString());
endtime=begintime;
elseif(type=="
week"
vardaytoMon=day-1;
if(day==0)
daytoMon=6;
todayDate.setTime(todayDate.getTime()-daytoMon*oneday);
date=todayDate.getDate();
month=todayDate.getMonth()+1;
year=todayDate.getYear();
day=todayDate.getDay();
todayDate.setTime(todayDate.getTime()+6*oneday);
endtime=year.toString()+"