标准化器材管理系统的设计与实现
2012-04-29张慧霞唐媛莉沈瑞卿
张慧霞 唐媛莉 沈瑞卿
摘要:由于数据库应用的不断扩大,数据库管理变成了一个日益复杂的工作。该文按着需求分析、概念设计、物理设计的标准化思路,设计并实现了一个基于数据库的器材管理信息系统。针对应用中存在的问题,对系统的体系结构、功能结构、数据库设计、控件使用及关键代码进行了详细的阐述。该系统可以作为开发其他信息管理系统的参考模型。
关键词:信息系统;器材管理;标准化设计
中图分类号:TP311文献标识码:A文章编号:1009-3044(2012)16-3789-03
目前在器材管理的应用中,由于仓库与管理部门往往各处一地,管理部门所掌握的信息与实际库存信息会存在滞后、冗余、乃至差错,很难达成数据的实时同步。虽然各个仓库及管理部门都已配备了信息管理系统,但大多是单机版,不能实现资源与信息共享,更不能支持远程实时访问,已无法适应信息化建设快速发展的需要。随着网络硬件建设环境的进一步改善,基于成熟的数据库产品(如sqlsever200、oracle、mysql、sybase等),采用C/S或B/S架构设计器材管理系统,实现器材业务管理的网络化、实时性已经势在必行。
1器材管理系统的设计目标
利用该系统,仓库根据管理部门的出入库指令,进行出入库管理、时实更新数据库并将处置结果反馈给管理部门。管理部门可以及时查阅库存量,发出出入库指令并查询指令执行情况。仓库与管理部门的数据信息必须严格同步。仓库与管理部门都应设置访问权限,对数据库的操作应遵照预定的流程,社绝非受权用户对数据库系统的访问。
2器材管理系统的体系结构
为了近一步规避网络连接中的风险,数据库一般设专门的服务器,管理方与仓库方只作为客户端对数据库进行访问。管理方发出指令后,仓库方应及时进行响应。仓库方会采用轮询数据库的方式,当发现有末执行料单则立即向仓库管理员报告。
通常需要管理的仓库不止一个,一个仓库应建一个数据库系统。管理端根据不同的需要与相应的数据库进行连接,对仓库实施管理。其结构如图1所示。
3器材管理系统的主要功能
器材管理系统功能设置应紧密围绕数据,并确保数据的安全及操作流程的合理。主要分五个功能模块:
1)用户管理不同的用户拥有不同的权限,系统根据用户输入的账号进入相应的数据库系统。为防应急情况,超级用户拥有最高权限,可以不按预置流程直接对数据库进行操作。
2)料单管理实现收发料单管理。
3)器材管理常规器材具有名称、序号、代(型)号规格、报价、生产厂商、计量单位等基本信息,器材入库还要有编码信息。器材管理应提供对这些基本信息的增、删、改及查询功能。
4)生产厂商管理记录生产厂商基本信息并提供增、删、改及查询功能。
5)收料单位管理记录收料单位基本信息并提供增、删、改及查询功能。系统功能结构如图2所示。
4主要技术及实现方法
系统的实现在Windows2000server环境下完成。Windows2000server系统平台一般可以支持面积在1000~5000m2的大型仓库的数据量,每秒数据库并发数据访问记录数也可支持到500~2000,稳定性及维护水平较好。数据库采用了Sqlsever2000,若仓库数据量超过200000则可考虑采用Oracle。数据库服务器应连接到交换机的千兆端口上,以加快访问速度。考虑到开发的成熟度、系统稳定性及控件支持,代码部分采用了Delphi,利用了1stClass4000, fastreport,grid++report等控件。
4.1数据库设计
围绕应用需求进行数据库的实体-联系模型(E-R)设计,按着3NF的标准对生成的关系模式进行规范化处理,消除数据冗余和数据异常,最终确定在数据库中一共建立13个数据表,包括12个业务处理数据表及一个用户数据表,其中业务处理数据表结构及其相互关系如图3所示。由于器材一般分类归档,大类中包含若干小类,小类中又包括子类,所以器材数据表采用了三级表结构,各级数据表由分类号进行关联。料单收发要建立专门的收发料数据表,还要有相应收发料明细表,记录每笔明细账目。入库表记录入库器材的名称、时间、数量等以方便针对入库信息的查询。库存表记录库存余量等,生产厂家表、收料单位表、用户表记录基本数据信息。
4.2料单制作功能的设计及实现
由于器材是分级管理的,为了方便收发器材的查询、选取、修改等操作,器材选取界面采用了类资源管理器模式,父类下包含若干子类,可以按需要展开或关闭下级条目。这里利用了1stClass4000控件,将一级器材库定义为根,二级、三级库定义为枝叶并进行了关联。1stClass4000控件可以灵活地控制窗体样式,实现界面的不同风格。料单制作主代码如下:
for i:=1to cn-1 do begin
sql.clear;
sql.add( insert into flmxb(xh,zbmc,dhgg,tzs,dj,zje,sccj,jldw,bz,mxh) values(); sql.add(+Cells[0,i]++,++Cells[1,i]++,++Cells[2,i]+);
sql.add(,++Cells[3,i]++,++Cells[4,i]++,++Cells[5,i]+);
sql.add(,++Cells[6,i]++,++Cells[7,i]+);
sql.add(,++Cells[8,i]+);
sql.add(,++IntToStr(mxid)++));
execsql;
Update;
end;
messagebox(addequipmetFrm.Handle,料单已经成功发出,恭喜,mb_ok);
4.3料单管理界面的设计及实现
收发料单管理界面窗体分三部分,第一部分是收发料单的记录,包括时间、状态、案由等等,第二部分包含对应第一部分每一料单记录的明细信息,包括器材名称、规格、计量单位等。第三部分是打印及管理区。
收发料单被执行后,若在规定时间内仓库端可以自主撤销。管理端对料单的撤销则需查看仓库端对该料单是否已执行。若末执行则可撤销,若执行则需采用其它方式撤销,主要代码如下:
if MessageDlg(确认要撤销吗?,mtConfirmation,[mbYes,mbNo],0)=mrYes then
begin
Delete;
mxhtemp:= qry1MXBH.Value ;
query:=select * from flmxb where mxh=convert(varchar,++mxhtemp++);
sql.add(query);
open;
first;
if recordcount=0 then showmessage(该编号明细料单没有找到,可能已删除!!!)
else
edit;
for i:=1 to recordcount do
Delete;
end;
料单数据表的格式化打印采用了grip++report报表控件。利用该控件不仅可以实现报表的打印、打印预览、数据导出等常规功能,还可实现报表查询显示功能。一些复杂特殊的报表,如动态报表、多层表头、票据打印,发票套打、交叉表等也可利用该控件实现打印。
5结束语
在信息技术高速发展的今天,信息如何更高效、迅捷、安全地互连互通,如何实现数据、资源共享,如何优化业务流程,简化操作步骤、确保人、财、物的安全,信息化、网络化建设无疑是一条可行之路。该文针对器材管理业务,按着标准的数据库应用系统开发流程,设计并实现了一个器材管理信息系统原型,为开发面向信息管理系统的各种应用提供了一个标准参考模型。
参考文献:
[1]周兴华,李曾民,臧洪光. Delphi7数据库项目案例导航[M].北京:清华大学出版社,2005.
[2]耿静,王遵立.用Delphi开发数据库的编程方法[J].计算机系统应用,2000,12.
[3]张文修,梁怡,吴伟志.信息系统与知识发现[M].北京:科学出版社,2003 .
[4]左美云,邝孔武.信息系统的开发与管理教程[M].北京:清华大学出版社,2001 .