摘要
特种设备是指涉及生命安全、危险性较大的锅炉、压力容器(含气瓶)、电梯、起重机械、大型游乐设施等八大类设备,高校中特种设备主要包括电梯、起重机、压力容器、安全附件这几类。特种设备在使用过程中需要严格按照安全流程操作并进行规范管理,由于特种设备本身特性和管理流程的复杂性,使得特种设备在使用过程中存在很多安全隐患,事故频繁发生。因此,实现管理的规范化、高效化显得尤为重要,利用计算机对特种设备进行管理,实现数字化信息管理就必然成为一种趋势。在此背景下,本文设计并实现了一套用于管理高校中特种设备的系统。
本文所设计的是一套基于.NET平台的高校特种设备管理系统,该系统采用C/S构架模型,Microsoft Visual Studio 2008中的C#作为开发语言,Microsoft SQL Server 2000作为数据库服务器,采用ADO.NET数据库访问技术,实现了用户管理、特种设备使用管理、维修管理、年检管理等等。
关键词:特种设备,管理系统,ADO.NET,SQL Server 2000,C#
第一章、主要内容及实现方案
(1)主要内容
本次设计是开发一套用于管理高校中存在的特种设备的管理系统,高校中通常包含电梯、起重机、压力容器、安全附件这几类,根据特种设备管理的需求分析,设计并实现如下所述功能的系统:
1.用户管理功能,包括用户注册和登录功能;
2.新购特种设备注册管理功能;
3.特种设备使用管理功能;
4.特种设备维护保养管理功能;
5.特种设备维修管理功能;
6.特种设备年检管理功能;
7.特种设备报废管理功能。
(2)实现方案
本系统将采用面向对象方法进行分析和设计,考虑到开发成本和安全性问题,本系统设计成一个相对封闭的单用户运行的Winform桌面应用程序。该系统采用C/S构架模型,使用Microsoft Visual Studio 2008平台提供的纯面向对象的C#语言作为开发语言,Microsoft SQL Server 2000作为数据库服务器,采用ADO.NET数据库访问技术,其中,ADO.NET中的.NET Framework采用SQL Server.NET数据库提供程序,Windows XP操作系统作为开发平台。系统基本的流程是:用户登录-主界面-选择各项子系统。
第二章、系统分析与设计
2.1 系统需求分析
需求分析是系统设计的第一步,也是必不可少的一步。通过对用户进行调查研究,准确了解用户对系统的需求,并对系统要实现的功能做准确的描述。主要任务:充分了解手工系统对高校中特种设备的管理方式、管理模式,收集涉及到的所有数据信息及处理方法。
2.1.1 业务工作介绍
学校的特种设备主要包括电梯、起重机械、压力容器这几类,特种设备由于在使用过程中需要严格按照安全流程操作,因此需对高校特种设备进行严格管理,管理系统涉及到特种设备管理员(即系统用户)、特种设备详细信息、维护保养信息、维护保养管理、年检单位信息、年检管理、特种设备操作人员等。
管理员负责对高校中所有设备进行统一管理,包括设备日常使用情况、维护保养情况、维修情况、年检情况、报废情况等。特种设备使用必须由取得了特种设备操作人员证的人员才可进行,特种设备人员操作证是由质监局统一培训,有独一的证号,有有效日期,超过有效日期的需再次报名参加复审。
特种设备年检管理:可涉及特种设备自身信息及年检单位信息,特种设备要根据它的特性定期进行年检,像电梯需要一年一检,起重机械需要两年,压力容器分年度检查(一年一检)和全面检查(五年一检)。
特种设备使用管理,主要是特种设备日常使用和维护保养情况,如设备在使用过程中出现故障,需管理员报修并进行维修,一般由负责该设备维保的专业的维护保养单位维修,也可以由其他单位维修。由于特种设备在使用过程中存在非常大的安全隐患,一些设备需定期检查,在故障出现之前,需对部分零件进行更换,也是由专业的维护保养单位负责。
高效特种设备管理系统的业务工作流程,如图2-1
2.1.2 数据分析
根据需求分析,对数据进行收集和分析,得出高校特种设备管理系统的数据流。
- n 管理员 = 用户名+密码
- n 特种设备信息 = 设备编号+设备注册代码+名称+类别+型号+规格+上次检验日期+下次检验日期+购置单价+购置日期+厂家名+出厂号+出厂日期+领用人+存放地名称+领用部门名+领用部门联系电话+操作人员+维护保养单位+年检单位+备注
- n 设备操作人员 = 姓名+作业项目+身份证号码+证书编号+所在单位+办证时间+办证有效期+联系电话
- n 维护保养单位 = 单位名称+维护保养设备类别+资质+地址+联系电话+联系人
- n 年检单位 = 单位名称+检验设备类别+单位地址+联系电话
- n 设备年检 = 设备编号+设备注册代码+设备名称+领用部门名+年检单位名称+检验费+检验日期+检验单位联系方式
- n 设备维修 = 设备编号+设备注册代码+设备名称+领用部门名+维修项目+故障原因+维修金额+报修日期+报修人
2.1.3 功能实现需求
本系统需要实现的功能包括,系统用户注册、登录,对新设备进行信息入库,设备损坏时能够对设备进行报修,设备维修后,对已经维修的报修项删除,对设备日常使用的信息进行管理,定期对设备进行年检,填写年检信息,对设备日常的维护保养进行管理,维护保养情况,对不用的设备进行报废等。系统功能图如图2-2所示。
2.2 系统设计
2.2.1 系统结构
图2-3是本系统结构图,图中除“”退出系统、“报废设备”、“查询设备”外的每一个矩形框图对应一个模块,也就是对应一个界面,因此本系统有9个界面,其中包含两个下拉菜单,命名为“设备管理”、“信息管理”,“设备管理”包含的子菜单有“注册新购设备”、“维修管理”、“年检管理”,“信息管理”包含“设备操作人员”、“维护保养单位”、“年检部门”。
2.2.2 系统运行环境
1、硬件环境
本次开发的为中小型信息管理系统,因此,一般配置的计算机硬件就可以满足系统需求,以下举出一种配置。
- l 处理器:Intel Pentium 4 3.06GX或更高
- l 内存:256M(推荐)
- l 硬盘空间:40GB
- l 显卡:SVGA显示适配器
2、软件环境
- l 操作系统:Windows XP
- l 开发环境:Microsoft Visual Studio 2008
- l 数据库:Microsoft SQL Server 2000
2.2.3 ADO.NET技术
在.NET中数据库访问时通过ADO.NET(Active Data Object.NET)完成的,在ADO.NET中,数据处理被延伸到三层以上的结构,只在有必要的时候对数据库进行连接,当处理完毕后将及时关闭连接,保证了数据库服务器资源的可用性,可以为更多用户服务,特别适合网络应用。
ADO.NET的体系结构如图2-4所示。
ADO.NET具有的核心组件包括两个:.NET DataProvider数据提供程序和DataSet数据集。.NET DataProvider数据提供程序包括Connection对象、Command对象、DataReader对象、DataAdapter对象。在.NET Framework中常用4组数据提供程序,包括SQL Server.NET Data Provider、OLEDB.NET Data Provider、ODBC.NET Data Provider、Oracle.NET Data Provider,这四种数据提供程序分别通过不同的接口来访问各自支持的数据库。
DataSet用来容纳DataProvider传递过来的数据库访问结果,或把应用程序里的业务执行结果更新到数据库中。DataSet是数据内存驻留表示形式,是一个内存驻留的数据库,它与特定的数据库无关。
第三章、数据库设计与实现
3.1数据库结构设计
数据库结构设计的目的:根据需求分析建立系统的概念模型,根据概念模型建立关系模型,对数据进行规范化管理,使数据满足各种范式。
3.1.1概念模型
根据高校中特种设备管理的需求分析,得出高校特种设备管理系统的概念模型,实体间的关系E-R图,以及实体属性。
1.E-R图
该系统E-R图如图3-1所示,由于部分实体的属性较多,此关系图中省略了实体属性。
2.实体属性
- u 管理员:用户名、密码
- u 特种设备:设备编号、设备注册代码、名称、类别、型号、规格、上次检验日期、下次检验日期、购置单价、购置日期、厂家名、出厂号、出厂日期、领用人、存放地名称、领用部门名、领用部门联系电话、备注
- u 特种设备操作人员:姓名、作业项目、身份证号码、证书编号、所在单位、办证时间、办证有效期、联系电话
- u 年检部门:单位名称、检验设备类别、单位地址、联系电话
- 维护保养单位:单位名称、维护保养设备类别、资质、地址、联系电话、联系人
3.1.2关系模型
将E-R图转换成关系模型要解决两个问题:一是如何将实体集合实体间的联系转换为关系模型;二是如何确定这些关系模型的属性和码。
概念模型转化成关系模型如下:其中直下划线的为主码,波浪下划线为外码。
- 管理员(ID,用户名,密码);
- 特种设备(设备编号,设备注册代码,名称,类别,型号,规格,上次检验日期,下次检验日期,操作人员证书编号,维护保养单位名称,购置单价,购置日期,厂家名,出厂号,出厂日期,领用人,存放地名称,领用部门名,领用部门联系电话,备注);
- 特种设备操作人员(证书编号,姓名,作业项目,身份证号码,所在单位,办证时间,办证有效期,联系电话);
- 年检部门(单位名称,检验设备类别,单位地址,联系电话);
- 维护保养单位(单位名称,维护保养设备类别,资质,地址,联系电话,联系人) 维修(设备注册代码,维修项目,故障原因,金额,报修日期);
- 年检(设备注册代码,检验单位名称,检验费,检验日期)。
3.2数据库详细设计
数据库详细设计包括创建数据库,创建单表,对表中字段进行命名,数据类型、长度,主外键以及是否为空等信息进行详细的设计,下面来设计本系统的数据库。
创建名为DBSpecialEquipment数据库。
3.2.1表的属性设计
1、表名:T_SystemUser
意义:系统用户
属性名 | 字段名 | 数据类型 | 允许空 | 主、外键 | 约束条件 |
ID | ID | int(4) | 主键 | 自增 | |
用户名 | UserName | varchar(16) | |||
密码 | Password | Char(8) | 数字或字母 |
2、表名:T_SpecialEquipment
意义:特种设备信息
属性名 | 字段名 | 数据类型 | 允许空 | 主、外键 | 约束条件 |
设备编号 | Number | varchar(10) | √ | ||
注册代码 | RegisterCode | varchar(30) | 主键 | ||
名称 | EquipmentName | varchar(50) | |||
类别 | Form | varchar(20) | 电梯、起重机… | ||
型号 | Model | varchar(20) | √ | ||
规格 | Standard | varchar(20) | √ | ||
上次检验日期 | LastCheckDate | datetime(8) | √ | ||
下次检验日期 | NextCheckDate | datetime(8) | |||
操作人员证书编号 | OperaterCerID | varchar(20) | 外键 | ||
维护保养单位名称 | MaintainUnitName | varchar(30) | 外键 | 维保单位表中存在 | |
购置单价 | PurchasePrice | money(8) | √ | ||
厂家名 | ManufacName | varchar(50) | √ | ||
出厂号 | LeaveFacNO | varchar(20) | √ | ||
出厂日期 | LeaveFacDate | datetime(8) | √ | ||
购置日期 | PurchaseDate | datetime(8) | √ | ||
领用人 | ReceivePerson | varchar(16) | √ | ||
存放地名称 | StoredName | varchar(50) | √ | ||
领用部门名 | ReceDepartName | varchar(30) | √ | ||
联系电话 | Phone | varchar(20) | √ | 数字 | |
备注 | Remarks | varchar(50) | √ |
3、表名:T_EquipmentOperater
意义:设备操作人员信息
属性名 | 字段名 | 数据类型 | 允许空 | 主、外键 | 约束条件 |
证书编号 | OperaterCerID | varchar(20) | 主键 | ||
姓名 | OperaterName | varchar(16) | |||
作业项目 | WorkType | varchar(30) | 电梯、起重机… | ||
身份证号码 | IDCardNO | varchar(20) | √ | ||
所在单位 | UnitName | varchar(50) | √ | ||
办证时间 | CerHandingDate | datetime(8) | |||
办证有效期 | CerUsefulTime | datetime(8) | |||
联系电话 | Phone | varchar(20) | √ | 数字 |
4、表名:T_CheckUnit
意义:年检单位信息
属性名 | 字段名 | 数据类型 | 允许空 | 主、外键 | 约束条件 |
单位名称 | CheckUnitName | varchar(100) | 主键 | ||
检验类别 | checkType | varchar(40) | 电梯、起重机… | ||
单位地址 | Address | varchar(100) | √ | ||
联系电话 | Phone | varchar(20) | √ | 数字 |
5、表名:T_MaintainUnit
意义:维护保养单位信息
属性名 | 字段名 | 数据类型 | 允许空 | 主、外键 | 约束条件 |
单位名称 | MaintainUnitName | varchar(30) | 主键 | ||
维保设备类别 | MaintainType | varchar(20) | 电梯、起重机… | ||
资质 | Aptitude | char(1) | A、B、C… | ||
地址 | Address | varchar(50) | √ | ||
联系电话 | Phone | varchar(20) | √ | 数字 | |
联系人 | LinkMan | varchar(16) | √ |
6、表名:T_Maintain
意义:维修信息
属性名 | 字段名 | 数据类型 | 允许空 | 主、外键 | 约束条件 |
设备注册代码 | RegisterCode | varchar(30) | 主键 | ||
维修项目 | MaintainItems | varchar(50) | √ | ||
故障原因 | BugCause | varchar(100) | √ | ||
金额 | Price | money(8) | √ | ||
报修日期 | PreRepairDate | datetime(8) |
7、表名:T_Check
意义:年检信息
属性名 | 字段名 | 数据类型 | 允许空 | 主、外键 | 约束条件 |
设备注册代码 | RegisterCode | varchar(30) | 主键 | ||
检验单位名称 | CheckUnitName | varchar(30) | 外键 | 检验单位表中存在 | |
检验费 | CheckPrice | money(8) | √ | ||
检验时间 | CheckDate | datetime(8) | √ |
3.2.2表的关系图
根据主外键、参照表决定了各表之间的联系,表之间关系的建立可以避免由于误操作导致数据库崩溃,可以保证各表之间数据的一致性,满足数据规范中的参照完整性。在数据库中建模后的数据关系图如图3-2所示。
3.2.3创建视图、存储过程
1、存储过程
存储过程是在SQL服务器上存储的已经编译的SQL语句组,存储过程在第一次执行的时候要检查语法和编译,编译好的版本存储在过程高速缓存器中供后续调用。假设某用户没有对指定表或视图的使用权限,但它具有使用存储过程的权限,通过执行存储过程,用户仍可以获得对存储过程中的表或视图的使用权。为了方便本系统并未建立很多存储过程,只创建了2个存储过程:
存储过程名:AddNew_SpecialEquipment 作用:向T_SpecialEquipment表中插入完整字段。
CREATE PROCEDURE AddNew_SpecialEquipment
@Number varchar(10),
@RegisterCode varchar(30),
@EquipmentName varchar(50),
@NextCheckDate datetime,
@OperaterCerID varchar(20),
@MaintainUnitName varchar(30),
@Form varchar(20),
@Standard varchar(20),
@Model varchar(20),
@ManufacName varchar(50),
@PurchaseDate datetime,
@LeaveFacNO varchar(20),
@LeaveFacDate datetime,
@PurchasePrice decimal,
@ReceDepartName varchar(30),
@ReceivePerson varchar(16),
@Phone varchar(20),
@StoredName varchar(50),
@Remarks varchar(50)
AS insert into
T_SpecialEquipment(Number,RegisterCode,EquipmentName,NextCheckDate,
OperaterCerID,MaintainUnitName,Form,Standard,Model,ManufacName,
PurchaseDate,LeaveFacNO,LeaveFacDate,PurchasePrice,ReceDepartName,
ReceivePerson,Phone,StoredName,Remarks)
values (@Number,@RegisterCode,@EquipmentName,@NextCheckDate,
@OperaterCerID,@MaintainUnitName,@Form,@Standard,@Model,@ManufacName,
@PurchaseDate,@LeaveFacNO,@LeaveFacDate,@PurchasePrice,@ReceDepartName,
@ReceivePerson,@Phone,@StoredName,@Remarks)
GO
存储过程名:login_user 作用:根据用户名和密码查询T_SystemUser表中记录,返回记录数。
CREATE PROCEDURE login_user
@UserName varchar(16),
@Password char(8)
AS
select count(*) from T_SystemUser
where UserName = @UserName and Password = @Password
GO
2、视图
视图是根据子模式建立的虚拟表,一个视图可以由一个表构造,也可以由多个表连接构成,视图的作用在于,使用户将注意力集中在所关心的数据上,例如我们可以将多个表连接的查询定义成一个视图,视图将表与表之间的连接操作对用户隐蔽起来了,用户看到的和使用的是多表连接起来的虚表。这样做的优点在于:用户既可以使用和操纵所关系的数据,又可以避免接触复杂的数据内部关系。本系统创建的视图如下:
视图名称 | 说明 |
年检单位 | 表T_CheckUnit的视图 |
特种设备信息 | 表T_SpecialEquipment的视图 |
维护保养单位 | 表T_MaintainUnit的视图 |
设备年检信息 | T_Check,T_CheckUnit,T_SpecialEquipment三张表连接,查询年检所需的有用信息 |
设备报修信息 | T_EquipmentOperater,T_MaintainUnit,T_Maintain,T_SpecialEquipment四张表连接,查询设备报修所需的有用信息 |
设备操作人员 | 表T_EquipmentOperater的视图 |
例如“设备报修信息”视图创建如下:
create view 设备报修信息 (设备编号,设备注册代码,设备名称,领用部门名,维修项目,故障原因,维修金额,报修日期,报修人)
as select
Number,T_Maintain.RegisterCode,EquipmentName,ReceDepartName,MaintainItems,BugCause,Price,T_Maintain.PreRepairDate,T_EquipmentOperater.OperaterName from T_EquipmentOperater,T_MaintainUnit,T_Maintain,T_SpecialEquipment
where T_SpecialEquipment.RegisterCode = T_Maintain.RegisterCode and T_EquipmentOperater.OperaterCerID = T_SpecialEquipment.OperaterCerID
第四章、特种设备管理系统的功能实现
4.1编码规范
1、数据库编程规范:数据库名称以“DB”开头;表名以“T_”开头,如T_SpecialEquipment(特种设备)。字段名称用英文翻译或部分英文缩写,如RegisterCode(注册代码)、LeaveFacNO(出厂号)。
2、代码编程规范:大小写符合C#编程规范,如类、属性等符合Pascal,参数、方法
等符合Camel。控件命名规范如表4-1所示,控件的命名取决该控件的作用,方便调试,不涉及编码的控件取其默认值。
控件类型 | 前缀缩写 | 控件类型 | 前缀缩写 |
TextBox | txt | Button | btn |
Label | lbl | Form | GUI |
ComboBox | cbo | ListView | lsv |
DateTimePicker | date | MenuStrip | mnu |
GroupBox | gbx | ToolStripMenuItem | tsm |
DataGridView | dgv |
4.2数据连接、断开及操纵类SQLHelper
代码连接:http://blog.csdn/abc123abc_123/article/details/9153867
创建一个“Windows窗体应用程序”项目,命名为SpecialEquipmentManagement。在项目文件里创建一个类,命名为SQLHelper.cs。
连接SQL Server数据库的方法有多种,在不同场合会用到不同的方法,可以通过SqlConnection配置连接,这种方法可以通过把SqlConnection对象添加到窗体上实现;也可以手动编码连接,这种方法连接数据库更节省时间,尤其是当数据库比较多或者程序的窗体比较多时,使用适配器显得有些浪费时间,因此,本系统数据库连接采用手动编码的方式进行连接。
为了提高代码的复用性、易修改,避免每次访问数据库时都要进行一系列的创建连接对象、Command对象、连接字符串等。本系统封装了一个数据库连接访问类SQlHelper,下面对该类进行简单的介绍:
1、类的构造函数。在构造函数中实例化一个数据库连接对象,创建连接字符串,这样做的目的是,在创建一个SQLHelper对象时就已经建立了与数据库的连接。
2、LastError属性。LastError属性是当数据库连接异常时,最后出现的异常信息。
3、HandleException方法。处理异常的方法,将产生的异常归为四类,SqlException,InvalidOperationException,DBConcurrencyException和除此三类异常之外的其他异常,并根据这四类不同异常分别对LastError属性赋予相应的异常信息。该方法为静态方法,有一个参数类型为Exception的参数。
4、ExecuteNonQuery方法。执行不返回结果集的SQL语句的方法,该方法参数中有一个待执行的SQl语句和与SQL语句相关的可变参数数组,是静态方法,程序不要求有任何返回值,但在定义此方法时返回了数值类型,用来表示执行当前语句后数据库中被影响的行数,但在程序的调用中可以不返回值,直接调用方法,若目标记录不存在返回0,出错返回-1,产生异常时显示异常信息。
5、ExecSQLByDataSet方法。该方法执行SQl语句,返回DataSet数据集合,参数中有一个待执行的SQl语句和与SQL相关的可变参数数组。该方法的优点是:通过直接调用此方法获得所需的DataSet数据集,而不需要每次都创建SqlDataAdapter对象来进行填充数据,提高了代码的复用性。该方法如出错返回null,出现异常时显示异常信息,为静态方法。
4.3用户注册、登录模块
在项目文件里添加两个Windows窗体,分别命名为GUISystemUser.cs和GUIRegisterUser.cs。
本系统的用户没有设置权限,如果将用户设置权限的话也可以,管理员、设备操作人员、年检部门等角色,但考虑到本系统只是一个简单的管理系统,再结合任务要求中有用户注册的模块,所以本系统的用户角色就定义为最高权限,即管理员。
在界面上添加相应的控件,按编码规范对控件命名,根据数据库表中字段数据长度,设置TextBox的MaxLength属性,限制可输入到此控件的字符数,编写TextBox的Keypress事件来设置输入的字符类型,TextBox中初始化提示信息可结合该控件的MouseDown、Leave事件和窗体的Load事件来设计。加载图片到窗体的Backgroundimage属性来设置窗体背景,注意为了使界面美观,将所有Label设置背景透明,如lblUserName.BackColor = System.Drawing.Color.Transparent。点击注册用户按钮,弹出注册用户窗体,点击立即登录按钮,注册界面隐藏,显示登录界面,界面如图4-1所示。
4.4系统主界面
在项目文件里添加一个Windows窗体,命名为GUIMain.cs。
用户登录后,会显示主界面,主界面主要是特种设备使用的信息,包括全部设备详细信息,根据设备类别查询设备,菜单选项等。
主界面控件包括三个按钮,分别为按设备类别查询、查询所有设备、报废设备;一个DataGridView,在窗体初始化时显示全部设备详细信息;一个ComboBox,设置DropDownStyle属性为DropDownList,使该控件不允许手动输入值,该控件的下拉列表值是所有设备类别加载进来的,SQL语句为“select distinct(Form) from T_SpecialEquipment”。
添加一个MenuStrip控件,在此基础上,添加三个ToolStripMenuStrip,分别设置Text属性为“设备管理”、“信息管理”、“退出系统”,“设备管理”菜单的子菜单有“注册新购设备”、“维修管理”、“年检管理”;“信息管理”的子菜单有“特种设备操作人员”、“维护保养单位”、“年检部门”。
添加一个StatusStrip控件,用于显示状体信息,在用户登录后,会显示用户输入的用户名,以及当前的日期,代码为this.toolStripStatusLabel1.Text = "您好!管理员:" + userName + " 今天是:" + System.DateTime.Now.ToShortDateString()。
为方便编码实现相关控件的功能,所有控件按规范进行命名,主界面效果如图4-2所示。
4.5“设备管理”菜单实现
添加MenuStrip控件,添加“设备管理”菜单,设备管理菜单下有“注册新购设备”、“维修管理”、“年检管理”;,每个子菜单对应一个界面,单击子菜单会弹出相应的界面,界面上有该菜单对应的功能。
4.5.1注册新购设备模块
在项目文件里添加一个Windows窗体,命名为GUIAddNew.cs。
购置设备时,需要对新设备进行入库信息填写,此时就需要“注册新购设备”模块,模块中包含的控件有TextBox、Label、ComboBox、DateTimePicker、Button、ListView、GroupBox,该模块需要填写设备所有信息,有必填选项和选填选项,必填选项是数据库中特种设备信息表中不可空的字段,选填信息是可空字段。为了是界面美观,用GroupBox进行分区,将相似的部分放在同一个GroupBox中。DateTimePicker控件默认的日期是当前计算机显示的日期,可以通过下拉选择日期,将“购置单价”TextBox的Text属性设置成0.0,即默认单价,如果不设置的话,将出错。
“操作人员证书编号”下拉选项是动态加载进来的,内容是“信息管理”菜单里“特种设备操作人员”中的“证书编号”,对比可以看出这两个值是一致的,如果“特种设备操作人员”中的“证书编号”值改变,则“操作人员证书编号”下拉选项的值也随之改变。因为操作人员证书编号很难记忆,所以在此模块中加了一个ListView控件,该控件实现的功能是:通过选择设备操作人员姓名和他作业项目,来选择此人的证书编号,单击ListView显示的一行记录,则自动显示操作人员证书编号。
维护保养单位名称下拉列表中的值也是动态加载进来的,它的值和“信息管理”菜单中“维护保养单位”中的“单位名称”一致,原理和前面所述一致。
设置类别下拉列表的Item属性,将类别限制在起重机、电梯、压力容器、安全附件里。
单击“添加”按钮将数据插入到特种设备信息表中,当必填信息有一项为空时,会弹出消息空提示:“第一个为空的字段”+不能为空!,比如注册代码为空,消息框显示“注册代码不能为空!”。
界面效果图如图4-3所示。
4.5.2维修管理模块
在项目文件里添加一个Windows窗体,命名为GUIRepair.cs。
“设备管理”菜单的另一个子菜单是“维修管理”,当设备有损坏时,需要对设备进行报修,此时须填写报修信息。
添加相应的控件,此模块的控件包括TextBox、Label、ComboBox、DateTimePicker、Button、ListView、GroupBox,DataGridView。将故障原因TextBox的MultiLine属性设置为True,也就是支持多行输入。
“维修管理”界面初始化时,在DataGridView控件中会显示已报修设备的信息,相应的SQL语句为“select * from 设备报修信息”,其中“设备报修信息”是已建立的视图。“设备注册代码”下拉列表是动态加载进来的,它的值就是所有设备的注册代码,对比主界面中DataGridView显示的设备信息中的注册代码,可知两项值完全一致。如果知道需要报修的“设备注册代码”,则可以直接选择,如果不知道,则可以通过选择设备名称来选择设备注册代码,方法如下:ListView控件中会显示所有设备的名称,选择其中一项,则相应的注册代码会显示在“设备注册代码”中。
根据数据库表中字段数据长度,设置TextBox的MaxLength属性,限制可输入到此控件的字符数。
填写好报修信息后,单击“添加报修项”按钮,再单击“刷新列表”,可以在右侧的表中看到刚才填写的报修项,说明数据保存成功。选中其中一行报修记录,单击“删除报修项”,则此记录删除。界面如图4-4所示。
4.5.3年检管理模块
在项目文件里添加一个Windows窗体,命名为GUICheck.cs。
对设备的年检信息,在年检管理中实现,添加控件TextBox、Label、ComboBox、DateTimePicker、Button、ListView、GroupBox,DataGridView,根据界面所示设置Text属性,按规范更改控件名称。
年检管理模块和维修管理模块在实现方法上基本一样,只是改变了数据,“年检信息”中显示相关数据的SQL语句为“select * from 设备年检信息”,其中“设备年检信息”是已建立的视图,“添加年检项”和“删除年检项”就是向T_Check表中插入和删除数据。界面效果如图4-5所示。
4.6“信息管理”菜单实现
“信息管理”菜单的作用是管理该系统中包含的一些实体信息,如年检单位的信息,对年检单位进行添加、删除。信息管理子菜单包括“特种设备操作人员”、“维护保养单位”、“年检单位”,每个子菜单对应一个界面,在界面可实现相应功能。
4.6.1特种设备操作人员模块
在项目文件里添加一个Windows窗体,命名为GUIOperator.cs。
该模块中控件有TextBox、Label、ComboBox、DateTimePicker、Button、GroupBox,DataGridView,界面初始化时在DataGridView里显示特种设备操作人员的信息,相应的SQL语句为“select * from 设备操作人员”,其中“设备操作人员”为已建立的视图,也就是T_EquipmentOperater表中的信息。
信息包括必填和选填,必填信息为表中不可空字段,选填为可空字段,当必填信息有为空的项时,单击“添加设备操作人员”时有相应的信息提示,添加成功时提示添加成功,选中DataGridView中的一行记录,单击“删除设备操作人员”时该行记录将从表T_EquipmentOperater中删除。根据数据库表中字段数据长度,设置TextBox的MaxLength属性,限制可输入到此控件的字符数。
界面效果图如图4-6所示。
4.6.2维护保养单位模块
在项目文件里添加一个Windows窗体,命名为GUIMaintainUnit.cs。
根据图4-7所示界面添加相应的控件,按规范进行命名,设置相应的Text属性,其中维护保养设备类别为起重机、压力容器、电梯、安全附件四种,资质为A、B、C,界面初始化时显示维护保养单位的信息,即T_MaintainUnit表中的信息,相应的SQL语句为“select * from 维护保养单位”。
4.6.3年检部门模块
在项目文件里添加一个Windows窗体,命名为GUICheckUnit.cs。
界面初始化时,在DataGridView中显示年检部门信息,也就是T_CheckUnit表中的信息,相应的SQL语句为“select * from 维护保养单位”,在实现方法上与上述“特种设备操作人员模块”和“维护保养单位模块”基本一致,只是相关的数据不同而已,此处不再累赘,界面效果如图4-8所示。
第五章、本系统存在的缺陷及下一步工作
本系统虽然实现了所有功能需求,但由于开发时间以及开发者水平的限制,在具体细节上仍然存在一定的缺陷,现将缺陷阐述如下:
1、管理员的信息不详细,只有用户名和密码,以及自动增长的ID号,如果要将本系统投入使用的话,应增加管理员的详细信息,包括姓名、性别、身份证号码、联系电话等等。
2、管理员和特种设备之间虽然在总E-R图中有“管理”的联系,但在程序设计中并没有表现出来,实际应该在特种设备信息中加上管理员的信息,确定这台设备是哪个管理员负责。
3、本系统按照任务书的要求,只是将角色定义成了管理员,没有将角色拓展。
4、本系统中使用ListView控件实现通过设备名称选择注册代码,由于使用的SQL语句为“select * from T_SpecialEquipment where EquipmentName = '" + selectName + "'”,所以特种设备名称不能相同,设备操作人员和其所操作的设备类型也不能出现两个一样的值。
5、在系统界面上不能查看本次登录的管理员信息,管理员密码也没有设计修改的界面。
6、各界面上都没有设计信息数据的修改,只有插入新数据和删除旧数据。
综合以上所述的缺陷,下一步需要做的工作是:完善本系统,争取将缺陷全部消除,以及扩展新功能,应用到高校特种设备管理的具体工作中,将本系统投入使用。
项目文件下载地址:http://download.csdn/detail/abc123abc_123/6035043
更多推荐
高校特种设备管理系统说明
发布评论