利用C#开发科技档案管理系统(一)
2009-02-27 08:18:26 来源:WEB开发网一、概述
湖南省湘潭电机集团有限公司是具有七十多年历史的大型国有企业,经过几十年的发展,各类科技档案资料,图纸有几百万张,整本图资料几万册,以前这些资料的查询、借阅、统计、管理等工作基本上都是采用手工管理方式来完成,尽管近几年科技档案室自主运用微软Office办公软件管理一些档案资料,但是,这样的管理方式很难使科技档案室的信息化水平上一新的台阶,有它不可克服的弱点,一是数据录入时不能进行校验,容易出错,二是数据查询很不方便,三是数据难以分门别类地进行统计,四是不能有效地进行借阅资料的动态管理,五是不可能随时完成报表输出。基于上述原因,公司的科技档案室急需一套操作方便、网络版、多用户且有严格操作权限控制的科技档案管理系统。
Microsoft Visual Studio .NET 2005(VS2005)是微软公司开发的新型软件架构.NET中的一部分,主要用来创建Windows项目和Web应用程序。利用VS2005软件开发环境中的C# 语言能够快速地开发出用户所要求的应用软件。因此,怎样利用C# 开发完成科技档案管理系统是本文需要重点介绍的内容。
二、系统分析
通过实际调查,要求本系统具有以下功能。
1.由于操作人员的计算机知识有限,因此要求系统具有良好的人机界面。
2.系统的使用人员较多,要求有严格的权限管理。
3.方便的数据查询,支持多条件询查。
4.单条数据录入、编辑时能够针对关键字段进行唯一性校验,尽可能排除人为的错误。
5.整本图借阅信息能够批量填写、批量转借。
6.能够从PDM(产品数据管理)系统中批量、有条件地导入图纸信息至本系统中。
7.在相应权限下,删除数据方便简单、数据稳定性强。
8.强大的报表打印功能。
9.系统在公司内部局域网中多用户数据共享使用,确保数据的安全。
三、系统总体设计
1.系统功能结构图
在开发科技档案管理系统之前,需要对科技档案管理系统的网络结构有一个总体的了解,下面给出系统的网络结构,如图1所示。
图片看不清楚?请点击这里查看原图(大图)。
图1 系统网络结构图
2.开发平台及运行环境
(1)硬件平台
● CPU: Pentium(R)4 2.8GHZ。
● 内存:512MB以上。
● 显示器:17英寸。
(2)软件平台
● 操作系统:Windows Server 2003 / Windows XP。
● 数据库:SQL Server 2000。
● 开发工具:Microsoft Visual Studio 2005。
● 开发环境:Microsoft .NET Framework SDK v2.0。
● 开发语言:C# 语言。
3.项目规划
科技档案管理系统是一个典型的数据库开发应用系统,由图纸登记管理、整本图册管理、查询打印管理、系统维护、辅助工具和系统信息等模块组成,具体规划如下。
(1) 图纸登记管理模块
该模块主要负责从PDM(产品数据管理)系统中批量、有条件地导入图纸信息至本系统中,普通图纸数据信息录入、编辑、删除、查询,8EB图纸数据信息录入、编辑、删除、查询,PDM图纸数据信息录入、编辑、删除、查询。
(2) 整本图册管理模块
该模块主要负责档案室图册数据信息录入、编辑、删除、查询,二分室图册数据信息录入、编辑、删除、查询,五分室图册数据信息录入、编辑、删除、查询,借阅;借阅人数据信息录入、编辑、删除、查询,整本图借阅管理,整本图批量转借管理。
(3) 查询打印管理模块
该模块主要负责图纸数量按条件进行统计,整本图数量按条件进行统计,整本图借阅信息查询打印输出。
(4) 系统维护模块
该模块主要负责系统管理设置,用户登录信息监控,编码规则设置,用户密码更改,数据备份和数据库恢复,数据清理。
(5) 辅助工具模块
辅助工具模块的功能有:登录Internet、启动Office Word、启动Office Excel和计算器等。
(6) 系统信息模块
系统信息模块的功能有:系统帮助,关于等。
4.系统功能结构图
根据项目规划所述内容,系统功能结构图如下,图2所示。
图2 系统功能结构图
四、系统数据库设计
本系统采用SQL Server 2000数据库,名称为DrawSys,其中包含7张表,他们分别是:图纸登记帐表(tb_BluePrint),整本图册表(tb_Scroll),编码规则设置表(tb_DefaultNO),用户权限表(tb_Power),用户登录信息表(tb_Login),借阅人信息表(tb_Readers),借阅信息表(tb_Borrow)。下面给出几个主要表的数据表结构。
1.图纸登记帐表(tb_BluePrint)主要用于存储工程图图纸信息。结构如表1所示。
表1
序号 | 中文名 | 字段名 | 英文名 | 类型 | 备注 |
1 | ID号 | Id | Id | Varchar20 | |
2 | 图号 -- MainKey | Th | Th | Varchar50 | |
3 | 图号标记 | ThSign | ThSign | Varchar8 | |
4 | 纸型 | Ptype | Ptype | Varchar8 | |
5 | 装订代号 | BindNo | BingNo | Varchar40 | |
6 | 项卡 | Item | Item | Varchar200 | |
7 | 项卡标记 | ItSign | ItSign | Varchar8 | |
8 | PDM标记 | YNpdm | YNpdm | Varchar8 | |
9 | 备注 | Memo | Memo | Varchar200 | |
10 | 存放位置 | Place | Place | Varchar100 | |
11 | 设计文件总目录 | Bpt_1 | WM | Varchar8 | |
12 | 图样目录 | Bpt_2 | TM | Varchar8 | |
13 | 工件明细表 | Bpt_3 | MX | Varchar8 | |
14 | 标准紧固件表 | Bpt_4 | MXS | Varchar8 | |
15 | 外购件表 | Bpt_5 | WG | Varchar8 | |
… | … | … | … | … | |
92 | 创建者 | Creator | Creator | Varchar20 | |
93 | 创建时间 | Ctime | Ctime | Varchar40 | |
94 | 修改者 | Memder | Mender | Varchar20 | |
95 | 修改时间 | Mtime | Mtime | Varchar40 |
2.整本图册表(tb_Scroll)主要用于存储整本图图册信息。结构如表2所示。
表2
序号 | 中文名 | 字段名 | 英文名 | 类型 | 备注 |
1 | ID号 | Id | Varchar20 | ||
2 | 分类卷号 -- MainKey | Scl_1 | Varchar20 | 二分室/五分室/档案 | |
3 | 装订代号 | Scl_2 | Varchar40 | public | |
4 | 型号名称 | Scl_3 | Varchar200 | public | |
5 | 存放位置 | Scl_4 | Varchar100 | public | |
6 | 备注 | Scl_5 | Varchar200 | public | |
7 | 密别 | Scl_6 | Varchar20 | public | |
8 | 是否借出 | Scl_7 | Varchar20 | public | |
9 | 图册(1) | Scl_8 | Varchar8 | 20 / 20-10 | |
10 | 图册(2) | Scl_9 | Varchar8 | 21 / 21-11 | |
11 | 设计资料(1) | Scl_10 | Varchar8 | 10 | |
12 | 设计资料(2) | Scl_11 | Varchar8 | 11 | |
13 | 工艺资料 | Scl_12 | Varchar8 | 50 | |
… | … | … | … | … | … |
3.借阅人信息表(tb_Readers)主要用于存储借阅人信息。结构如表3所示。
表3
序号 | 中文名 | 字段名 | 英文名 | 类型 | 备注 |
1 | ID号 | Id | Int4 | ||
2 | 借阅人编号 -- MainKey | Red_1 | Varchar20 | ||
3 | 借阅人姓名 | Red_2 | Varchar20 | ||
4 | 性别 | Red_3 | Varchar20 | ||
5 | 出生日期 | Red_4 | Varchar20 | ||
6 | 单位 | Red_5 | Varchar20 | ||
7 | 职务 | Red_6 | Varchar20 | ||
8 | 登记日期 | Red_7 | Varchar20 | ||
9 | 借阅人级别 | Red_8 | Varchar20 | ||
10 | 最大借阅数 | Red_9 | Int4 | ||
… | … | … | … | … |
4.用户权限表(tb_Power)主要用于存储用户权限信息。结构如表4所示。
表4
序号 | 中文名 | 字段名 | 英文名 | 类型 | 备注 |
1 | 序号 | ID | Int4 | ||
2 | 用户姓名 | SysUser | Varchar20 | ||
3 | 用户密码 | PassWord | Varchar20 | ||
4 | 系统权限 | SysPower | Bit | ||
5 | 增加数据权限 | AddPower | Bit | ||
6 | 修改数据权限 | EditPower | Bit | ||
7 | 删除数据权限 | DelePower | Bit | ||
8 | 浏览数据权限 | BrowPower | Bit | ||
9 | 查询数据权限 | FindPower | Bit | ||
10 | 打印数据权限 | PrintPower | Bit |
5.借阅信息表(tb_Borrow)主要用于存储用户借阅整本图信息。结构如表5所示。
表5
序号 | 中文名 | 字段名 | 英文名 | 类型 | 备注 |
1 | ID号 -- MainKey | Id | Int4 | ||
2 | 借阅日期 | Brw_1 | Varchar20 | ||
3 | 借阅人编号 -- Key | Brw_2 | Varchar20 | Red_1 | |
4 | 借阅人姓名 | Brw_3 | Varchar20 | Red_2 | |
5 | 分类卷号 ---- Key | Brw_4 | Varchar20 | Scl_1 | |
6 | 装订代号 | Brw_5 | Varchar20 | Scl_2 | |
7 | 型号名称 | Brw_6 | Varchar20 | Scl_3 | |
8 | 归还日期 | Brw_7 | Varchar20 | ||
9 | 转借日期 | Brw_8 | Varchar20 | ||
10 | 是否归还 | Brw_9 | Varchar20 | Scl_7(是否借出) | |
11 | 借阅手续办理人 | Brw_10 | Varchar20 | SysUser | |
12 | 借阅手续办理时间 | Brw_11 | Varchar20 | Date | |
13 | 备注 | Brw_12 | Varchar20 |
五、多层设计模式开发
目前,开发人员在开发项目时,大多都使用分层开发模式,最常见的就是三层开发模式,如图3所示。分层设计的目的在于使各个层之间只能够对它相邻的层产生影响,充分提高系统的可扩展性。
图3 系统工作模式
系统工作模式中以不同的层为驱动模式进行设计,将产生不同的驱动模式。
1.数据层驱动模式
所谓的数据层驱动模式,就是先设计数据层,陈述层围绕数据层展开,一旦完成了数据层和陈述层,业务层就围绕数据层展开,因为陈述层是围绕数据层展开的。这种设计模式常常不能适应业务需求的变化。
2.陈述层驱动模式
陈述层驱动模式是数据层围绕陈述层展开。业务层的完成一般是通过简单的SQL查询和很少的变化或者隔离。由于数据层的设计是为了陈述层的方便,并非从数据层设计方面考虑,所以数据层的设计在性能上通常很低。
3.隔离驱动模式
用隔离驱动模式设计,陈述层和数据层被独的开发,常常是平行开发。这两层在设计时没有任何的相互干扰,所以不会存在人为的约束和有害的设计元素。当两层设计完成后,再设计业务层。业务层的责任就是在没有对数据层和陈述层的需求变化的基础上完成所有的转换。
因为陈述层和数据层是完全分开的,当业务层的需求改变的时候,它们都可以做相应的修改不影响对方。改变两个物理上不相邻的层不会直接对其它层产生影响或发生冲突。这就允许数据层结构的调整或者陈述层根据用户的需求做相应的变化,而不需要系统做大的调整或者修改。
综上所述,隔离驱动模式的优点是很明显的,它极大地提高了程序的扩展性。科技档案管理系统采用隔离驱动模式开发。
更多精彩
赞助商链接