实例1人事管理系统通过前面管理信息系统基础和PowerBuilder基础学习�我们初步掌握了使用PowerBuilder进行信息系统开发的基本知识。下面将通过一个个实例来说明如何利用PowerBuilder作为数据库前端开发工具�开发出具有使用价值的管理信息系统。人事管理系统实例是本书的第一个例子。因此对于实例开发过程中所涉及到的一些知识会有重点讲述。随着计算机技术的飞速发展�计算机在企业管理中应用的普及�利用计算机实现企业人事档案的管理势在必行。当前企业信息管理系统正在从C/S结构向B/S结构转移�但是由于安全性等方面的因素�C/S结构的管理信息系统仍然占据企业管理信息系统的主流。本书所讲述的实例都是C/S结构的管理信息系统。人事管理系统是现代企业管理工作不可缺少的一部分�是适应现代企业制度要求、推动企业劳动人事管理走向科学化、规范化的必要条件。第一节系统设计一、系统目标设计人事管理系统可以用于支持企业完成劳动人事管理工作�有如下3个方面的目标。��支持企业实现规范化的管理。��支持企业高效率完成劳动人事管理的日常业务�包括新员工加入时人事档案的建立�老员工转出、辞职、退休等。��支持企业进行劳动人事管理及其相关方面的科学决策�如企业领导根据现有的员工数目决定招聘的人数等。二、开发设计思想本系统开发设计思想有以下几点。尽量采用公司现有软硬件环境�及先进的管理系统开发方案�从而达到充分利用公司现有资源�提高系统开发水平和应用效果的目的。系统应符合公司人事管理的规定�满足公司日常人事管理工作需要�并达到操作过程中的直观、方便、实用、安全等要求。系统采用C/S体系结构�Client�客户端�负责提供表达逻辑、显示用户界面信息、访问数据库服务器�Server�服务器端�则用于提供数据服务。系统分析等前期工作应尽量详细完善�以便公司以后体系结构的改变�对于一些安全性要求不高的信息可以方便的采用Brower/Server的方式进行访问。系统采用模块化程序设计方法�即便于系统功能的各种组合和修改�又便于未参与开发的技术维护人员补充、维护。系统应具备数据库维护功能�及时根据用户需求进行数据的添加、删除、修改、备份等操作。三、开发和运行环境选择为节约开支�采用企业以购买的Oracle8数据库管理系统。前端采用PowerBuilder8.0作为应用开发工具。客户端软件在Windows95、Windows98、WindowsME以及Windows2000下均可安装使用。四、系统功能分析在系统开发总体任务的基础上完成系统功能分析。系统开发的总体任务一般由公司领导、包括人事处领导提出。本例中的人事管理系统需要完成如下功能。员工各种信息的输入�包括员工基本信息、学历信息、婚姻状况、职称等。��员工各种信息的修改。��对于转出、辞职、退休员工信息的删除。��按照某种条件�?查询、统计符合条件的员工信息。��对查询、统计的结果打印输出。��人事系统的使用帮助。五、系统功能模块设计在系统功能分析的基础上�考虑PowerBuilder程序编制的特点�得到如图1所示的功能模块图。人事管理系统系统模块输入模块维护模块查看模块报表模块帮助模块图1系统功能模块图第二节数据库设计人事管理系统是一个数据库应用系统�员工的所有信息都是保存在数据库中。在数据库应用系统的开发过程中�数据库的结构设计是一个非常重要的问题。我们这里所说的数据库结构设计是指数据库中各个表结构的设计�包括信息保存在哪些表格中、各个表的结构如何以及各个表之间的关系。数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响�好的数据库结构设计会减少数据库的存储量�数据的完整性和一致性相比较高�系统具有较快的响应速度�简化基于此数据库的应用程序的实现等等。由于数据库设计的重要性�人们提出了许多数据库结构设计的技术。但这些设计方法和设计者的工作经验有很大的关系。因此要从根本上解决所有数据库结构设计的问题�就需要多实践�在实践中积累经验和教训�最终成为数据库结构设计的专家。一、数据库需求分析数据库结构设计的第一个阶段�也是非常重要的一个阶段是数据库需求分析。在这个阶段主要是收集基本数据以及数据处理的流程�为以后进一步设计打下基础。需求分析主要解决两个问题���内容要求。调查应用系统用户所需要操作的数据�决定在数据库中存储什么数据。��处理要求。调查应用系统用户要求对数据进行什么样的处理�理清数据库中各种数据之间的关系。解决这两个问题的时候�程序编制人员需要向应用系统用户详细调查�保证信息收集的完整性。否则有可能后面所有的工作都白费。在数据库需求分析后�应该得到一个数据字典文档�包括3方面内容。��数据项。包括名称、含义、类型、取值范围、长度以及和其他数据项之间的逻辑关系。��数据结构。若干个数据项的有意义的集合�包括名称、含义以及组成数据结构的数据项。��数据流。指数据库中数据的处理过程�包括输入、处理和输出。这个数据字典在程序的开发过程中会不断发生变化。对于一个大型的软件开发过程�一般都需要一份详尽的数据字典。针对本实例�通过对企业员工管理内容和过程分析�设计的数据项和数据结构如下。��员工基本情况。包括的数据项有员工号、员工姓名、性别、所在部门、身份证号、生日、籍贯、国籍、民族、婚姻状况、健康状况、政治面貌、参加时间、血型、参加工作时间、员工状态、状态时间、家庭住址、联系电话等。��员工婚姻状况。包括的数据项有员工号、爱人姓名、爱人出生年月、结婚时间、爱人工作单位、爱人政治面貌、爱人工作职务等。��员工学历信息。包括的数据项有员工号、学历、专业、毕业时间、毕业学校、学校类型、外语1、外语1等级、外语2、外语2等级等。��企业工作岗位信息。包括的数据库项有工作岗位代号、工作岗位名称、工作岗位权力范围等。��企业部门信息。包括的数据项有部门代号、部门名称、部门经理、部门副经理等。有了上面的数据结构和数据项基础�我们就能进行下面的数据库设计了。二、数据库概念结构设计这一设计阶段是在需求分析的基础上�设计出能够满足用户需求的各种实体�以及它们之间的关系�为后面的逻辑结构设计打下基础。这个阶段不用考虑所采用的数据库管理系统、操作系统类型、机器类型等问题。这阶段可用的工具很多。用的最多的是E-R图(Entity-Relation�实体-关系图)�另外还有许多计算机辅助工具�ComputerAidedSoftwareEngineering�CASE�可以帮助进行设计。本书的实例都是采用E-R图的方法来进行数据库概念结构设计�在本书的第一个例子中先对E-R图的方法进行简单介绍。E-R图是描述数据实体及其关系的一种直观的描述工具。这种图中有���实体。用方框表示�方框内为实体的名称。��实体的各种属性。用椭圆表示�椭圆内为属性名称。使用线段将其和相应的实体连接起来。��实体之间的联系。用菱形表示�菱形内为联系的名称。实体和实体之间的联系较多�比较常见的联系有1:1、1:n和m:n这3种。��1:1。对于实体A构成的集合中每个实体�在实体集合B中至多只有一个实体与之相对应�反之亦然�称实体集合A和实体集合B之间是1:1的关系。��1:n。对于实体A构成的集合中每个实体�在实体集合B中有n(n0)个实体与之相对应�且对于实体集合B中的每个实体�在A中最多只有一个实体与之相对应�称实体集合A和实体集合B之间是1:n关系。m:n。对于实体A构成的集合中的每个实体�在实体集合B中有n(n0)个实体与之相对应�且对于实体集合B中的每个实体�在A中有m个实体与之相对应�称实体集合A和实体集合B之间是m:n关系图2为员工实体E-R图。员工员工基本信息员工学历信息员工婚姻状况图2员工实体E-R图图3为部门实体E-R实例2工资管理系统工资管理既是企业劳动人事管理的重要方面�同时也是企业财务管理的重要方面�因为它是和人、资都相关的方面。工资管理需要和员工人事管理连接�同时连接工时考勤和医疗保险等等�来生成企业每个职工的基本工资、津贴、医疗保险、保险费、实际发放工资等。工资管理是一项琐碎、复杂而又十分细致的工作,一般不允许发生差错。手工进行工资发放工作�需要反复地进行抄写、计算�不仅花费财务人员大量的时间�而且往往由于抄写不慎�出现张冠李戴,或者由于计算机的疏忽�出现工资发放错误的现象。同时工资的发放具有较强的时间限制�必须严格按照单位规定的时间完成计算和发放工作。正是工资管理的这种重复性、规律性、时间性�使得工资管理计算机化成为可能。计算机进行工资发放工作�不仅能够保证工资核算正确无误、快速输出�而且还可以利用工资数据库对有关工资的各种信息进行统计�服务于财务部门其他方面的核算和财务处理。不同的企业有着不同的人事制度、财务制度�也就决定了不同的企业具有不同的工资制度。本例按照一般企业都采用的工资计算公式�即根据员工的职务工种来确定基本工资�根据出工情况来扣除缺勤费�根据加班情况发放津贴�根据医疗保险费用给予报销费用�同时扣除社会保险费来生成一个员工的当月工资。第一节第一节系统设计一、系统目标设计��系统开发的总体任务是实现企业员工工资管理的系统化、规范化和自动化。��能够和人事管理系统、考勤管理系统相结合�真正实现企业高效、科学、现代化的员工管理。二、开发设计思想��尽量采用公司现有软硬件环境�及先进的管理系统开发方案�从而达到充分利用公司现有资源�提高系统开发水平和应用效果的目的。��系统应符合公司工资管理的规定�满足公司工资管理工作需要�并达到操作过程中的直观、方便、实用、安全等要求。��系统采用C/S体系结构�Client�客户端�负责提供表达逻辑、显示用户界面信息、访问数据库服务器�Server�服务器端�则用于提供数据服务。��系统采用模块化程序设计方法�既便于系统功能的各种组合和修改�又便于未参开发的技术维护补充、维护。��系统应具备数据库维护功能�及时根据用户需求进行数据的添加、删除、修改、备份等操作。三、系统功能分析工资管理涉及企业管理的多个方面�如员工职务工种变化、员工考勤情况、员工加班情况、员工医疗保险等等。根据这些信息�在每个月的某个固定时间�生成企业全体员工的月工资。对于月工资�能够实现按照员工、部门、月、年进行统计分析�产生相应报表。工资管理的特点是所关联的方面比较多�信息处理量比较大。因此对于本系统的设计�需要采取了下面的一些原则���在公司范围内统一各种原始单据的格式�统一帐目和报表的格式。��删除不必要的管理余�实现管理规范化、科学化。��程序代码标准化�软件统一化�确保软件的可维护性和实用性。��能够连接各个关联的数据库�获取数据库中的信息。保证各个数据库表格相关的项目之间具有相同的属性。在上面设计原则的基础上�完成系统功能分析。本例中的工资管理系统需要完成功能主要有���员工每个工种基本工资的设定。��加班津贴的管理。根据加班的时间和类型给予不同的加班津贴。��根据月工资生成公式�按照员工的考勤情况和工作表现�生成员工月工资。��员工年终奖金的生成。��企业工资报表的生成。支持各种不同形式的报表�如单个员工工资报表生成、部门员工工资报表生成、按照月份统计工资报表等。��工资管理系统的使用帮助。四、系统功能模块设计在系统功能分析的基础上�考虑PowerBuilder程序编制的特点�得到如图1所示的系统功能模块图。工资管理系统系统模块工资生成模块津贴管理模块医疗保险模块报表生成模块帮助模块图1系统功能模块图五、工资管理系统和企业中其它系统的关系工资管理系统是全企业信息管理系统的一个有机组成部分。它与企业中其他系统之间的关系如图2所示。升迁离职财务预算工资生成工资生成工资管理财务管理考勤管理人事管理考勤情况图2和企业中其他系统之间的关系第二节数据库设计一、数据库需求分析在仔细调查企业工资管理过程的基础上�得到系统所要处理数据的流程如图3所示。企业年度效益员工考勤加班津贴医疗保险基本工资月工资生年终奖金年奖计算公式设定工资计算公式设定图2和企业中其他系统之间的关系针对本实例�通过对企业工资