1、宾馆人事劳资管理系统 目 录摘要:前言第一章 开发宾馆人事劳资管理系统的问题1.1 宾馆人事劳资管理系统的简介1.2 宾馆人事劳资管理系统的用户需求第二章 宾馆人事劳资管理系统的分析和设计2.1 宾馆人士劳资管理系统的分析与概要设计2.2 宾馆人士劳资管理系统的数据库设计第三章 宾馆人事劳资管理系统的具体实现3.1 模块的开发环境的简介POWERBUILDER3.1.1 事件驱动的应用程序3.1.2 POWERSCRIPT 语言与函数3.1.3 面向对象的编程3.1.4 跨平台的开发3.1.5 与数据库的连接性3.2 系统模块的具体实现3.2.1 员工基本信息模块3.2.2 员工工资管理模块3
2、.2.3 员工考勤管理模块3.2.4 系统维护模块3.3 系统开发的其他方面第四章 结束语参考文献摘 要宾馆人事劳资管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强,数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。经过分析如此情况,我们使用POWERSOFT公司的POWERBUILDER开发工具,利用其提供的各种面向对象的开发工具,尤其是数据窗口这个能方便而简洁操纵数据库的智能化对象,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满
3、意的可行系统。关键字:原形法,面向对象,数据一致性,数据窗口,信息管理系统。前 言人事劳资管理系统是一个企业单位不可缺少的部分,它的内容对于企业的决策者和管理者来说都至关重要,所以人事劳资管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对人事劳资信息进行管理
4、,具有着手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高人事劳资管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。因此,开发这样一套管理软件成为很有必要的事情,在下面的各章中我们将以开发一套宾馆人事劳资管理系统为例,谈谈其开发过程和所涉及到的问题及解决方法。第一章 开发宾馆人事劳资管理系统的问题1.1 宾馆人事劳资管理系统的简介 宾馆人事劳资管理系统是针对宾馆人事处的大量业务处理工作而开发的管理软件。根据用户的要求,实现人员基本情况管理、工资管理、和考勤管理。等几个方面的功能。用户通过输入工资、考勤、员工履
5、历等基本信息,由系统自行生成相应的统计数据及各类统计报表以供用户查询、打印,另外用户还可以对这些基本信息进行定期的更新和删除,宾馆人事劳资管理系统力求给用户方便快捷的途径去管理这些烦琐的数据。1.2宾馆人事劳资管理系统的用户需求 总体功能需求宾馆人事劳资管理系统是针对宾馆人事处的大量业务处理工作用计算机进行全面现代化管理,主要包括人员基本情况管理、工资管理、和考勤管理。等几个方面的功能,以实现用户方便的输入、查询、统计、打印相关报表的业务需求。 具体系统功能需求描述(1)员基本情况管理 提供对“宾馆人员履历表”数据输入、组合条件查询、统计、打印功能,实现“员工花名册”数据生成、查询、统计、打印
6、功能。(2)员工工资管理 提供对“宾馆员工工资表”数据的输入、查询、按宾馆统计、打印功能,完成每月对“宾馆员工工资表”数据的月统计,以此生成“宾馆员工工资总额构成情况表”实现该表的查询、打印功能。实现每季由“宾馆员工工资总额构成情况表”生成“宾馆员工工资总额季度汇总表”及该表的查询、打印功能。(3)员工考勤管理提供对各单位(宾馆)“月考勤登记表”数据的录入、查询、统计功能:根据“月考勤登记表”数据分单位按各种日考勤标志进行分类统计,且生成“宾馆员工月考勤统计表”,数据及“宾馆员工月考勤统计汇总表”数据,实现该表的查询、打印功能。第二章 宾馆人事劳资管理系统的分析和设计2.1宾馆人士劳资管理系统
7、的分析与概要设计根据实际情况,我们使用原形法(Rapid Prototyping)即以少量代价快速地构造一个可执行的软件系统模型。使用户和开发人员可以较快地确定需求,然后采用循环进化的开发方式,对系统模型作连续的精化,将系统需具备的性质逐渐增加上去,直到所有的性质全部满足。此时模块也发展成最终产品了。通过对用户需求的分析,我们可以分析出该宾馆人事劳资管理系统大致可以分为四个模块:人员基本情况模块、员工工资管理模块、员工考勤管理模块、系统维护模块。下图说明四者的关系:人事劳资管理系统人员基本情况模块员工工资管理模块员工考勤管理模块系统维护模块现在对这四个模块做具体说明: 人员基本情况模块:输入:
8、员工信息输出:“宾馆人员履历表”“员工花名册”功能:对宾馆人事基本信息的查询、统计和打印。 员工工资管理模块:输入:人员月工资输出:“宾馆员工工资表的月统计”,“宾馆员工工资总额构成表”以及“宾馆员工工资总额季度汇总表”。功能:完成宾馆员工工资的查询、统计和打印。 员工考勤管理模块:输入:员工每日考勤情况输出:“月考勤登记表”、“宾馆员工月考勤统计表”、“宾馆员工月考勤统计表”。功能:完成对员工考勤情况的查询、根据日考勤标志进行分类统计及表的打印。 系统维护模块:输入:输出:功能:完成对系统数据和数据库的维护,如用户名、密码的更新,数据库数据的备份、恢复以及定期删除,还有单位的编码化。2.2宾
9、馆人士劳资管理系统的数据库设计 由于考虑到本系统是应用在单机系统上,另外根据宾馆人员规模,我们只建立一个数据库,在此数据库基础上建立起如下表: 员工基本信息表 employee_information_table 员工工资表 employee_salary_table 员工考勤表 employee_attendance_table 单位编码表 company_code_table 系统信息表 system_table另外,根据实际统计需要,我们另外建立两个统计表,用以存放部分统计表的信息以便查询。 员工工资统计表 employee_salary_sum 员工考勤统计表 employee_att
10、endancd_sum下面我们详细说明: 员工基本信息表 employee_information_table主键:员工编号 Workercode列名(中文) 列名(英文) 数据类型 宽度 小数点位数 是否为空员工编号 Workercode Integer No身份证号 Id Integer No档案号 Integer No员工姓名 Name Varchar 10 No曾用名 C_name Varchar 10 Yes性别 Sex Char 2 No民族 National Varchar 10 No职务 Job Varchar 20 No出生年月 Born Date No本人成分 Cheng_
11、feng Varchar 10 No政治面貌 Mian_mao Varchar 10 No加入时间 Time_join Date Yes文化程度 Wen_hua Varchar 10 No毕业学校 School Varchar 20 Yes毕业时间 Time_bi_ye Date Yes 所学专业 Zhuan_ye Varchar 20 Yes 籍贯 Ji_guan Varchar 20 No 家庭住址 Address Varchar 40 No 工作时间 Time_work Date No 加入工会时间 Time_gonghui Date Yes 调入单位时间 Diao_ru Varchar
12、 20 No 职称 Zhi_cheng Varchar 20 Yes 批准职称时间 Time_pz_zc Date Yes 工人技术等级 Deng_ji Varchar 20 Yes 批准技术等级 Time_pz_zw Date Yes 时间 机师职务 Ji_shi Varchar 20 Yes 批准机师职务 Time_pz_js Date Yes 时间 评为先进荣誉 Time_xianjin Date Yes 称号时间 称号 Cheng_hao Varchar 40 Yes 立功情况 Li_gong Varchar 40 Yes 受处分时间 Time_chufen Date Yes 处分 C
13、he_fen Varchar 40 Yes 签订合同时间 Time_he_tong Date No 合同期限 Qi_xian Varchar 20 No 续定情况 Xu_ding Varchar 20 No 岗位岗次 Gang_wei Varchar 10 No 岗位工资 Salary_gw Numeric 8 2 No 技能工资 Salary_jn Numeric 8 2 No 连动工资 Salary_ld Numeric 8 2 No 技能级别 Ji_neng Varchar 10 No 备注 Bei_zhu Varchar 100 Yes 婚姻状况 Jie_hun Char 10 Yes
14、 爱人姓名 Ai_name Varchar 10 Yes 爱人出生年月 Ai_birthday Date Yes 爱人政治面貌 Ai_face Varchar 10 Yes 爱人单位 Ai_dan_wei Varchar 10 Yes 员工工资表 employee_salary_table主键:员工编号 Workercode, 日期: Date列名(中文) 列名(英文) 数据类型 宽度 小数点位数 是否为空员工姓名 Name Varchar 10 NO 日期 Date Date NO 员工编号 Workercode Integer 10 NO 岗位工资 Salary_gw Numeric 8
15、2 NO 技能工资 Salary_jn Numeric 8 2 NO 工龄工资 Salary_gl Numeric 8 2 NO 连动工资 Salary_ld Numeric 8 2 NO 房水电费 Wd_fei Numeric 8 2 NO 卫生费 Ws_fei Numeric 8 2 NO 洗理车补费 Xlcd_fei Numeric 8 2 NO 地区差 Dqc Numeric 8 2 NO 备注 Bei_yong Numeric 8 2 NO 房租 Rent Numeric 8 2 NO 病假 Ill Numeric 8 2 NO 公积金 Gj_fei Numeric 8 2 NO 统
16、筹金 Tc_fei Numeric 8 2 NO 备用 Bei_zhu Numeric 8 2 NO 员工考勤表 employee_attendance_table主键:员工编号 Workercode, 日期: Date列名(中文) 列名(英文) 数据类型 宽度 小数点位数 是否为空员工姓名 Name Varchar 10 No员工编号 Workercode Integer 6 No日期 Date Date No 第一天 1_ Varchar 10 No 第二天 2_ Varchar 10 No 第三十一天 31_ Varchar 10 No 应出勤人数 Yin_chu_qing Intege
17、r No 单位编码表 company_code_table主键:单位 Company列名(中文) 列名(英文) 数据类型 宽度 小数点位数 是否为空单位 Company Varchar 20 No单位编号 Code Integer No 系统信息表 system_table主键:用户名 Useid列名(中文) 列名(英文) 数据类型 宽度 小数点位数 是否为空密码 Password Varchar 20 No用户名 Useid Varchar 20 No 员工工资统计表 employee_salary_sum单位 Company, 日期: Date列名(中文) 列名(英文) 数据类型 宽度 小
18、数点位数 是否为空季末人数 Number Integer 10 No 日期 Date Date No 单位 Company Varchar 20 No 夜班费 Yb_fei Numeric 8 2 No 津贴备用 Jt_beiyong Numeric 8 2 Yes 补贴备用 Bt_beiyang Numeric 8 2 Yes 加班费 Jb_fei Numeric 8 2 No 奖金 Jiang_jin Numeric 8 2 No 其他工资 Othen_salary Numeric 8 2 No 实发工资 Shi_fa_salary Numeric 8 2 No 员工考勤统计表 emplo
19、yee_attendancd_sum单位 Company, 日期: Date列名(中文) 列名(英文) 数据类型 宽度 小数点位数 是否为空在编人数 Zb_number Integer No 日期 Date Date No 单位 Company Varchar No 外借人数 Wj_number Integer No 应出勤人数 Ycq_number Integer No 考勤人数 Kq_numbert Integer No 探亲假 Tanqin Integer No 婚假 Hunjia Integer No 丧假 Sangjia Integer No 事假 Shijia Integer No
20、 病假 Binjia Integer No 旷工 Kuanggong Integer No 产前假 Chanqianjia Integer No 产假 Chanjia Integer No 以上几张表均属于基本表,根据用户需求我们又设计几张视图 员工花名册表数据源:员工基本信息表(employee_information_table) 宾馆员工工资总额构成表,宾馆员工工资总额季度汇总表数据源:员工工资表(employee_salary_table), 员工工资统计表 (employee_salary_sum) 宾馆月考勤统计表,宾馆员工月考勤统计表数据源:员工考勤表(employee_atte
21、ndance_table) 员工考勤统计表(emplotee_attendance_sum)另外,要声明的是,在本数据库的几张表中没有定义外键,其原因主要是几张表的主键的特点。所以为了保持数据一致性就通过程序完成。第三章 宾馆人事劳资管理系统的具体实现3.1 模块的开发环境的简介_ POWERBUILDERPOWERBUILDER 简介POWERBUILDER是美国著名的数据库应用开发工具生产商POWERSOFT推出的成功产品。它是完全按照CLIENT/SERVER体系结构研制设计。采用面向对象技术、图形化的应用开发环境。是数据库的前端开发工具:由于它所开发的各种应用程序都充分利用了图形化用户
22、接口(GUI)的优点。所以POWERBUILDER被认为是一个图形工具。在CLIENT/SERVER结构的应用中,POWERBUILDER具有描述多个数据库连接与检索的功能,特别是POWERBUILDER能从大多数流行的RDBMS提取数据。而且不管数据存放在什么地方。另外,各种应用程序也可以独立与RDBMS,因为可以使用数据库标准操作语句SQL进行通讯。正在成为CLIENT/SERVER应用开发的标准。它为应用开发提供了全面、综合性的支持,可以分别概括为如下几点:1. 事件驱动的应用程序2. POWERSCRIPT语言与函数3. 面向对象的编程4. 跨平台开发5. 与数据库的连接性3.1.1
23、事件驱动的应用 POWERBUILDER的应用程序是事件驱动的。即用户通过各种动作控制应用程序的流程。例如:当单击某个按钮或在某个编辑框中输入数据都会触发相应的事件。用户可以通过编写脚本(Script)来说明当事件被触发时所要完成的处理过程。POWERBUILDER给开发人员提供了一个集成环境。应用的各种成分、包括窗口、菜单、事务逻辑、数据库存储、数据库生成、图形、报表等全部都在POWERBUILDER内开发,而不必再到其他环境中去做。3.1.2 POWERSCRIPT语言与函数 POWERSCRIPT是POWERBUILDER的功能很强的第四代编程语言。用POWERSCRIPT语言编写的程序
24、通常称为(Script)。脚本是由POWERSCRIPT命令、函数和相应末某一事件所要完成的处理过程的语句所组成的。它能使开发人员很容易地将简单工作复杂的事务逻辑与应用相匹配。它由几百个函数用于操作对象、数字、文字和日期等信息并全面支持的DDE和全文本的I/O。 例如为某个按钮上的Clicked事件则编写的脚本、可能要进行的处理是从数据库中检索和显示数据。事件本身也可以触发其他事件,例如当一个按钮上的Clicked事件要打开一个窗口时就触发了一个窗口上的Open事件。 POWERSCRIPT还提供了丰富的内置函数,可以利用这些函数对应用程序的各种对象的控件进行处理,如打开窗口的函数更新数据库的
25、函数等。 此外,用户还可以定义自己的函数在应用程序中来执行某种特定的处理过程。外部函数可在POWERBUILDER内说明和访问,就如同内置的POWERBUILDER函数一样。3.1.3 面向对象编程 在POWERBUILDER中创建的每一个菜单和窗口都是一个模块称为对象(Object)。POWERBUILDER应用程序基本的构建块是用户所创建的对象,每一个对象都具有一些特性和行为(属性、事件和功能)利用诸如封装型、继承性和多态性这样的面向对象的编程技术。开发人员可以最有效利用所创建的每一个对象。使用应用程序具有可通用性可扩展性和强有力的功能。 POWERBUILDER应用由一系列对象组成,包括
26、有函数、菜单、结构和数据窗口、用户对象、用户事件等等,对象中有包含若干控件,如命令按钮、单行编辑器等这些对象和控件都可在许多应用中重复使用。3.1.4 跨平台开发 POWERBUILDER支持跨平台的开发和分布。例如:WINDOWS利用POWERBUILDER开发的应用程序。可以将应用程序分布到UNIX的平台运行,反之亦可。3.1.5 与数据库的连接性 POWERBUILDER提供了与底层数据库系统的连接。POWERBUILDER支持不同关系的数据库管理系统并充分发挥每一个数据库的特长。开发人员和利用内置的高性能数据库引擎SYBASE SQL Anywhere生成独立应用或脱离服务器运行的服务
27、以上的应用,在开发该宾馆管理系统时,笔者就是使用该种数据库引擎。POWERBUILDER存取数据库的方式有两种: 通过使用POWERSOFT的DBMS接口。ODBC(开放数据库连接)是微软公司的数据库连接标准。 通过使用由POWERSOFT提供的专用的直接也数据库相连的接口值得一提的是POWERBUILDER拥有数据窗口对象(DATAWINDOW)。它是一个智能对象是POWERSOFT公司的一项专利技术。它能操纵关系数据库的数据而无需编写SQL语言。利用该对象可以修改、更新、插入、删除、滚页、打印或以11种文件格式中的任何一种方式保留数据。数据窗口直接管理数据库的交互与控制。在本系统开发过程中
28、大多数报表均使用此对象生成,使用其操纵关系数据库的数据十分方便、快捷。它是一个支持数据操纵的封装性很好对象。3.2 系统模块的具体实现在本系统中有四个子模块组成。它们分别是员工基本信息模块、员工工资信息模块、员工考勤信息模块和系统维护模块,下面就开发这几个模块的过程及所遇到的问题分别加以介绍。3.2.1 员工基本信息模块 该模块主要完成员工基本信息的录入、查询、统计及打印功能。在此模块中定义了三个主要窗口:员工花名册窗口、员工履历表信息窗口和组合条件查询窗口。后两者均需通过前者访问。(其总体框架如图3.2.1.1所示) 员工花名册窗口中显示的是员工必要信息。可供用户浏览查询及以其记录为单位的操
29、作。如果用户修改某一记录中的某一项,可双击该条记录进入员工履历表窗口,此窗口使用数据窗口的FREEDOM风格(典型的录入界面)。该种风格特点是列标题紧挨着数据列。在此窗口显示的是员工的详细资料,在此窗口还可以增加新员工记录。 该模块的第三个窗口是多条件查询窗口,在此窗口中应用了数据窗口这一智能化对象。所以多条件查询也就变得简单起来,只要通过修改数据窗口的QUERYMODE属性。(DW_1.OBJECT.DATAWINDOW.QUERYMODE=“YES”) 用户只要输入组合条件,系统就会自动检索出数据,开发人员可以不用在编写冗长的SQL语句。从此一点就可以看出数据窗口的优越之处。(其流程框图3
30、.2.1.2所示) 窗口“宾馆职工工资总额统计表”。的数据源均是从数据库EMPOYEE_SALARY_SUM 表中选出。其功能包括打印、预览。由于所打印的表大多很长,很难一个屏幕内放下,这就使得用户预览不到整体的效果。所以在窗口中均动态修改了数据窗口的放大倍数DW_1.Modify(Data Window.Zoom=50),缩小了百分之五十的面目出现。这就是用户可以一览打印表全貌,达到打印效果。另外,由于所要求输出的打印表是典型的中国式的表格而POWERBUILDER没有提供相应的风格,所以只有通过选择TABLUR风格的表格(该种风格充许数据列跨页或跨带显示,用户可以根据自己的需要重新组织安排
31、这些数据),自行画线分组增加表头文字。以此达到用户打印表的要求。3.2.3 员工考勤管理模块 该模块完成是对职工考勤信息的输入和查询。并以此数据为基础生成“宾馆职工月考勤统计表” 此模块主要包括三个窗口,考勤登记窗口、宾馆职工月考勤、宾馆职工考勤统计窗口,后两者均可通过第一个窗口的菜单项选择而访问到。由于在模块中使用的方法和程序框图与职工工资管理模块大致相同,所以这里也就不一一列举了。3.2.4 系统维护模块 此模块除完成数据的一般性维护,如数据的恢复与备份、数据的定期删除,还提供了本系统的部分维护功能,如系统的初始化,(该项功能将删除数据库中所有数据,所以仅在系统初始生成时使用)另外还有密码
32、的修改和单位编码。 下面就数据维护和单位编码分别进行以下讨论: 尽管系统中采取各种措施来防止数据的安全性和完整性的破坏,但由于计算机系统中硬件的故障、软件的错误、操作员的失误以及故意破坏,问题仍然是不不可避免的,而且这些故障轻则造成运行事务非正常中断,影响数据库中数据的正确性,重则破坏数据库,使数据库中全部或部分数据丢失。因此作为一个完整的管理信息系统,数据的备份和恢复当然是少不了的,在这里我们使用数据窗口提供的SAVEAS()函数和IMPORT()函数分别作为数据的备份和恢复,要声明的是在这个过程中我们把指定的文件名设为NULL。以便使系统弹出公共对话框有用户选择文件名和保存路径以及保存格式
33、,这给用户提供了更大的自由度,当然,也带来了一些问题。例如:如果用户选择的保存格式为TEXT WITH HEADERS是 (即含表头的文件格式),在恢复过程中就会报错,所以这点在帮助的文挡中特别加以注明。 至于单位编码问题,主要是为了减少数据库冗余,因为根据用户需求职工编码的前三位就唯一标识单位,所以就在系统维护中特别添加此项。在开发此过程中遇到不少困难, 例如:在用户修改编码时,如果不保存原有的编码就无法更新职工编号,就造成数据丢失,为解决这一问题就做了以下的工作:首先在修改后保存前,先把数据库编码(待改编码) 保存起来,然后把修改的编码(还未保存编码)从数据缓冲区中取出,然后以待改编码为
34、检索条件。检索出职工编码,修改成新的编码,最后保存起来。3.3 系统开发的其他方面 在这一节中,我们主要讨论两个问题,一个是系统的联机文档,另一个是系统的测试,下面我们分别加以说明:作为一个完整的系统,联机文档是其中不可缺少的部分,也是相当重要的部分。好的 文档能够使用户快速了解并准确的使用系统的各项功能。减少误操作,减少错误产生的可能,这对用户和开发人员都有很多的好处。所以在开发本系统中,也加入了不少文档,除了对于四大模块的详细说明外,对于易出错和不易操作的地方(如多条件查询部分)又作了详细的说明。由于程序员本身能力的局限性,所以做编写的代码,即使经过反复检查也难免出错, 所以在本阶段力求使
35、用有限的时间找出尽可能的错误,力求系统尽量正确。我在本系统的 测试中使用了黑墨法(即不关心程序内部的逻辑结构,而是根据程序的功能来设计是检测),请一位不熟悉本系统的人来进行随意性的操作,打破习惯的操作顺序,从中发现错误,在此阶段系统的大量错误得到了改正,使之完善。第四章结束语经过几个月的设计和开发,宾馆人事劳资管理系统基本开发完毕,其功能基本符合用户需求,能够完成员工基本信息、工资、考勤的输入和统计。以及各类相关报表的打印。并提供部分系统维护功能,使用户方便进行数据备份和恢复、数据删除。同时也考虑到了单位编码,以减少数据冗余的问题,对于数据的一致性的问题也通过程序进行了有效的解决。但是由于毕业设计时间较短,所以该系统还有许多不尽如人意的地方,比如联机文档比较少,用户界面不够美观,出错处理不够等多方面问题。这些问题有待进一步改善。使之加以完善。