




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 引言引言.3 1.1 编写目的.3 1.2 背景.3 1.3 定义.3 1.4 参考资料.3 2 程序系统的结构程序系统的结构.4 3 程序程序 1 登录功能设计说明登录功能设计说明.5 3.1 程序描述.5 3.2 功能.5 3.3 性能.5 3.4 输入项.6 3.5 输出项.6 3.6 算法.6 3.7 流程逻辑.8 3.8 接口.8 3.9 存储分配.8 3.10 注释设计.9 3.11 限制条件.9 3.12 测试计划.9 3.13 尚未解决的问题.9 4.程序程序 2 主页设计说明主页设计说明.9 4.1 程序描述.9 4.2 功能.9 4.3 性能.10 4.4 输入项.10 4.5 输出项.10 4.6 流程逻辑.10 4.7 接口.11 4.8 存储分配.11 4.9 注释设计.12 4.10 限制条件.12 4.11 测试计划.12 4.12 尚未解决的问题.12 5 程序程序 3 日程管理设计说明日程管理设计说明.12 5.1 程序描述.12 5.2 功能.13 5.3 性能.13 5.4 输入项.13 5.5 输出项.13 5.6 算法.14 5.7 流程逻辑.14 5.8 接口.15 5.9 存储分配.15 5.10 注释设计.16 5.11 限制条件.16 5.12 测试计划.16 5.13 尚未解决的问题.17 6 程序程序 4 系统管理设计说明系统管理设计说明.17 6.1 程序描述.17 6.2 功能.17 6.3 性能.18 6.4 输入项.18 6.5 输出项.18 6.6 算法.19 6.7 流程逻辑.22 6.8 接口.24 6.9 存储分配.24 6.10 注释设计.25 6.11 限制条件.25 6.12 测试计划.26 6.13 尚未解决的问题.26 详细设计说明书详细设计说明书 1 引言引言 1.1 编写目的编写目的 OA 办公自动化系统详细设计是设计的第三个阶段,这个阶段的主要任务是在 OA 办 公自动化系统概要设计书基础上,对概要设计中产生的功能模块进行过程描述,设计功能 模块的内部细节,包括算法和详细数据结构,为编写源代码提供必要的说明。 概要设计解决了软件系统总体结构设计的问题,包括整个软件系统的结构、模块划分、 模块功能和模块间的联系等。详细设计则要解决如何实现各个模块的内部功能,即模块设 计。具体的说,模块设计就是要为已经产生的 OA 办公自动化各子系统设计详细的算法。 但这并不等同于系统实现阶段用具体的语言编码,它只是对实现细节作精确的描述,这样 编码阶段就可以将详细设计中对功能实现的描述,直接翻译、转化为用某种程序设计语言 书写的程序。 1.2 背景背景 为了能跟上现代社会社会生活中高效率的工作节奏,根据企业需求编写了 OA 办公自动 化系统,以达到提高企业工作效率的目的。 1.3 定义定义 SQL Server 2005: 数据库管理软件 Vsual Studio 2005: 开发工具 OA 是 OFFICE AUTOMATION 的缩写,本意为利用技术的手段提高办公的效率,进而实现 办公的自动化处理。采用 Internet/Intranet 技术,基于工作流的概念,使企业内部人员 方便快捷地共享信息,高效地协同工作;改变过去复杂、低效的手工办公方式,实现迅速、 全方位的信息采集、信息处理,为企业的管理和决策提供科学的依据。一个企业实现办公 自动化的程度也是衡量其实现现代化管理的标准。OA 从最初的以大规模采用复印机等办公 设备为标志的初级阶段,发展到今天的以运用网络和计算机为标志的现阶段,对企业办公 方式的改变和效率的提高起到了积极的促进作用。 1.4 参考资料参考资料 MyOffice 概要设计说明书 MyOffice 项目需求分析 MyOffice 数据库设计说明书 2 程序系统的结构程序系统的结构 O A 办 公 自 动 化 管 理 系 统 登录 个人空间 代办事宜 个人设置 修改口令 在线用户 系统消息 在线帮助 日程安排 领导办公系统 电子邮件 领导个人信息维护 信息分类 领导主页信息维护 领导主页浏览 行政办公系统 会议管理 督查督办 值班管理 接待管理 信访管理 专线办管理 政务资源管理 个人办公系统 政务资源管理 文件中心 机关名录 大事记 规章制度 电子论坛 信息报送 电子刊物 电子公告 图 1 程序系统结构 3 程序程序 1 登录功能设计说明登录功能设计说明 3.1 程序描述程序描述 改程序时 OA 办公自动化的入口,体现了程序的安全性 (1)功能类型:查询数据 (2)功能描述:提高系统的安全性 (3)前提业务:无 (4)后继业务:04(日程管理) (5)功能约束:权限约束 (6)操作权限:系统管理员,登录用户。 3.2 功能功能 (1)录入项检测使用 javascript 和后台代码实现(各项必须非空) (2)在 Login.aspx.cs 中只提交用户名和密码; 数据处理:1.登录验证,2.记录登录用户信息 3.3 性能性能 确保系统能正确运行和进行高效访问。 3.4 输入项输入项 表 1 输入项 字段名称长度录入方式是否非空项数据检验默认显示 管理员 ID小于 12文本框YN 管理员密码小于 12PasswordYN 3.5 输出项输出项 页面能正确的跳转到日程管理模块下的个人便签页面下。 3.6 算法算法 1.登录验证 UserInfo user; LoginLog log = new LoginLog(); 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(), , alert(用户名不能为空! );); txtUserId.Focus(); return; if (this.txtPassword.Value.Trim().Length = 0) this.Page.ClientScript.RegisterStartupScript(this.GetType(), , alert(密码不能为空! );); txtPassword.Focus(); return; string login = this.txtUserId.Value.ToString(); bool yes = UserInfoManager.IsUserIdExist(login); if (yes) log.LoginDesc = 用户登录失败,用户名或密码不正确。; log.IfSuccess = 0; LoginLogManager.AddLoginLog(log); this.Page.ClientScript.RegisterStartupScript(this.GetType(), , alert(用户名或密码 不正确!);); else this.Page.ClientScript.RegisterStartupScript(this.GetType(), , alert(您输入的用户 名不存在,请重新输入!);); this.txtUserId.Value = ; this.txtUserId.Focus(); 2.记录登录用户信息 UserInfo user; LoginLog log = new LoginLog(); /获取用户登录名 log.UserId = txtUserId.Value; /获取登录时间 log.LoginTime = DateTime.Now; log.LoginUserIp = Request.UserHostAddress.ToString(); log.LoginDesc = 用户登录成功; log.IfSuccess = 1; /数据验证成功着将数据传入查询方法进行数据操作 LoginLogManager.AddLoginLog(log); /获取当前登录用户 SessionCurrentUser = user; /判断用户角色进行页面转换 if (user.RoleInfo.RoleId = 1) Response.Redirect(/ManualSign/ManualSign.aspx); else Response.Redirect(/ScheduleManage/PersonNote/PersonNote.aspx); 3.7 流程逻辑流程逻辑 登录 提交填写内 容 录入项校验 成功登录数据处 理理 登录成功 功 失败 成功 功 主界面 失败 图 2 流程逻辑 3.8 接口接口 本模块式系统的启动模块,他需要用户交互输入用户 ID、密码;它调用系统的主控制 模块。 3.9 存储分配存储分配 表 2 用户信息数据表 序号序号字段名字段名类型类型长长 度度 精度精度小数小数 位数位数 默认默认 值值 允许允许 空空 主键主键说明说明 1 1 (UserId)管理员ID varchar50 2 2 (password)管理员 密码 varchar50 4 4 UserName(登录用 户姓名) varchar50 4 4 DepartId(部门ID) int10 5 5 Gender(性别) int10 6 6 RoleId(角色ID) int10 7 7 UserStateId(状态 ID) int10 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 重新登录和修改密码输入项 字段名称字段名称长度长度录入方式录入方式是否非空项是否非空项数据检验数据检验默认显示默认显示 管理员管理员 ID小于 12文本框YN 管理员密码管理员密码小于 12passwordYN 注:添加便签和修改便签输入项在日程管理中有说明 4.5 输出输出项项 个人日程信息 4.6 流程逻辑流程逻辑 1.重新登录 图 3 重新登录 2.修改密码 图 4 修改密码 注:添加和修改便签在日程管理中有说明; 4.7 接口接口 图 5 接口 4.8 存储分配存储分配 表 4 用户信息数据表 序号序号字段名字段名类型类型长长 度度 精度精度小数小数 位数位数 默认默认 值值 允许允许 空空 主键主键说明说明 1 1 (UserId)管理员ID varchar50 2 2 (password)管理员 密码 varchar50 3 3 UserName(登录用 户姓名) varchar50 4 4 DepartId(部门ID) int10 5 5 Gender(性别) int10 6 6 RoleId(角色ID) int10 7 7 UserStateId(状态 ID) int10 4.9 注释设计注释设计 1.加在模块首部的注释; 2.加在各分枝点处的注释; 3.对各变量的功能、范围、缺省条件等所加的注释; 4.对使用的逻辑所加的注释 4.10 限制条件限制条件 修改密码时,需先输入原始的密码,验证正确后方可进行重新设置密码的操作。 4.11 测试计划测试计划 主要对主页设计的几个模块进行测试,用户界面测试:测试对象控件或访问入口正确, 符合用户需求;界面风格统一,界面美观,直观。操作有好,人性化,易操作。 4.12 尚未解决的问题尚未解决的问题 在文件中存储文档文件中,不能储存文件名相同,但类型不同的文档可以通过在文件 名忠加入文件类型来解决。但因时间关系,尚未解决。 5 程序程序 3 日程管理设计说明日程管理设计说明 5.1 程序描述程序描述 (1)功能类型:查看、添加、修改、删除数据 (2)功能描述:按照要求对数据进行查查看、添加、修改并删除 (3)前提业务:登录用户为系统管理员 (4)后继业务:031(我的日程)032(部门日程)033(我的便签) (5)功能约束:权限约束 (6)操作权限:系统管理员、一般登录用户, 5.2 功能功能 1.利用树形控件加载出功能页面的链接 2.在我的日程子模块中添加日程是在时间列表控件中点击链接进行跳转 5.3 性能性能 确保系统能高效的进行数据访问 5.4 输入项输入项 表 5 添加我的日程安排 字段名称字段名称长度长度录入方式录入方式是否非空项是否非空项数据检验数据检验默认显示默认显示 我的日程主题我的日程主题文本框YN 预约地点预约地点文本框YN 开始时间开始时间文本框YN 结束时间结束时间文本框YN 日程内容日程内容文本框YN 预约对象预约对象树形控件N 是否公开是否公开复选框N 表 6 添加便签 字段名称字段名称长度长度录入方式录入方式是否非空项是否非空项数据检验数据检验默认显示默认显示 便签标题便签标题文本框YN 便签内容便签内容文本框YN 表 7 查询部门日程 字段名称字段名称长度长度录入方式录入方式是否非空项是否非空项数据检验数据检验默认显示默认显示 机构名称机构名称下拉列表YN 部门名称部门名称下拉列表YN 姓名姓名文本框YN 时间时间文本框YN 5.5 输出项输出项 查看:显示数据库中存在的数据 删除:显示删除后数据库中存在的数据 添加:将数据天津啊进入数据库在显示添加后的数据信息 修改:对数据库中原本存在的某条数据进行修改后在进行展示 5.6 算法算法 HyperLink link = new HyperLink(); link.ImageUrl = /images/add_Schedule.gif; link.ToolTip = 新增个人日程; link.NavigateUrl = SaveMySchedule.aspx?userid= + user.UserId + tc.Controls.Add(link); 5.7 流程逻辑流程逻辑 1.部门日程 图 6 部门日程 2.我的日程 图 7 我的日程 3.我的便签 图 8 我的便签 5.8 接口接口 图 9 接口 5.9 存储分配存储分配 表 8 日程信息表 序号序号字段名字段名类型类型长度长度精度精度小数小数 位数位数 默认默认 值值 允许允许 空空 主键主键说明说明 1 1 ScheduleId(日程 ID) Int10Y 2 2 Title(标题) varchar50Y 3 3 Address(预约地点)varchar 50Y 4 4 MeetingId(会议 ID) IntY 5 5 BeginTime(开始时 间) datetimeN 6 6 EndTime(结束时间)datetime N 7 7 SchContent(日程 内容) varchar500Y 8 8 CreateUser(创建 用户) varchar50Y 9 9 CreateTime(创建 时间) datetimeN 1010 IfPrivate(是否 公开) int 是 Y 5.10 注释设计注释设计 1.加在模块首部的注释; 2.加在各分枝点处的注释; 3.对各变量的功能、范围、缺省条件等所加的注释; 4.对使用的逻辑所加的注释 5.11 限制条件限制条件 在界面上控制输入输出,服务器端如果出错也会也会返回出错信息 5.12 测试计划测试计划 对日程设计进行项目跟踪测试,对输入信息和输出信息进行对比,找出其中可能出现 的异常,对此进行改善。 5.13 尚未解决的问题尚未解决的问题 暂时还没有发现 6 程序程序 4 系统管理设计说明系统管理设计说明 6.1 程序描述程序描述 (1)功能类型:查看、添加、修改、删除数据 (2)功能描述:按照要求对数据进行查查看、添加、修改并删除 (3)前提业务:登录用户为系统管理员 (4)后继业务:051 角色管理 052 登陆日志 053 操作日志 054 菜单排序 (5)功能约束:权限约束 (6)操作权限:系统管理员 6.2 功能功能 图 10 功能图 组织机构部门设置、用户管理、流程管理、表单管理、公文模版管理、角色管理、系 统设置、系统日志、数据备份和恢复管理 6.3 性能性能 系统能高效的进行数据访问和各项操作的更改 6.4 输入项输入项 表 9 输入功能图 字段名称字段名称长度长度录入方式录入方式是否非空项是否非空项数据检验数据检验默认显示默认显示 角色名称角色名称文本框NN 角色描述角色描述文本框YN 人事管理人事管理复选框YN 机构信息机构信息复选框YN 部门信息部门信息复选框YN 员工管理员工管理复选框YN 日程管理日程管理复选框YN 部门日程部门日程复选框YN 我的日程我的日程复选框YN 个人便签个人便签复选框YN 消息传递消息传递复选框YN 消息管理消息管理复选框YN 信箱信箱复选框YN 系统管理系统管理复选框YN 角色管理角色管理复选框NN 登录日志登录日志复选框YN 操作日志操作日志复选框YN 菜单排序菜单排序复选框YN 6.5 输出项输出项 角色管理:输出角色信息; 登录日志:输出相应时间内的登录日志 操作日志:输出相应时间内的操作日志 菜单排序:输出通过上下移动后的树形菜单排序情况 6.6 算法算法 1.分配角色权限中关于复选框选择的问题,怎样处理好选择一个模块时选择其下的子模块 而不选中其他模块的子模块,需要使用用户自定义控件来完成,在后台代码显示方法中这 样写 /得到所有父级点信息 IList sysFuns = SysFunManager.GetAllParentNodeInfo(); /根据父节点得到对应子节点生成用户控件,然后循环插入到PlaceHolder容器中 foreach (SysFun sysFun in sysFuns) /得到父节点Id string nodeId = sysFun.NodeId.ToString(); /得到父节点名称 string displayName = sysFun.DisplayName; /实例化用户控件 SysManage_RoleManage_WebUserControl roleCotrol = (SysManage_RoleManage_WebUserControl)LoadControl(RoleUserControl.ascx); /实例化隐藏区域,用以存父节点Id HtmlInputHidden hidParentMeu = (HtmlInputHidden)roleCotrol.FindControl(hidParentMenu); hidParentMeu.Value = nodeId; /实例化隐藏区域,用以存储角色Id HtmlInputHidden hidRoleId = (HtmlInputHidden)roleCotrol.FindControl(hidRoleId); hidRoleId.Value = roleId.ToString(); /实例化用户控件中的CheckBox CheckBox chkParentMenu = (CheckBox)roleCotrol.FindControl(chkParentMenu); /显示父菜单名称 chkParentMenu.Text = displayName; if (arrRoleParentNodes.Contains(nodeId) chkParentMenu.Checked = true; /把父节点生成的用户控件追加打破PlaceHolder容器中 phRoleDistribute.Controls.Add(roleCotrol); 2.查看登录日志和操作日志时,开始时间和结束时间的获取使用 javascript 代码来实现 function fillstring(str) if(str.length=1) str = 0 + str; return(str); function quickseldate(type) var begintime,endtime; var oneminute = 60*1000; var onehour = 60*oneminute; var oneday = 24*onehour; var oneweek = 7*oneday; var todayDate = new Date(); var date = todayDate.getDate(); var month= todayDate.getMonth() +1; var year= todayDate.getYear(); var day = todayDate.getDay(); if(navigator.appName = Netscape) year = 1900 + year; /- if(type=day) begintime = year.toString() + - + fillstring(month.toString() + - + fillstring(date.toString(); endtime = begintime; else if(type=week) var daytoMon = 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(); begintime = year.toString() + - + fillstring(month.toString() + - + fillstring(date.toString(); todayDate.setTime(todayDate.getTime()+6*oneday); date = todayDate.getDate(); month= todayDate.getMonth() +1; year= todayDate.getYear(); endtime = year.toString() + - + fillstring(month.toString() + - + fillstring(date.toString(); else if(type=month) var dateto1 = date-1; todayDate.setTime(todayDate.getTime()-dateto1*oneday); date = todayDate.getDate(); month= todayDate.getMonth() +1; year= todayDate.getYear(); day = todayDate.getDay(); begintime = year.toString() + - + fillstring(month.toString() + - + fillstring(date.toString(); todayDate.setMonth(month); todayDate.setTime(todayDate.getTime()-oneday); date = todayDate.getDate(); month= todayDate.getMonth() +1; year= todayDate.ge
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 城市燃气管道更新改造项目2025年社会稳定风险评估与风险评估指标创新报告
- 中医药现代化进程中的英国市场拓展研究报告
- 乡村培训机构管理办法
- 临沂阻燃电工管理办法
- 事业编制辞职管理办法
- 仓库周末管理办法细则
- 企业贷款减免管理办法
- 公司印章外出管理办法
- 二手车零售店管理办法
- 云南楚雄垂钓管理办法
- 《红外热成像测温技术》课件
- 孕期安全有效运动课件
- 新能源会计面试题及答案
- 初中电学知识点课件
- 艺术疗愈与心理健康工作室行业深度调研及发展战略咨询报告
- 老年骨质疏松性疼痛诊疗与管理中国专家共识2024解读课件
- 2025年企业健康体检计划及总结
- 英语在生活中的应用
- 急诊医学课件-灾害事故急救课件
- 仪表工安全培训课件
- FOCUS-PDCA医院品质管理获奖案例-提高住院患者入院宣教知晓率
评论
0/150
提交评论