【摘要】本文围绕一个 ” 人事工资管理系统 ” 程序的设计和应用系统的开发课题为背景,介绍了以在DELPHI和SQL SERVER为语言编写管理信息系统的过程。该程序通过DEPLHI的ADO数据对象来实现DELPHI前台与后台SQL SERVER数据库的连接,并具有典型的数据库应用系统的特征,完成了系统结构与现实生活的紧密结合。 管理系统的开发不仅是一个应用程序编写的过程,更重要的是在系统分析和设计阶段所做的工作。该程序在设计过程中严格遵循软件工程学的方法,用分阶段的生命周期计划管理,并主要讲述了程序的总体设计、详细设计阶段,对程序进行需求迭代,不断修正和改进,利用SQL SERVER的强大数据库功能,直到形成一个完善的可行性系统.优美、秀丽的界面,方便实用的查询与维护功能共同构成了 “ 人事工资管理系统 ” 。 关键词: Delphi ; SQL Server ;数据库;软件工程;管理信息系统 1 绪论 随着计算机的日益普及和网络的发展,数据库的应用范围越来越广,数据库应用的功能也越来越强,因此编写管理信息系统应用程序也显得尤为重要,在强调管理,强调信息的现代社会中它变得越来越普及。 人事工资管理是任何企事业单位都需要进行的一项工作,因此,开发制作人事工资管理系统具有较大的社会现实意义,同时人事工资管理系统是一切应用系统的典范,它具有一切应用系统的特征,系统结构与现实生活紧密结合,具体直观,具有典范的数据库系统的特性。人事工资管理系统主要用于企业内部员工的档案、工资、考勤、职称评定的管理,便于公司领导掌握人员的动向,及时调整人才的分配,同时也减少了手工操作带来的一些繁琐与不便,使员工情况的记录和统计变得十分简单.这些优点可以极大的提高企业对人事工资管理的效率.因此,人事工资管理系统是企事业信息化、智能化、科学化和正规化不可缺少的管理软件。 本系统开发的目的一方面从提高人事工资管理工作的效率出发,摆脱过去由人用纸和笔进行的费时费力的繁重工作,如何通过设计一个切实可行的软件系统用于解决人事工资管理中信息处理总量大、内容繁多、手段落后的现状,即利用成熟的计算机系统来实现人事工资管理工作的自动化 [1] 。本系统根据企业管理的一些实际情况而编制的一套自动化的人事工资管理系统。 人事工资管理系统针对企业员工信息的处理工作采用计算机进行全面的现代化管理,主要包括: 1) 员工基本信息管理; 2) 员工考勤信息管理; 3) 员工奖惩信息管理; 4) 员工履历信息管理; 5) 职称信息管理; 6) 工资信息管理。 人事工资管理系统的数据要求具有一定的保密性禁止非法用户使用。在用户使用过程中对用户的权限具有一定的限制,防止个别用户对员工信息做出修改、删除等操作,人事工资管理系统力求以方便快捷的途径去管理手工操作的每繁琐数据。 本文首先介绍了人事工资管理系统所涉及工具和一些相关的理论知识,并注重介绍了管理系统和数据库,其中包括对在DELPHI7.0 和SQL SERVER 2000的使用和特点进行了介绍,然后对所做系统进行总体设计,数据库的设计、系统的功能实现、系统的运行与测试,从这几个方面详细阐明系统的设计过程。最后,在编程实现的过程中,介绍本人使用DELPHI7.0对数据库基应用程序进行设计、开发与实现的思路、算法、并得出结论。 2 相关工具的基本理论 2.1 关于DELPHI的说明 Delphi是一个前台开发工具。它是一个集成可视化应用程序的开发环境,Delphi的开发环境简洁好用、易于掌握。其类库还可以帮助程序员处理传统的Windows程序设计中那些繁杂、单调、重复的设计工作。 Delphi吸取了Microsoft Windows图形的许多先进特性和设计思想,继承了Pascal程序设计语言中优越的全功能平台,弥补了可视化编程与全功能平台之间的障碍,而且继承了编程效率高,代码质量好和面向对象等优点,解决了诸如Vidual Basic等可视化程序设计语言中的代码执行效率低下等问题 [2] 。 Delphi是著名的BORLAND公司开发的可视化软件开发系统,它基于Windows98/Windows NT,具有如下的特点: 1) Delphi是一个可视化的快速应用程序开发工具,具有高效、优化的原代码编译器,可视化的应用程序开发环境和可扩展的数据库技术,适用于各种类型的可视化程序开发。 2) Delphi的编程语言Object Pascal是一个面向对象的结构化语言,可产生高效的执行代码。同时编译速度之快是Visual Basic所望尘莫及的。 3) Delphi有完善的处理机制,得以自动处理异常状况。 4) Delphi具有功能强大的而又使用方便的数据库支持能力,可以支持多种数据库。 2.2 关于管理信息系统 管理信息系统(MIS)是一个以人为主导的,集成了计算机网络技术、通信技术、信息处理技术,能对信息收集、传递、存储及加工处理,并能辅助决策、事务管理的一种人机交互的智能化计算机系统。因此对于管理信息系统通俗理解可以是:管理信息系统=管理业务+数据库技术+通信网络技术 [3] 。 管理信息系统起初应用于最基础的工作,如计算工资、人事工资管理等,进而发展到企业财务管理、库存管理等单项业务管理,这属于电子数据处理系统。当建立了企业数据库,有了计算机网络从而达到数据共享后,从系统观点出发,实施全局规划和设计信息系统时,就达到管理信息系统的阶段。随着计算机技术的进步和人们对系统的需求进一步提高,人们更加强调管理信息系统能否支持企业高层领导的决策这一功能,更侧重于企业外部信息的收集、综合数据库、模型库、方法库和其他人工智能工具能否直接面向决策者,这是决策支持系统的任务。 我国20世纪70年代末有少数企业开始MIS的局部应用。“六五”期间, 选择一些大企业进行MIS的开发试点, 其中首都钢铁公司、北京第一棉纺厂、湖北第二汽车制造厂、宁江机床厂等取得了经验。20世纪80年代中后期,在全国性的计算机应用热潮中,许多企业纷纷从财务管理、人事工资管理等单项应用入手,尝试建立MIS [4] 。 2.3 数据库系统概述 数据库系统是指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统、应用系统、数据库管理员和用户构成。应当指出的是,数据库的建立、使用和维护等工作只*一个DBMS远远不够,还要有专门的人员来完成,这些人被称为数据库管理员。 在一般不引起混淆的情况下常常把数据库系统简称为数据库。数据库技术是应数据管理任务的需要而产生的。在应用需求的推动下,在计算机硬件,软件发展的基础上,数据管理技术经历了人工管理、文件系统、数据库系统三个阶段。 与人工管理和文件系统相比,数据库系统的特点主要有以下几个主面:数据的结构化;数据的共享性高、冗余度低、易扩充;数据独立性高;数据由DBMS统一管理和控制 [9] 。 目前,数据库己经成为现代信息系统的不可分离的重要组成部分。20世纪80年代后不但在大型机上,在多数微机上也配置了DBMS,使数据库技术得到了更加广泛的应用和普及,是计算机领域中发展最快的技术之一。 2.4 ADO与SQL SERVER 2000 2 .4.1 A xtiveX数据对象 — ADO ADO(ActiveX Data Object)是微软公司推出的一套数据库访问规范,即Active 数据对象:实际是一种提供访问各种数据类型的连接机制 [5] 。ADO设计为一种极简单的格式,通过ODBC的方法同数据库接口相连。用户可以使用任何一种ODBC数据源。ADO集中了RDO和DAO的优点,可以通过简单的编程实现和各种数据结构进行连接。 ADO通过下面几步来完成对数据库的操作: 1)创建一个到数据源的连接,边接到数据库;或者开始一个事务。 2)创建一个代表SQL命令行的对象。 3)执行命令行。 4)如果返回以表格形式组织的数据,则将它们保存在缓存中,产生相应的数据集对象。这样便于查找,操作数据。 5)通过数据集对象对数据进行各种操作。 6)更新数据库,如果使用事务,确认是否接受事务期间发生的数据变化。 7)结束连接和事务。 使用ADO的目的是进入数据源,使得修改,更新数据成为可能 [5] 。 2.4.2 关于SQL SERVER 2000 SQL Server 2000不仅吸收了许多新的功能以增加系统的运行性能,而且还使数据库的管理工作更加轻松。在过去,数据库都是安装在服务器或是工作站上的,所用的操作系统都是UNIX或专用系统,价格比较高,SQL SERVER 2000可以安装在个人计算机上,价格要低的多 [6] 。SQL SERVER 2000可以使操作系统具有应用程序数据库,并被优化支持未连接用户或移动用户 [7] 。它也用于在单用户机器上进行小型应用程序的开发 , 能够很好的满足我们的需要。 3系统需求分析与总体设计
3.1 需求分析 需求分析是软件定义的最后一个阶段,它的基本任务是回答“系统必须做什么 ” 这个问题 [8] 。需求分析的任务不是确定系统怎样完成他的工作 , 而仅仅是确定系统完成哪些工作 , 也就是对目标系统提出完整、准确、清晰、具体的要求。 可行性研究阶段产生的文档 , 特别是数据流成图 , 是需求分析的出发点。数据流成图中已经划分出系统必须完成的许多基本功能 , 系统分析员将仔细研究这些功能并进一步将它们具体化。需求分析的结果是系统开发的基础 , 关系到工程的成败和软件产品的质量。因此 , 必须用行之有效的方法对软件需求进行严格的审查验证 [9] 。 3.2 系统设计 3.2.1 系统功能分析 系统开发的总体任务不仅对企业中各种人事信息进行记录与管理,还对员工的工资信息进行管理。系统功能分析是在系统开发的总体任务的基础之上完成的。人事工资管理系统主要有以下几项功能: 1) 员工基本信息管理:对员工的基本信息进行输入 , 查询和修改。 2) 员工考勤管理:包括考勤的添加 , 查询 , 修改和删除。 3) 奖惩信息管理:对奖惩信息进行录入与维护。 4) 员工履历管理:包括对履历的查询与维护。 5) 职称信息管理:包括职称信息的添加 , 查询 , 修改和删除。 6) 员工工资的管理:包括工资的添加 , 工资查询 , 工资报表 , 修改和删除。 7) 管理员以及其它功能模块。 仔细分析调查有关企业人事信息需求的基础上 , 将得到功能模块图如图 3-1 所示。 图3-1系统功能模块图 3.2.2 数据流程图 根据系统功能的要求 , 可以将系统分解成几个功能模块来分别设计 , 数据流程如图 3-2 所示。 图3-2 系统数据流程图 3.3 数据库设计 3.3.1 数据库需求分析 数据库的设计是指对于一个给定的应用环境,构造最有效的数据库模 式,建立数据及应用系统,实质能够有效地存储数据,满足用户的需求,数据库设计是在数据库管理系统支持下进行的。 根据数据流程图和 , 可以列出以下数据项和数据结构 : 员工基本信息 : 员工编号 , 档案编号,员工姓名 , 部门名称,性别 , 出生日期 , 籍贯 , 学历,专业,政治面貌 , 毕业院校 , 参加工作时间,入本单位时间,电话,照片,备注。 考勤管理 : 员工编号 , 员工姓名 , 月份编号 , 本月天数 , 公休假天数 , 应出勤天数 , 出勤天数 , 出差天数 , 缺勤天数 , , 请假次数 , 迟到次数 , 早退次数 , 节假日加班 , 其它加班 , 备注。 职称评定 : 员工编号 , 员工姓名 , 评定日期 , 评定单位 , 评定职称 , 备注。 工资管理 : 记录编号,员工编号 , 员工姓名 , 基本工资 , 公共补帖,出差补帖,奖金 , 加班费 , 扣考核,养老金 , 医疗保险 , 医疗保险,工伤保险,失业保险,失业保险,住房公积金,所得税 , 实发工资 , 月份。 员工履历管理 : 记录编号 , 员工编号 , 员工姓名,起始日期,结束日期,单位名称,本单位工作时间,担任职务,级别,备注。 奖惩信息管理 : 记录编号 , 员工编号,员工姓名 , 奖惩日期,奖惩类型,奖惩内容,奖惩原因,批准单位,备注。 管理员 : 用户名 , 用户密码,权限级别。 3.3.2 实体之间的E – R模型 得到上面的数据项和数据结构以后 , 就可以设计出能够满足用户需求的各种实体 , 以及它们之间的关系 , 为后面的逻辑结构设计打下基础。这些实体包含各种具体信息 , 通过相互之间的作用形成数据的流动。 如工资实体与员工实体之间的 E-R 模型如下图 : 图3-3员工属性 图3-4工资属性 图3-5工资属性 3.3.3 数据库逻辑结构设计 创建数据表时要根据系统设计的要求对数据库进行逻辑结构设计。既要考虑到需求分析还要考虑到数据库设计的一些规则 [10] 。本系统包含7张表,下面是这7张表的具体结构: 对每张数据表的操作都封装到对应类的方法和过程中,在使用类时先要实例 , 用完后要将实例释放 , 调用类中方法和过程时只需要向方法和过程传递参数就可以了 , 以上各表都被封装成对应的类 , 其单元文件分别为 : basedata_unit.pas , protitle_unit.pas , reward_unit.pas , wageinfo_unit.pas , workage_unit.pas , user_unit.pas , checkinfo_unit.pas 。 4 系统功能的实现 4.1 系统主界面 4.1.1 系统登录 人事工资管理系统的主界面采用多文档窗体(MDI), 使系统的加美观,方便实用,并在此基础上使用了DELPHI的第三控件使得系统的界面 更 加美观,友好。 在运行此系统时,经过一个启动画面后直接进入主界面但刚进入系统时,只有登录按钮可用 在登录主界面时,如果用户名和密码正确便可以对主界面上的对象进行操作,否则反之。如果连续三次用户或密码不正确,系统则自动退出。登录流程图如下: 图4-1 系统登录流程图 4.1.2 系统主界面 在主界面中,员工管理菜单是此系统的重要组成部份,其中包括6个主要功能模块:员工基本信息模块,考勤信息模块,奖惩信息模块,员工履历管理模块,职称信息管理模块,员工工资管理模块。另外还有一个系统管理模块和三个按钮,即:登录,系统注销和退出。在系统主界面的下方不仅显示系统的名称而且显示当前登录系统的操作员姓名和操作员的级别及当前的日期,其界面如下: 图4-2 系统的主界面 4.2 基本信息管理模块 该模块主要完成员工基本信息的输入、查询与维护,它定义了三个主要窗口:信息录入窗口、查询窗口、员工信息维护窗口。其界面如下: 图4-3 基本信息界面 在这个系统的功能实现过程中,对所有的表的操作都被封装成对应的类。因此,在每个表单中对表的操作时都会调用到该表的相应的封装类。以基本信息这个表单为例,该表单显示员工基本信息时调用了Tbase类中的方法和过程,因此要在基本信息界面单元文件的uses子句中加入该类的单元文件basedata_unit,代码如下: uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, bsSkinData, BusinessSkinForm, ComCtrls, DB, DBClient,Grids, DBGrids,StdCtrls,ExtCtrls,bsSkinCtrls,bsSkinGrids, bsDBGrids,basedata_unit, bsdbctrls, ExtDlgs,loginf; 同时要在下声明该类的实例 : private basedata:tbasedata; 基本信息管理模块主要用于显示所有的员工基本信息 , 员工的基本信息里存储了图版信息 , 如果不进行任何处理直接显示 , 则在 DBGrid 列表中显示出来的是 Blob 类型的值 ( 如图 4-4 所示 ) 。打开控件dbgrid1的OnDrawcolumncell事件,输入如下代码就可以在dbgrid1控件里显示出对应的图像内容,具体实现代码如下: procedure Tbaseform.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn;State: TGridDrawState); var area:trect;// 定义区域类型 bmp:tbitmap;// 定义图片类型 begin area:=rect; // 设置显示区域为矩形 if(column.Field=DBGrid1.Fields[6]) then begin bmp:=tbitmap.Create ; try bmp.Width :=(rect.Bottom-rect.Top)*3; // 设置图片的宽度 area.Right :=rect.Left +bmp.Width; // 设置显示区域的右端范围 bmp.Assign(DBGrid1.Fields[6]); // 指定图片来源 dbgrid1.Canvas.StretchDraw(area,bmp); // 在显示区域中画出图片 except bmp.Free ; end; area:=rect; area.Left :=area.Left +bmp.Height; //设置显示区域的左端区域 [1] [2] 下一页 |