《基于ASPNET的电力班组管理系统.doc》由会员分享,可在线阅读,更多相关《基于ASPNET的电力班组管理系统.doc(38页珍藏版)》请在三一办公上搜索。
1、湖南铁道职业技术学院毕业论文 HUNAN RAILWAY PROFESSIONAL TECHNOLOGY COLLEGE系别名称: 信息工程系 专业名称: 软件技术(NIIT) 学生姓名: 黄伟 题 目: 班组建设系统 指导老师: 胡 亮 2008年12月9日目录正文4摘要5第1章引言61.1开发目的和意义61.2本人工作6第2章系统分析82.1系统需求分析82.1.1系统设计结构82.1.3系统功能模块92.2系统所实现功能102.2.1部门管理112.2.2部门人员管理112.2.3记录管理112.2.4班组记录的查询122.2.5班组记录信息的管理122.2.6其他信息的管理12第3章系
2、统结构设计143.1本系统采用二层架构143.2系统模块用例图143.2.1系统记录管理模块143.2.2系统部门管理模块143.2.3系统部门人员管理模块153.3系统功能逻辑模型化设计153.4系统功能流程图15主要是后台流程,如下图所示:163.5数据库介绍163.6部分数据表E-R图163.7数据表设计18第4章系统界面204.1管理员登陆204.2后台管理主页204.3记录管理214.4部门管理22第5章程序关键源代码255.1管理员登陆部分代码255.2班组合并部分代码265.3利用存储过程管理角色部分代码31第6章系统测试与评价336.1 数据完整性测试336.2 功能测试336
3、.3 用户界面测试33毕业设计总结35致 谢37参考文献38正文1. 本组任务1制定计划2需求分析3软件设计4程序编写5软件测试6运行和维护2. 我的任务1管理系统后台设计及后台程序语言的编写。2数据库表的设计与创建。3系统测试。4后台界面设计。摘要本文论述了一个基于.NET平台、二层架构(C/S)的班组建设系统的设计原理、设计思想及具体的实现过程,对在设计过程中涉及到的关键算法及重要作业流程作了具体分析和介绍,并对各个模块的设计思想及设计过程作了详细阐述。本系统的设计采用了Microsoft最新的.NET技术,以Microsoft SQL Server 2005作为数据库支撑平台,应用到的技
4、术包括ASP.NET,面向对象方法学、软件工程思想等。该系统是一个班组建设系统,是一个以电力企业为背景,开发一个可用于一般单位或公司的班组管理系统,实现班组管理的高效化,电子化。通过使用本系统,可以方便快捷地实现班组管理中的班组记录管理、班组管理、人员管理等操作,是企业的班组管理井井有条,为企业的健康发展创造条件。本人的毕业设计是主要实现该系统的所有功能,后台采用C#开发语言,数据库采用SQL Server 2005设计。关键字:班组建设、面向对象、ASP.NET、B/S。第1章 引言1.1 开发目的和意义随着国家电力体制改革的不断深入,电力企业面临着日益激烈的市场竞争的严峻挑战,为了提高企业
5、的综合竞争能力,扩展企业的生存发展空间,以追求最大经济效益为最终目标,就必须不断改进和加强企业管理,班组是企业的基础,班组管理水平的高低,将直接影响企业日常的生产和经营活动。由此可见,班组建设也是企业管理的重要课题之一。目前各发供电企业已经建立了企业内部的管理信息系统,它在安全生产管理、办公自动化等方面发挥了重大作用,其中虽然也包含一些班组管理的内容,但从班组建设管理的角度上来看,体现出不系统、不规范、不统一的特征,缺乏可比性和通用性,也完全没有实现信息的上传下达,在管理层与班组之间出现了管理信息的断层与脱节。1.2 本人工作本人主要完成所有系统所需模块,管理采用B2S模式,将记录信息、人员信
6、息、部门信息管理等系统管理集于一体。该系统主要模块包括:(1)记录信息管理:管理员可以查询记录、修改记录信息、删除记录信息。(2)记录类型管理:管理员可以添加、修改、删除记录类型。(3)班组人员管理:管理员可对部门的人员信息进行维护,包括添加,删除,修改人员信息等,以及人员调职。(4)部门管理:管理员可对部门信息进行管理。包括班组合并、班组迁移等。(5)修改密码:用户可以对当前密码进行修改。(6)角色管理:管理员可以修改、删除、增添部门人员的角色。实现一个用户可以有多个角色,人员可通过自身的权限以不同的方式访问系统。第2章 系统分析2.1 系统需求分析班组建设系统是一个面向企业最基本单元管理信
7、息系统,系统基本上解决的目前班组建设的各个方面的问题。并在逻辑上实现了从局到基层班组的多个层面的信息管理和信息互动。系统在浏览中体现出了特有的权限区分,可以限制有些基层班组重要内容的外泄。保证的班组信息的完整性、安全性、独特性。图 1 需求分析2.1.1 系统设计结构a)运行在Windows环境之下,采用时下流行的B/S结构。b)以实用性为出发点,解决班组人员的实际问题c)可扩展的核心设计,以适应班组在未来不断变化的需求2.1.2 系统功能a)由全局到工区所有班组的广泛管理层面b)浏览分为三级权限c)班组记录的规范化、统一化d)领导对班组工作可以留言和批示e)涵盖面广,包括了班组所有日常管理工
8、作f)展示了不同班组的亮点g)完善统一的记录管理h)界面友好的班组主页和管理主页i)单机版与网络版并行2.1.3 系统功能模块系统的具体功能模块如图所示:图 2 系统功能详细说明如下:(1) 记录分五种类型:班长工作日志、安全管理、民主生活、技术培训、班组荣誉。由班长、技术员、安全员填写,由部门审核人和公司审核人审核。(2) 班组管理包括班组合并和迁移管理,并对其基本信息进行管理。(3) 人员管理包括人员的基本信息管理和人员调职。2.2 系统所实现功能在一般的班组管理过程中,主要涉及到以下几个方面:记录管理、部门人员管理和部门管理。2.2.1 部门管理班组建设包括对部门信息的查询、部门信息的修
9、改、删除部门。其中删除部门考虑到此部门人员的安排,而且要判断是否删除此部门下的所有部门;班组建设系统把已删除的部门下的人员迁移到一个固定的部门,如果需要此人员可对进行调职操作。2.2.2 部门人员管理班组建设包括对部门人员信息的查询、人员信息的修改、删除人员、对其人员进行调职。系统可根据部门查询此部门的人员信息及修改人员信息,删除人员就将其安排的角色也并删除。对于人员的调职考虑到此人员权限的设置。2.2.3 记录管理记录是用来记录班组日常事务的,记录分为班长工作日志、安全管理、民主生活、技术培训、班组荣誉五种,由班组里的不同角色进行写记录。记录保存之后要通过部门审核和公司审核,这是记录管理的主
10、要内容。写记录,班长工作日志、民主生活、班组荣誉由班长填写,且班长工作日志每天一次;安全管理记录由安全员填写,每周一次;技术培训由技术员填写,每月一次或两次。审核记录,不同的部门的审核人要对此部门下的班组记录进行审核,班长工作日每月由班组的上级部门的部门领导进行部门审核,每季度由公司工会的班组建设管理员进行公司审核;安全管理由班组安全员对此进行记录,每月由班组的上级部门的部门审核人进行部门审核,每季度由公司审核人进行公司审核; 技术培训:每月由班组技术员组织技术培训工作,可以是学习或考试、描图等活动,由班组技术员对此进行记录,每月由班组的上级部门的部门审核人进行部门审核,每季度由公司审核人进行
11、公司审核。2.2.4 班组记录的查询管理员要对班组的记录进行管理,记录可以根据日期、记录类型、记录主题进行查询,这样才能及时了解班组的管理现状,才有可能使班组处在良好的运行状态。所以,班组管理过程中要提供班组的日志、安全、技术、生活等记录的查询功能,并且能够通过选择的不同部门进行记录查询,方便部门人员查看。2.2.5 班组记录信息的管理班组要记录记录,关于这些记录本身的信息,对班级建设是非常重要的,例如,班组参加了什么活动,班组人员参加了什么技术培训等,所以,对记录本身的信息登记、管理是班级建设的重要内容。2.2.6 其他信息的管理除了以上提到的一些功能外,班级建设系统还应该能对一些其他的信息
12、进行管理。例如:班组迁移、班组合并等,对企业来说,这些变化是有可能的,而且班组的迁移和合并还要考虑到班组人员的安排,班组合并要考虑是合并的方式,本系统分为合并至要合并的部门的其中一个部门或合并至一个新部门。可行性分析此套系统能够配合当前一些小型企业的班组管理,所以在系统的需求上是可行的。在技术上,通过半年多的的学习,运用进行班组管理系统的开发,并实现简单、友好的管理窗口界面。而在技术要求上也是可行的。性能需求:本系统在性能上应达到的要求:1系统软件应该速度快、稳定、可靠、具有很高的实用性;2用户操作上应简单、方便,界面友好、美观;3更快更稳定的执行速度完成要求;4系统软件应支持多用户超负荷并发
13、访问、网络数据共享;5系统软件在结构上具有很好的可扩展性,便于将来的功能扩展和维护;6系统的移植性好;7便于维护与修改。(3)开发平台1硬件:微机一台2操作系统:Windows XP3数据库管理系统:SQL Server 20054开发工具:Microsoft Visual Studio .NET 2005第3章 系统结构设计3.1 本系统采用二层架构本系统采用二层架构,结构图如下:(从本图看,说是3层架构为好)表示逻辑层数据访问逻辑层数据库图 3 二层结构3.2 系统模块用例图3.2.1 系统记录管理模块班组人员写记录,管理员可对记录进行查询、修改、并删除。图 4 记录管理用例图3.2.2
14、系统部门管理模块管理员可对查询部门信息、修改部门信息、删除部门、以及班组合并和迁移。图 5 部门管理用例图3.2.3 系统部门人员管理模块管理员可查询部门人员信息、修改人员信息、删除人员、以及人员调职。图 6 部门人员用例图3.3 系统功能逻辑模型化设计3.4 系统功能流程图主要是后台流程,如下图所示:图 7 后台流程图3.5 数据库介绍表 1 数据库介绍数据库名称BanZu备注:本系统主数据库表名部门人员表 部门表详细记录表记录类型表提示表管理员表角色表视图vwRecord记录信息vwRole人员信息proInsertRole增添角色proUpdateRole修改角色3.6 部分数据表E-R
15、图(1) 部门人员表部门人员表用户序号用户姓名用户权限用户密码用户编号用户部门图 8 部门人员E/R图(2) 部门表部门表部门编号部门名称图 9 部门E/R图(3) 详细记录表详细记录表记录时间公司审核人公司审核时间记录序号记录人类型编号部门审核人公司审核评语记录主题记录内容部门审核评语部门审核时间审核状态图 10 详细记录E/R图(4) 记录类型表记录类型表类型编号类型名称图 11 详细记录E/R图3.7 数据表设计表 2 部门表表序号1表名部门表含义存储部门的基本信息序号属性名称数据类型长度说明约束1.部门编号VarChar255Not NULL主键2.部门名称VarChar255Not
16、NULL表 3 部门人员表表序号2表名部门人员表含义存储部门人员的基本信息序号属性名称数据类型长度说明约束1.用户序号int4Not NULL主键2.用户编号VarChar255Not NULL3.用户姓名VarChar255Not NULL4.用户密码VarChar255Not NULL5.用户部门VarChar255Not NULL6.用户权限VarChar50表 4 角色表表序号3表名Role含义存储部门人员角色的基本信息序号属性名称数据类型长度说明约束1.roleIDint4Not NULL主键2.RoleNameVarChar50Not NULL3.Uidint4Not NULL表
17、5 记录详细表表序号4表名记录详细表含义存储班组记录的详细信息序号属性名称数据类型长度说明约束1.记录序号int4Not NULL主键2.记录人VarChar50Not NULL3.记录类型int4Not NULL4.记录主题VarCharmax5.记录内容VarCharmax6.记录时间Datetime87.公司审核人VarChar508.公司审核评语VarCharMax9.公司审核时间Datetime810.部门审核人VarChar5011.部门审核评语VarCharMax12.部门审核时间Datetime813.审核状态VarChar50表 6 记录类型表表序号5表名记录类型表含义存储记
18、录类型的基本信息序号属性名称数据类型长度说明约束1.类型编号int4Not NULL主键2.类型名称VarChar50Not NULL表 7 管理员表表序号6表名管理员表含义存储管理员的基本信息序号属性名称数据类型长度说明约束1.用户名VarChar50Not NULL主键2.用户密码VarChar10Not NULL表 8 提示表表序号7表名提示表含义存储提示信息序号属性名称数据类型长度说明约束1.提示编号int4Not NULL主键2.提示人VarChar50Not NULL3.记录编号VarChar104.提示内容VarCharmax第4章 系统界面4.1 管理员登陆管理员登陆后进入管理
19、员主页面,注意用户与管理员的区别!系统保存管理员用户名。图 12 管理员登陆4.2 后台管理主页后台管理主要包括设置管理、部门管理、记录管理、部门人员管理。图 13 后台管理主页4.3 记录管理管理员可对所有的记录进行查询、修改、删除。对记录主题进行链接,可查看记录的详细信息,并修改记录信息。记录详细信息图 14 记录管理/详细记录信息4.4 部门管理管理员可对部门进行部门信息的查询、修改、删除,部门之间的合并与迁移,增加部门等操作。对部门的基本操作图 15 部门操作班组合并图 16 班组合并增加部门图 17 增加部门第5章 程序关键源代码5.1 管理员登陆部分代码if (this.tbuse
20、rname.Text = | this.tbpwd.Text = ) this.labmsg.Text = alert(用户名和密码不能为空!); else if (this.RadioButtonList2.Items0.Selected) sqlstr = select * from 管理员表 where 管理员= + this.tbusername.Text.Trim() + and 密码= + this.tbpwd.Text.Trim() + ; ds = db.getdatadysql(sqlstr); if (ds.Tables0.Rows.Count != 0) Sessionu
21、sername = this.tbusername.Text; Sessionlimit = 管理员; Response.Redirect(./HouTai/houindex.aspx); else this.labmsg.Text = alert(您的用户名或密码不正确,登录失败!); else sqlstr = select 用户权限,roleName from vwRole where 用户编号= + this.tbusername.Text.Trim() + and 用户密码= + this.tbpwd.Text.Trim() + ; ds = db.getdatadysql(sqls
22、tr); if (ds.Tables0.Rows.Count != 0) Sessionusername = this.tbusername.Text; Sessionlimit = ds.Tables0.Rows00.ToString(); Sessionrole = ds.Tables0.Rows01.ToString(); Response.Redirect(Default.aspx); else this.labmsg.Text = alert(您的用户名或密码不正确,登录失败!); 5.2 班组合并部分代码 bool result; int newid; string departm
23、entid; sqlstr = select 部门编号 from 部门表 where 部门名称= + this.dropDep1.SelectedItem.Text + ; ds = db.getdatadysql(sqlstr); string depid1 = ds.Tables0.Rows00.ToString(); sqlstr = select 部门编号 from 部门表 where 部门名称= + this.dropDep2.SelectedItem.Text + ; ds = db.getdatadysql(sqlstr); string depid2 = ds.Tables0.
24、Rows00.ToString(); if (this.rbcombineType.SelectedItem.Text = 重建部门) sqlstr = delete from 部门表 where 部门编号= + depid1 + or 部门编号= + depid2 + ; result = db.updatabysql(sqlstr); if (result = true) sqlstr = select 部门编号 from 部门表 where 部门编号 like + depid1 + %; ds = db.getdatadysql(sqlstr); if (ds.Tables0.Rows.
25、Count 1) for (i = 0; i ds.Tables0.Rows.Count; i+) departmentid = ds.Tables0.Rowsi0.ToString(); newid = int.Parse(depid + departmentid.Substring(depid1.Length, departmentid.Length) + 1; newdepid = 00 + newid.ToString(); sqlstr = select * from 部门表 where 部门编号= + newdepid + ; ds = db.getdatadysql(sqlstr
26、); if (ds.Tables0.Rows.Count != 0) newid = newid + 1; else sqlstr = update 部门表 set 部门编号= + newdepid + where 部门编号= + departmentid + ; result = db.updatabysql(sqlstr); if (result = true) sqlstr = update 部门人员表 set 用户部门= + newdepid + where 用户部门= + departmentid + ; result = db.updatabysql(sqlstr); if (re
27、sult = false) Response.Write(alert(提交失败!);); else return; sqlstr = select 部门编号 from 部门表 where 部门编号 like + depid2 + %; ds = db.getdatadysql(sqlstr); if (ds.Tables0.Rows.Count 1) for (i = 1; i ds.Tables0.Rows.Count; i+) departmentid = ds.Tables0.Rowsi0.ToString(); newid = int.Parse(depid + departmenti
28、d.Substring(depid2.Length, departmentid.Length) + 1; newdepid = 00 + newid.ToString(); sqlstr = select * from 部门表 where 部门编号= + newdepid + ; ds = db.getdatadysql(sqlstr); if (ds.Tables0.Rows.Count != 0) newid = newid + 1; else sqlstr = update 部门表 set 部门编号= + newdepid + where 部门编号= + departmentid + ;
29、 result = db.updatabysql(sqlstr); if (result = true) sqlstr = update 部门人员表 set 用户部门= + newdepid + where 用户部门= + departmentid + ; result = db.updatabysql(sqlstr); if (result = false) Response.Write(alert(提交失败!);); else return; else if (this.rbcombineType.SelectedItem.Text = 合并至第二个部门) sqlstr = delete
30、from 部门表 where 部门编号= + depid1 + ; result = db.updatabysql(sqlstr); if (result = true) sqlstr = select 部门编号 from 部门表 where 部门编号 like + depid1 + %; ds = db.getdatadysql(sqlstr); if (ds.Tables0.Rows.Count 1) for (i = 1; i ds.Tables0.Rows.Count; i+) departmentid = ds.Tables0.Rowsi0.ToString(); newid = i
31、nt.Parse(depid2 + departmentid.Substring(depid2.Length, departmentid.Length) + 1; newdepid = 00 + newid.ToString(); sqlstr = select * from 部门表 where 部门编号= + newdepid + ; ds = db.getdatadysql(sqlstr); if (ds.Tables0.Rows.Count != 0) newid = newid + 1; else sqlstr = update 部门表 set 部门编号= + newdepid + where 部门编号= + departmentid + ; result = db.updatabysql(sqlstr); if (result = true) sqlstr = update 部门人员表 set 用户部门= + newdepid + where 用户部门= + departmentid + ; result = db.updatabysql(sqlstr); if (result = false) Response.Write(alert(提交失败!);); else