办公自动化OA系统
- 格式:doc
- 大小:1.37 MB
- 文档页数:29
毕业设计(论文)题目办公自动化OA系统计算机与通信工程系计算机应用技术专业 09 级姓名学号指导教师二○一二年二月目录摘要 (4)第一章绪论 (5)第二章系统分析 (6)2.1 需求分析 (6)2.2 架构设计 (6)2.2部门管理 (8)2.3员工管理 (10)2.4日程管理模块 (12)2.5 获取用户登录信息部分代码 (13)第三章数据库的设计和实现 (18)3.1数据库需求分析 (18)3.2数据库概念结构设计 (18)3.3 数据库关系图 (20)3.4 数据表的设计 (20)3.4.1所有表信息 (20)3.4.2UserInfo用户信息表 (21)3.4.3表UserState用户状态表 (22)3.4.4 表RoleInfo角色信息表 (22)3.4.5表SysFun菜单信息表 (22)3.4.6表RoleRight角色权限表 (22)3.4.7表BranchInfo机构信息表 (23)3.4.8表DepartInfo部门信息表 (23)3.4.9表FileInfo文件信息表 (23)3.4.10表FileTypeInfo文件类型表 (24)3.4.11表AccessoryFile附件文件表 (24)3.4.12表ManualSign考勤信息表 (24)3.4.13表WorkTime上下班时间表 (25)3.4.14表Message消息表 (25)3.4.15表MessageType消息类型表 (25)3.4.16表MessageToUser消息发送对象 (25)3.4.17表ReadCommonMessage用户已读消息表 (26)3.4.18表Schedule日程表 (26)3.4.19表MeetingInfo会议类型表 (26)3.4.20表PreContract预约人表 (27)3.4.21表MyNote个人便签表 (27)3.4.22表LoginLog登录日志表 (27)3.4.23表OperateLog操作日志表 (28)第四章系统测试 (29)4.1 测试内容 (29)4.2 测试环境 (29)4.3 测试目标 (29)4.4 性能测试 (29)第五章结束语 (30)致谢 (30)参考文献 (30)办公自动化OA系统【摘要】在市场竞争中,如何让企业信息化建设起来至关重要。
本系统采用动态网页技术和Microsoft SQL Server 数据库平台,使用C#作为本项目的主要开发语言,结合B/S模式结构,从实际应用出发,完成系统的个人通讯录、个人信息、个人审批、个人考勤等功能,对于办公流程如签字审批等功能暂不支持。
【关键词】办公自动化 B/S【Abstract】In market competition, how to make the enterprise information construction up is veryimportant. In this case, the development of OA automatic office system is half a top priority. The system USES the dynamic web technology and Microsoft SQL Server database platform, using c # in the project as the main development language, combined with the B/S model structure, from a practical application perspective, complete system of personal contacts, personal information, personal approval, personal attendance, and other functions, to office procedures like signature examination and approval of the function are not support.【K eywords】OA automatic B/S第一章绪论为了提高现代社会人们的办公效率,满足人们自动化办公的需要,我们开发了这套稳定可靠、操作方便的OA半自动化办公系统,本系统主要包括文件管理、人事管理、日程管理、文档管理、消息传递、系统管理、考勤管理等7个部分。
办公自动化(Office Automation,简称OA)是将现代化办公和计算机网络功能结合起来的一种新型的办公方式。
办公自动化没有统一的定义,凡是在传统的办公室中采用各种新技术、新机器、新设备从事办公业务,都属于办公自动化的领域。
在行政机关中,大都把办公自动化叫做电子政务,企事业单位就大都叫OA,即办公自动化。
通过实现办公自动化,或者说实现数字化办公,可以优化现有的管理组织结构,调整管理体制,在提高效率的基础上,增加协同办公能力,强化决策的一致性,最后实现提高决策效能的目的。
本系统提供OA办公中常用的功能如文件管理、人事管理、日程管理、文档管理、消息传递、系统管理、考勤管理等,对于办公流程如签字审批等功能暂不支持。
第二章系统分析2.1 需求分析系统需求分析:是系统分析员按照系统的思想结合自身的系统开发经验,根据收集的资料对系统目标进行分析,对组织的信息需求、功能需求、辅助决策需求以及管理中存在的问题等进行系统的分析。
通过调查,要求系统具有以下的功能:1、人事管理包括机构管理、部门管理、员工管理2、日程管理包括我的日程、部门日程、我的便签等功能3、文档管理文档管理、回收站、文件搜索4、消息传递消息管理、信箱5、系统管理包括角色管理、操作日志、登录日志、菜单排序。
6、考勤管理考勤管理、考勤历史查询2.2 架构设计本系统采用+SQLServer2008技术。
使用传统三层结构作为框架,运用WEBFORM服务器控件方式实现。
如图2-1 2-2 所示图2-1架构图图2-2 架构图本系统界面采用DIV+TABLE布局完成,尽量采用DIV+CSS布局,如图2-3用户登图所示,只有用户名密码都验证正确后才可进入系统。
图2-3 用户登图用户登录后根据权限所看到的界面不一样。
管理员登陆界面显示个人便签信息,左侧显示系统菜单和个人基本信息,上标栏有“主页”、“重新登录”、“修改密码”、显示当前时间功能。
如图2-4管理员登录图所示。
图2-4管理员登录图普通会员登录后直接到个人签到页面,其他同管理员登录。
签卡日期不能为空,且为日期型。
如图2-5普通用户登录图所示。
图2-5普通用户登录图2.2部门管理保存部门信息页面功能要求:所属机构下拉菜单绑定机构信息表,注意输入框有效性验证。
如果是修改部门则要显示选定部门的基本信息。
部门负责人右侧的图标是“选择用户”按钮,点击后以树型显示所有用户,且按机构、部门分类。
如图2-6保存部门信息图所示:图2-6保存部门信息图部门管理页面功能要求:用GridView显示所有部门信息,如上图所示,该页面有部门增加、删除、修改功能。
点“添加部门”按钮,或点修改图标都进入保存部门信息页面,该页面效果如图2-7部门功能要求图所示:图2-7部门功能要求图2.3员工管理员工管理页面功能要求:用GridView展示所有用户基本信息,页面有用户添加、修改、删除和浏览详情功能,执行增、删、改成功后,GridView重新绑定显示用户信息。
点“添加用户”按钮和修改用户图标进入用户信息保存页面,如图2-8员工管理功能图所示:图2-8员工管理功能图保存用户信息页面功能要求:用户信息要求非空和有效性验证,“所在部门”下拉菜单项来自数据库DepartInfo表,文本和值分别对应DepartName和DepartId字段(后续机构和部门下拉菜单项都来自对应的表,不再赘述)。
点“浏览”按钮可以选择用户照片,如图2-9保存用户信息图所示:图2-9保存用户信息图点“保存”按钮添加该用户,然后跳转到员工管理页面,同时把图片上传到“网站根目录/images/Users”文件夹中。
注意这里文件名定义为:用户登录名 + “.jpg”格式,如刚才上传的图片添加用户后保存为“admin.jpg”2.4日程管理模块日程管理包括3个子模块如图2-10日程管理图所示:3个子模块图2-10日程管理图我的日程安排页面功能要求:要求填写日程主题、日程地点、会议类型(下拉菜单数据项与MeetingInfo表字段对应)、开始时间、结束时间、提醒内容、预约他人一起参与,同时可以选择是否公开日程,如果公开日程,则部门内其他人在部门日程中可以查看您的日程,如果不公开,其他人看不到您的日程,同时显示创建者和创建时间。
对应Schedule 、MeetingInfo和PreContract表。
点预约他人小图标,则显示所有用户,如图2-11日程安排图所示:图2-11日程安排图部门日程页面功能要求:要求按部门进行日程查询,选择机构后部门下拉菜单级联改变,要求实现选择下拉项后无刷新,如上图所示,可以按部门内用户姓名进行模糊查询,日期只能绑定到某一天,初始时不显示日程信息,点“搜索”图片按钮后,返回查询结果,如图2-12部门页面功能图所示。
图2-12部门页面功能图注意:用GridView显示查询到的日程信息,标题部分包括人员姓名、查询日期所在周的一周各天,要显示一周的各天对应当月的几号,内容部分包括用户姓名,和一周内用户各天对应的日程,任何一个用户可以查看本部门内公开的日程和自己创建的日程。
按姓名模糊查询时,如果没有部门内其他用户的日程,则自己创建的日程也要显示出来。
我的便签页面功能要求:用DataList展示所有便签信息,如上图所示。
当便签标题超过12个字时,则以前12个字加“...”表示。
点页面上“新增便签”超连接或点DataList中的便签标题都可以进入个人便签设置页面。
如果是添加,则界面如图2-13个人便签图所示:图2-13个人便签图2.5 获取用户登录信息部分代码:protected void Page_Load(object sender, EventArgs e){UserInfo user = (UserInfo)Session["CurrentUser"];//获得登陆用户信息if (!Page.IsPostBack){DisplayUserMenu(erId);DisplayUserInfo(user);}}protected void DisplayUserInfo(UserInfo user){lblUserName.Text = erName;lblUserRole.Text = user.Role.RoleName;DepartInfo depart = DepartInfoManager.GetDepartInfoByDepartId(user.DepartId);lblDepart.Text = depart.DepartName;lblNow.Text = "今天是:" + DateTime.Now.ToShortDateString() + " " + CaculateWeekDay(DateTime.Now.DayOfWeek.ToString());}#region得到今天是星期几protected string CaculateWeekDay(string week){string weekstr = "";switch (week){case"Monday": weekstr = "星期一"; break;case"Tuesday": weekstr = "星期二"; break;case"Wednesday": weekstr = "星期三"; break;case"Thursday": weekstr = "星期四"; break;case"Friday": weekstr = "星期五"; break;case"Saturday": weekstr = "星期六"; break;case"Sunday": weekstr = "星期日"; break;}return weekstr;}#endregionprotected void DisplayUserMenu(string userId){tvUserRightMenu.Nodes.Clear();IList<SysFun> parentSysFun = SysFunManager.GetAllParentNodeInfoByUserId(userId);foreach (SysFun sfParent in parentSysFun){string nodeId = sfParent.NodeId.ToString();//第一层节点idstring displayName = sfParent.DisplayName;//第一层节点显示名称TreeNode fatherNode = this.CreatTreeNode(displayName, nodeId, "", "Images/menuclose.gif");//根据节点信息,创建第一层节点CreateChildTree(nodeId, userId, fatherNode);//创建子节点tvUserRightMenu.Nodes.Add(fatherNode);//将第一层节点加入到用户权限TreeView中}}//创建第二层节点private void CreateChildTree(string nodeId, string userId, TreeNode fatherNode){IList<SysFun> childSysFun = SysFunManager.GetSysFunByParentNodeIdAndUserId(int.Parse(nodeId), userId);//获得父节点为nodeId的所有子节点foreach (SysFun sfChild in childSysFun){string childNodeId = sfChild.NodeId.ToString();//第二层节点idstring childDisplayName = sfChild.DisplayName;//第二层节点名称string nodeURL = ResolveUrl(sfChild.NodeURL.Trim());//将路径转换为在客户端可用的URLTreeNode childNode = this.CreatTreeNode(childDisplayName, childNodeId, nodeURL, "Images/CloseTree.gif");//根据节点信息,创建第二层节点AddTree(fatherNode, childNode);//将子节点加入到父节点中}}///<summary>///创建一个树节点,返回一个树节点对象,参数内容是:///节点名称,节点ID,链接地址,正常图标,展开后的图标///</summary>private TreeNode CreatTreeNode(string strText, string strId, string strUrl, string strImg){TreeNode newNode = new TreeNode();newNode.Text = strText;newNode.Value = strId;newNode.NavigateUrl = strUrl;newNode.ImageUrl = strImg;return newNode;}///<summary>///把子节点添加到父节点当中///</summary>private void AddTree(TreeNode FatherNode, TreeNode ChildNode){FatherNode.ChildNodes.Add(ChildNode);}protected void Timer1_Tick(object sender, EventArgs e){UserInfo user = (UserInfo)Session["CurrentUser"];//获得登陆用户信息DateTime availTime = DateTime.Now;//查询当前时间有效的消息int unreadMessageCount = MessageToUserManager.GetUnReadReceiveMessageCountByUserId(erId, availTime);//查询该用户的未读消息数lblMessageCount.Text = unreadMessageCount.ToString();//显示未读消息数量if (unreadMessageCount > 0){imgbtnMessage.Visible = true;}else{imgbtnMessage.Visible = false;}}验证用户登录账号:protected void imgbtnLogin_ServerClick(object sender, ImageClickEventArgs e){UserInfo user;LoginLog loginLog = new LoginLog();erId = txtUserId.Value;loginLog.LoginTime = DateTime.Now;loginLog.LoginUserIp = erHostAddress.ToString();if (UserManager.Login(txtUserId.Value, txtPassword.Value, out user)){loginLog.LoginDesc = "用户登录成功";loginLog.IfSuccess = 1;LoginLogManager.AddLoginLog(loginLog);Session["CurrentUser"] = user;if (user.Role.RoleId == 1){Response.Redirect("~/ManualSign/ManualSign.aspx");}else{Response.Redirect("~/ScheduleManage/PersonNote/PersonNote.aspx");}}else{loginLog.LoginDesc = "用户登录失败,用户名或密码不正确。