摘 要
随着计算机应用的普及和信息化进程的加快,管理信息系统(MIS)的应用也越来越普及。人力资源管理系统就是一种典型的管理信息系统(MIS).在经济飞速发展的今天,人力资源作为企业中最宝贵的资源,已变得越来来越重要。对于一个企业,建立一套人力资源管理系统是对人力资源实现有效管理的一个重要途径。
本文主要介绍了企业人力资源管理系统的设计与实现过程,包括开发工具的选择、数据库的选择、运行模式的选择等以及系统功能、流程的分析。
系统采用C/S开发模式,以VISUAL BASIC 6.O作为数据库前台开发工具,后台数据库采用SQL SERVER 2000,ODBC作为数据存取技术。
系统包括部门管理、人员管理、工资管理、查询管理以及用户管理五个模块,实现了人力资源管理中涉及的有关信息的有效管理.
关键词:人力资源管理;管理信息系统;客户端/服务器;数据库
Abstract:Management information system(MIS)has been used widely with
the popularization of computer application and the acceleration of informationizing.Human resource management information system is typical of management information system.Nowadays,as economy develops rapidly,human resource that is the most precious resource has become more and more important.Building a set of human resource management information system is an important way of the effective managing of human resource in enterprise.
This paper mainly introduces the process of designing and realizing of enterprise human resource management information system,including the selection of developing—tool,database,system partern and system analyzing of function,process.
The system adopts C/S developing pattern.The front database—developing too1 is VISUAL BASIC 6。0.The background database is SQL SERVER 2000 and data access technology 1s ODBC.
The system includes five main function modules:department management,employee management, salary management, inquiry management and user management.It can manage effectively information of human resource.
Keywords:human resource management,management information system,Client/Server,,database
- 2 -
目 录
第一章 绪 论 ..................................................... 1 1.1 管理信息系统概述 ............................................ 1
1.1。1 信息系统的分类 ........................................... 1 1.1.2 管理信息系统的发展历史 .................................... 2 1。1.3 管理信息系统的组成 ....................................... 2 1。1.4 管理信息系统的开发过程 ................................... 2 1.2 课题背景 .................................................... 3 1.3 选题动机及意义 .............................................. 3 第二章 客户机/服务器模式概述 ...................................... 5 2.1 C/S模式的形式.............................................. 5
2.2 C/S模式的系统结构.......................................... 5 2.4 C/S结构的优缺点............................................ 6 第三章 客户端开发工具Visual Basic 6。0 ............................ 7 3。1 Visual Basic 6.0中的数据访问技术.......................... 7
3.1。1 数据访问对象ADO/RDO/DAO................................ 7 3。1.2 ODBC API编程............................................ 7 3.1。3 使用SQL Server的VB库(VBSQL)为DB—Library API编程 ..... 8 3.2 使用ODBC API访问数据库 ..................................... 8 3.2。1 初始化ODBC............................................... 8 3。2.2 与ODBC数据源建立连接 .................................... 9 3。2.3 存取数据 ................................................. 9 3。2。4 检索结果集 .............................................. 9 3。2.5 结束应用程序 ............................................. 9 3.3 实现远程通信 ................................................ 9 第四章 SQL Server 2000简介 ....................................... 11 4.1数据库管理.................................................. 11
4。1。1 创建数据库 ............................................. 11 4.1.2 修改数据库 ............................................... 13 4。1.3 删除数据库 .............................................. 13 4。2 数据表管理 ................................................ 13 4。3 视图管理 .................................................. 14 第五章 系统的分析 ................................................ 16
5.1 需求分析 ................................................... 16
5。1.1 信息需求 ................................................ 16 5.1。2 功能需求 ................................................ 16 5。2 功能模块分析 .............................................. 17
5.3 系统流程分析 ............................................... 18 第六章 系统设计与实现 ............................................ 19 6.1 数据库设计 ................................................. 19
6.1。1部门表(Department)...................................... 19 6。1.2 人员基本情况表(Employees) .............................. 19 6。1.3 学历及学位表(Education) ................................ 19 6。1.4 行政、党派职务表(Position) ............................. 19 6.1.5 专业技术职务表(Professional Title) ...................... 19 6.1。6 个人简历表(Experience) ................................. 19 6.1。7 教育培训表(Training) .................................. 20 6。1.8工资信息表(Salary)....................................... 20 6.1.9 工资制度表(salaryRules) ................................. 20 6。1。10 考勤信息表(CheckIn) ................................... 20 6.1.11 家庭成员及社会关系表(FamiyMember) ...................... 20 6。1.12 用户表(Users) ......................................... 20 6.1.13 视图(Search) ............................................ 20 6。2 工程框架设计 .............................................. 21 6。2.1 模块设计 ................................................ 21 6.2。2类模块设计............................................... 24 6。3窗体设计................................................... 25 6。3.1 用户登录模块窗体设计 .................................... 25 6。3。2 部门管理模块窗体设计 ................................... 25 6。3.3 人员管理模块窗体设计 .................................... 26 6。3.4 查询管理模块窗体设计 .................................... 26 6。3。5 用户管理模块窗体设计 ................................... 26 6.4 服务器程序的开发 ........................................... 27 6.5客户机与服务器之间的通信过程与实现.......................... 27 第七章 结束语 .................................................... 29 致 谢 ........................................................... 30 参考文献 ......................................................... 31
- 4 -
第一章 绪论
第一章 绪 论
1。1 管理信息系统概述
计算机信息系统(IS),是一个基于计算机系统利用各类分析、计划、控制和决策的模型以及数据库的人—-机系统。它提供信息以支持组织的运行、管理和决策。
1。1.1 信息系统的分类
按照应用领域和功能的不同,信息系统可以分为以下几类: ●电子数据处理系统(EDPS)
Electronic Data Processing System,是最早最简单的IS,50年代开始起步,主要是用计算机代替人进行数据处理,以提高效率。
●管理信息系统(MIS) ‘
Management Information System,60年代提出,就是我们通常意义上的IS,主要用来提高信息处理效率和效能,强调信息共享.
●决策支持系统(DSS)
Decision Support System,属于战略级的管理信息系统,要求采用数据仓库(Data Warehouse)和数据挖据(Data Mining)技术来处理数据,支持类结构化问题的处理。
●办公自动化系统(OAS)
Office Automation System,强调利用先进的信息处理技术,把人的办公业务活动物化于人以外的各种设备中.提出于70年代末,目的是提高办公室的办公效率.
●设计、生产型企业的信息系统
这种类型的IS有很多种,像计算机辅助设计(CAD)、计算机辅助制造(CAM)、物流需求计划(MRP)、企业资源规划(ERP)、计算机集成制造系统(CIMS)等都属于这一类。
●地理信息系统(GIS)
Geographical Information Systems,兴起于80年代,支持对地图、图形等信息的管理。
1
企业人力资源管理系统设计与实现
1。1.2 管理信息系统的发展历史
信息作为生产力中最活跃的因素,很早就在人类经济生活中发挥着不可替代的作用,但把信息纳入企业经营管理系统中高效处理和应用是在计算机发明以后的50年代末。
目前人们所提到的管理信息系统(MIS),通常是指以计算机为工具,对管理信息进行收集、存贮、检索、加工和传递,使其应用于组织机构及企业管理领域的“人一一机系统”,该系统是70年代初“后工业经济”时代的产物,企业管理信息系统在其发展的初期,是单一的人一一机系统,系统功能简单,效率低,对管理的作用有限。
进入2 0世纪80年代末,随着计算机网络和通信技术的大力发展,企业管理信息系统进入网络化的发展时期。世界发达国家已建立起了完善的先进的管理信息系统体系,在其社会经济发展领域中发挥着巨大的作用。
我国的管理信息系统大发展是在80年代末90年代初.随着世界经济和我国经济逐步向知识经济迈进,无论是基于工业经济的管理信息系统,还是面向少数专家和管理人员的专家系统(ES)或决策支持系统(DSS),其处理对象和服务对象,自身的系统结构,处理能力,都有了进一步的发展。
1。1.3 管理信息系统的组成
管理信息系统在企业中的应用存在三个要素,这就是人、计算机和数据。 人是指企业领导者、管理人员、技术人员,以及MIS建设的领导机构和实施机构,他们在系统中起主导作用。MIS是一项系统工程,不是只靠一些计算机开发人员就可以完成的,必须有企业管理人员,尤其是企业领导的积极参与。
计算机技术是管理信息系统得以实施的主要技术.在这些技术中,软件开发是MIS开发的重点。
第三个因素也不能忽视,企业的管理数据是MIS 正常运行的基础。
1.1。4 管理信息系统的开发过程
管理信息系统的开发过程一般包括系统开发准备、系统调查、系统分析、系统设计、系统实现、系统转换、系统运行与维护、系统评价等步骤。根据开发系统的大小、复杂、投入、方式、方法等因素的不同,各步骤的要求和内容也不同,需要根据实际情况进行取舍和调整。
2
第一章 绪论
1。2 课题背景
人力资源管理,就是指运用现代化的科学方法,对与一定物力相结合的人力进行合理的培训、组织和调配,使人力、物力经常保持最佳比例,同时对人的思想、心理和行为进行恰当的诱导、控制和协调,充分发挥人的主观能动性,使人尽其才,事得其人,人事相宜,以实现组织目标。
在组织所拥有的一切资源中,人力资源是第一宝贵的,因此人力资源成了现代管理的核心。不断提高人力资源开发与管理的水平,不仅是当前发展经济、提高市场竞争力的需要,也是一个国家、一个民族、一个地区、一个单位长期兴旺发达的重要保证,更是一个现代人充分开发自身潜能、适应社会、改造社会的重要措施。
我国人力资源管理信息系统的建设起步较晚,初期主要是实现工资管理。随着计算机应用的普及,90年代,单机、DOS版的人事管理信息系统逐步得到了发展和应用。上世纪末,基于windows、单机版的人事管理信息系统得到了比较全面的应用。
随着计算机技术和网络技术的不断发展,人事管理系统应用越来越普及,特别是企业信息化管理进程的加快和企业对人力资源管理的重视,近几年,使基于网络的人力资源管理系统得到了重视。
人力资源管理信息系统的建立必须满足以下三个层面的功能。一是建立人员的各类基础信息数据库,实现对人员的各类信息进行添加、修改以及删除等功能,提供准确的信息。二是满足通常人力资源管理工作的需要,提供对人员各类信息的查询、统计以及工资发放、制作花名册等功能,实现信息的共享。三是提供统计分析功能,为制定人力资源管理提供决策依据,为做好人才队伍的预测和规划等整体性人才资源开发工作提供服务。
1。3 选题动机及意义
在信息化的2l世纪,竞争越来越傲烈。人力资源作为第一资源,越来越多的企业通过构筑自身的人力资源竞争力,以维持生存并促进持续发展。人力资源信息管理系统建设,是全面提升人力资源管理水平的必要手段和主要载体,是贯彻实施企业人才发展战略的基础工作和重要环节。
采用Visual Basic 6。0作为前端开发工具,以SQL Server 2000作为后台数据库.
建立企业人力资源管理信息系统,旨在通过先进成熟的计算机技术、网络技术、数据库技术及通信技术建立一个“准确、及时、标准、高效、安全”的智能
3
企业人力资源管理系统设计与实现
化的人力资源管理系统和决策服务支持系统,实现企业人力资源的优化和管理现代化。系统拟达到如下应用目标:一是提高信息的准确性,为制定人事和战略及时提供可靠、全面的依据。二是优化人力资源配置,降低人工成本,实施人力资源整体性开发。三是规范业务流程,实现管理制度化、规范化,提高工作效率,提升管理水平。
4
第二章 客户机/服务器模式概述
第二章 客户机/服务器模式概述
20世纪90年代,计算技术最引人注目的进展之一就是应用计算环境从集中走向分布,其中,客户机/服务器(Client/Server,简称为C/S)计算技术成为分布式计算的主流技术,并在企业计算环境中得到了广泛应用。
2.1 C/S模式的形式
C/S计算模式可以是以下几种形式中的任何一种: ●文件服务器,根据请求为客户系统传送共享文件; ●数据库服务器,根据请求为客户系统传送选定的记录; ●数据库服务器处理请求,并向客户机返回选定的记录; ●协同应用程序处理:服务器向客户发送中间结果; ●服务器执行计算,向客户发送结果以便格式化和演示; ●服务器格式化结果,并向客户发送屏幕描述以显示结果: ●磁盘服务器,提供由客户系统管理的共享海量存储器; ●的个人计算机;
●共享的、多用户计算机上的“哑”终端。
C/S应用系统基本运行关系体现为“请求/响应\"的应答模式。每当用户需要访问服务器时就由客户机发出“请求\服务器接受“请求”并“响应”,然后执行相应的服务,把执行结果送回给客户机,由它进一步处理后再提交给用户。
2。2 C/S模式的系统结构
任何一个应用系统,从简单的单机系统到复杂的网络计算,它都由三部分组成:显示逻辑部分(表示层),事务处理逻辑部分(功能层)和数据处理逻辑部分(数据层)。表示层的功能是实现与用户的交互,功能层的功能是进行具体的运算和数据的处理,数据层的功能是实现对数据库中数据进行的查询、修改和更新操作。C1ient/Server结构被设计成两层模式,显示逻辑和事务处理逻辑部分均被放在客户端,数据处理逻辑和数据库放在服务器端,从而使客户端变得很“胖”,成为胖客户机,服务器端的任务较轻,成为瘦服务器.在C/S模式的系统中,应用程序分为两个大的部分:一部分是服务器部分,由多个用户共享,主要执行后端处理,如控制客户对共享数据库的操纵、响应并处理客户机的请求等;另一部分是客户部分,为每个用户所专有,在其上的运算称为的端处理,如管理用户接口、进行数据处理、向服务器发送请求等。这种体系结构将一个应用系统分成两大部分,由多台计算机分别执行,使它们有机的结合在一起,协同完成整个系统的应
5
企业人力资源管理系统设计与实现
用,从而达到系统软、硬件资源最大限度的利用。
2.4 C/S结构的优缺点
传统的C/S两层结构的Client/Server在一个相对专用、的系统中,是一个较好的系统建立方法。客户端实现了与服务器的直接相连,没有中间环节,因此响应速度比较快。另外,客户端操作界面设计个性化,具有直观、简单、方便的特点,同时由于开发是针对性的,因此,操作界面漂亮、形式多样,可以充分满足客户自身的个性化要求。
但随着IT产业的不断发展,两层的C1ient/Server结构逐渐显出了它的不足:不易扩展,不能支持大用户量及大计算量的应用.同时,分布式技术的不断普及和完善,使得在一些大中型企业的MIS系统中,三层Client/Server结构逐渐取代了两层C1ient/Server结构。三层C1ient/Server结构将C1ient端的与用户界面无关的功能移到了中间层。所谓三层结构包括:用户接口层(实际的应用程序)、商业接口层(即中间层,是包装了所有商业规则和功能的一个或多个对象)和数据抽象层(客户/服务器数据库).与三(n)层结构相比,传统的C/S结构存在较多的问题:
●二层结构以单一服务器和局域网为中心,应用系统仅支持单一的系统平台和数据源,系统难以扩展.
●系统难以应付成千上万乃至更多用户的海量并发请求。C/S结构的客户端庞大、服务器端容易成为瓶颈。
●系统软硬件组合及集成能力有限。在应用集成时,每个客户机上必须集成所有应用的客户程序,使客户端变得很大,与客户机相比,服务器(Server)功能相对简单,任何被集成的应用功能的修改与扩充,除了有关服务器需要修改与扩充外,所有客户机都必须修改和扩充。建立在不同应用平台上的应用系统集成难度更大.
●容易使应用系统受限于供应商.
6
第三章 客户端开发工具Visual Basic 6.0
第三章 客户端开发工具Visual Basic 6.0
Visual Basic作为一种面向对象的可视化编程工具,具有简单易学、灵活方便和易于扩展的特点。而且Microsoft为其提供了与SQL Server通信的函数集和工具集,因此它越来越多地用作大型公司数据和客户机/服务器应用程序的前端开发工具,与后端的SQL Server数据库相结合,能够提供一个高性能的客户机/服务器解决方案。
3.1 Visual Basic 6.0中的数据访问技术
使用Visual Basic作为前端开发语言,有几种比较常用的与SQL Server接口的方法,包括:数据访问对象ADO/RDO/DAO、ODBC API编程和使用SQL Server的Visual Basic库(VBSQL)为DB—Library API编程。
3。1。1 数据访问对象ADO/RDO/DAO
ADO(Active Data Objects,Active数据对象)、RDO( Romote Data Objects,远程数据对象)、DAO(Data Access Objects,数据访问对象)是Visual Basic中的三种数据访问接口,它们代表了接口技术的不同发展阶段。数据访问接口是一个对象模型,它代表了访问数据的各个方面.使用Visual Basic可以在任何应用程序中通过编程控制连接、语句生成器返回数据。最新的是ADO,它是比RDO和DAO更加简单,而又更加灵活的对象模型。
3。1。2 ODBC API编程
ODBC(Open Database Connectivity,开放数据库互联)是Microsoft公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。它允许用户调用和实施三种不同类型的SQL语句:
内嵌SQL(Embedded SQL)
调用层接口(Call-level interface) SQL模块(SQL module)
内嵌SQL就是直接在代码中使用的SQL语句.用户可以在VB代码中使用不同
7
企业人力资源管理系统设计与实现
的变量、对象和控制语句来嵌入SQL语句。
SQL模块是一组过程,他们能被Visual Basic调用.每一过程相当于一句SQL语句,这些过程利用参数来传入和传出数据.
调用层接口(CLI)是为使ODBC成为开放的、可扩充的环境而开发出来的一种规范。
ODBC本身也提供了对SQL语者的支持,用户可以直接将SQL语句送给ODBC. 一个基于ODBC的应用程序对数据库的操作不依赖于任何DBMS(数据库管理系统),不直接与DBMS打交道。所有的数据库操作由对应的DBMS的ODBC驱动程序完成。也就是说,不论是FoxPro、Access还是SQL Server 2000数据库,均可用ODBC API进行访问。
完整的ODBC由应用程序、ODBC管理器、驱动程序管理器、ODBC API、ODBC驱动程序和数据源六个部分组成。
应用程序要访问一个数据库,首先必须用ODBC管理器注册一个数据源,管理器根据数据源提供的数据库位置、数据库类型及ODBC驱动程序等信息,建立起ODBC与具体数据库的联系。这样,只要应用程序将数据源名提供给ODBC,ODBC就能建立起与相应数据库的连接。
在ODBC中,ODBC API不能直接访问数据库,必须通过驱动程序管理器与数据库交换信息。驱动程序管理器负责将应用程序对ODBC API的调用传递给正确的驱动程序,而驱动程序在执行完相应的操作后,将结果通过驱动程序管理器返回给应用程序。
3.1.3 使用SQL Server的VB库(VBSQL)为DB-Library API编程
VBSQL是Visual Basic的结构化查询语言,是一种基于API的接口方法,几乎与C的DB—L1brary API相同。VBSQL只支持微软的SQL Server。VBSQL快而且轻,但不支持对象界面。
3.2 使用ODBC API访问数据库
ODBC API是ODBC的核心,每一个ODBC驱动程序利用这些函数来与ODBC进行通信。在VB中调用ODBC API函数访问ODBC。
3。2。1 初始化ODBC
在这个过程中,应用程序将通过调用SQL AlloEnv函数初始化ODBC接口,获取ODBC环境句柄。该句柄是其它所有ODBC资源句柄的父句柄,因此无论程序建立多少个ODBC连接,这个过程只需执行一次。
8
第三章 客户端开发工具Visual Basic 6.0
3.2.2 与ODBC数据源建立连接
该过程首先调用SQL AllocConnect获取连接句柄,然后根据获得的连接句柄建立连接.建立连接的最简单的方法是调用SQL Connect函数,该函数用于建立到驱动程序和数据源的连接。
3。2.3 存取数据
用户对ODBC数据源的存取操作,都是通过SQL语句实现的,在这个过程中,应用程序通过连接向ODBC数据库提交SQL语句,以完成用户请求的操作。最简单的方法分为两步:首先调用SQL AllocStmt函数获取语句句柄,然后调用SQL ExecDirect执行SQL语句。
3。2。4 检索结果集
如果SQL语句被顺利提交并正确执行,那么就会产生一个结果集,用户可以调用SQL Fetch和SQL GetData来检索结果集。SQL Fetch函数的功能是将结果集的当前记录指针移至下一个记录,函数的功能是提取结果集中当的记录的某个字段值.通常可以采用一个循环以提取结果集中所有记录的所有字段值,该循环重复执行SQL Fetch和SQL GetData函数,直至SQL Fetch函数返回SQL_NO DATA_FOUND,表示已到达结果集的末尾。
3.2。5 结束应用程序
在应用程序完成数据库操作,退出运行之前;必须释放程序中使用的系统资源.这些资源包括:语句句柄、连接句柄和ODBC环境句柄。步骤如下:
●调用SQL FreeStmt函数释放语句句柄及其相关的系统资源; ●调用SQL Disconnect函数关闭连接;
●调用SQL FreeConnect函数释放连接句柄及其相关的系统资源; ●调用SQL FreeEnv函数释放环境句柄及其相关的系统资源,停止ODBC操作.
3.3 实现远程通信
在Visual Basic中实现计算机间的通信,编写客户或服务器应用程序。不需要了解TCP网络协议或调用低级的Winsock API,我们只要正确地设置Winsock控件的属性并调用其方法就可轻易连接到一台远程计算机上。
下面是程序设计中用到的Winsock控件的几种属性和方法:
9
企业人力资源管理系统设计与实现
●LocalPort属性:返回或设置所用到的本地端口。对客户来说,该属性指定发送数据的本地端口;对服务器来说,是用于侦听的本地端口。
●RemoteHost属性:返回或设置远程计算机,控件向它发送数据或从它那里接收数据。
●RemotePort属性:返回或设置要连接的远程端口号.
●Accept方法:在处理ConnectionRequest事件时用该方法接受新连接。 ●Close方法:对客户机和服务器应用程序关闭TCP连接或侦听套接字。 ●Listen方法:创建套接字并将其设置为侦听模式。仅适用于TCP连接. ●ConnectionRequest事件:当远程计算机请求连接时出现。仅适用于TCP连接.
●Connect事件:当一个Connect操作完成时发生,确认成功建立了一个连接。
10
第四章 SQL Server 2000简介
第四章 SQL Server 2000简介
SQL Server 2000是在SQL Server 7.O的基础上扩展升级的产品,具有非常好的再造和重写特性.它继承了数据库软件设计和引擎方面的优势,已经成为新一代网络应用程序的最佳数据库和分析解决方案之一.SQL Server 2000对XML和HTTP提供充分的支持;提供分割装载和确保时间的特性;提供先进的管理和协调机制,可以自动管理线程任务,降低总体开销。另外,SQL Server 2000充分利用了Windows 2000的功能,包括支持活动目录(Active Diretory)服务,最多支持32个处理器和GB的内存。在本章中,将对本系统开发中所用到的数据库对象的管理作一简单介绍。
4.1数据库管理
在SQL Server 2000中,数据库由包含数据的表集合和其它对象(如视图、索引等)组成,目的是为执行与数据有关的活动提供支持。
4。1.1 创建数据库
对于使用SQL Server 2000的用户来说,创建数据库是最基本的操作.我们可以用两种方法来创建所需要的数据库。但是,不管使用哪一种方法,在创建数据库之前,我们都必须先确定数据库的名称、所有者(创建、使用数据库的用户)、大小,以及用于存储该数据库的文件和文件组.
在SQL Server企业管理器中,按照下述步骤创建。 1.展开服务器组,然后展开服务器实例。
2.右击“数据库\然后单击“新建数据库”命令,打开“数据库属性”窗口。 3.键入新数据库的名称。
4.根据自己需要,修改数据库文件的属性,包括主数据库名和事务日志文件名、文件如何增长和最大允许增长。
5.单击确定,完成数据库的创建。
这种操作方式非常简单直观,便于用户学习和掌握。但是,它不能将工作的过程保存下来,每次操作都需要重复进行。
使用Transact—SQL语句在程序或脚本中完成对数据库的操作.Transact—SQL是SQL Server的编程语言,可用来从数据库中提取数据,执行SQL语言的数据定义(DLL)、数据操作(DML)和数据控制(DCC)等操作.
使用Transact—SQL创建数据库的语句为CREATE DATABASE.CREATE
11
企业人力资源管理系统设计与实现
DATABASE的功能是创建一个新数据库及存储该数据库的文件,或从先前创建的数据库文件中附加数据库。在介绍CREATE DATABASE的语法结构之前,有必要先了解一下文件 ([NAME=logical_file_name,] FILENAME=’os_file_name' [,SIZE=size] [,MAXSIZE={max_size | UNLIMITED}] [,FILEGROWTH=growth_increment])[,…n] 参数说明: ◆定义主文件[PRIMARY]。主文件包含数据库的逻辑起点及其系统表,一个数据库只能有一个主文件。 ◆指定逻辑名称[NAME=Logical_file_name,]。Logical_file_name在数控库中必须唯一,并且符合标识符的规则. ◆指定操作系统文件名FILENAME=’as_file_name’。 ◆定义文件大小[,SIZE=size]。SIZE指定 ◆定义文件的最大尺寸[,MAXSIZE=( max_size 1 UNLIMITED)]。UNLIMITED参数指定〈filespec>中定义的文件将增长到磁盘变满为止。 ◆定义文件的增长增量[,FILEGROWTR=growth_increment]) [,…n]文件的FILEGROWTH设置不能超过MAXSIZE设置。 在CREATEDATABASE语句中,将使用 [〈filespec〉[,…n]] [ 第四章 SQL Server 2000简介 [LOG ON{(filespec)[,…n]}] [COLLATE collation_name] [FOR LOAD I FOR ATTACH] 其中,主要的参数使用情况如下: ◆database_name指定数据库名称。数据库名称在服务器中必须唯一,并且符合标识符的规则. ◆设置存储数据库的磁盘文件。ON用来指定存储数据库数据部分的磁盘文件(数据文件)。 ◆设置存储数据库日志的磁盘文件。LOG ON指定用来存储数据库日志的磁盘文件.如果没有指定LOG ON,将自动创建一个日志文件. ◆排序规则。COLLATE子句的功能是定义排序规则,或应用于字符串表达式以用于排序规则投影。collation_name指定数据库的默认排序规则.排序规则名称既可以是Windows排序规则名称,也可以是SQL排序规则名称。 ◆FOR LOAD子句,是为了与早期版本的SQL SERVER兼容。 ◆ 附加数据库。FOR A FTACH指定从现有的一组操作系统文件中附加数据库.通常应使用sp_attach_db系统存储过程,而不要直接使用CREATE DATABASE FOR ATTACH. 4。1.2 修改数据库 修改数据库可以在企业管理器里进行。展开数据库所在的服务器实例和数据库文件夹,右击要修改的数据库,打开“属性”菜单项,修改相应的属性值。 4.1。3 删除数据库 在企业管理器里展开数据库文件夹,右击要删除的数据库,单击“删除”命令。由于删除数据库将更新master中的系统表,所以在数据库删除之后最好备份master数据库。 4.2 数据表管理 表是包含数据库中所有数据的数据库对象,定义为列的集合.设计数据库的关键就是设计表。在SQL Server 2000中,表的创建有以下几种方法。 首先,我们可以在企业管理器中,使用表设计器创建表.通过表设计器,可以在不打开数据库关系图的情况下在数据库中创建新表。 另外,我们还可以使用数据库设计器对表进行创建、编辑或删除。要注意的是,要想在数据库管理器中创建某个表,应该首先创建一个数据库关系图.创建 13 企业人力资源管理系统设计与实现 数据库关系图的过程可以使用向导实现。 创建表的第三种方法是使用Transact-SQL语句.其语法结构为: CREATE TABLE表名 (列名l 数据类型 列名2 数据类型 …… 列名n 数据类型 ) 表的修改和删除一样,都可以通过企业管理器或Transact—SQL语句来实现。 在表的管理中,用户往往需要选择一列(或几列)作为行的唯一标识,以表明在表的所有行中,此列的数据是唯一的,这就是键。在一张表中,主键是唯一的,主键所对应的列不允许插入重复值或空值。在表中创建主键的方法如下: ●在数据库关系图或表设计器中,单击要定义为主键的数据列,如果要选择多个列,可同时按下CTRL键。 ●右击该列,选择“设置主键”命令.此列的前面将出现主键符号,同时“允许空”的标记被去掉。 修改和删除主键的方法如下: ●在数据库关系图或表设计器中,单击要定义为主键的数据列。右击该列,选择“属性”命令,打开“属性\"对话框。 ●选择“索引/键”选项卡,用户可以修改主键对应的索引名,定义为主键的数据列,以及数据列的排序方式等。 ●单击“删除”按钮,可以删除主键。 修改或删除主键后,要进行保存操作。 4.3 视图管理 视图是一个虚拟表,在数据库中并不以存储的数据值集形式存在,它所提供的数据是由查询数据库表产生的,数据本身仍存放在基本表中,视图在数据库中只有一个定义.使用视图可以增强数据的安全性,同时简化数据操作.用户可将经常使用的联结、投影、联合查询和选择查询定义为视图,这样,用户每次对特定的数据执行进一步操作时,不必重复指定所有的条件和限定。 用户可以通过在企业管理器中,指定数据库的“视图”目录下创建视图(使用视图设计器),或者选择“工具”菜单中的“创建视图向导”创建视图.当然用户也可以使用Transact—SQL语句.视图的修改和删除与表类似,这里不再多作 14 第四章 SQL Server 2000简介 介绍。 15 企业人力资源管理系统设计与实现 第五章 系统的分析 5.1 需求分析 系统需求包括信息需求和功能需求两部分。 5。1.1 信息需求 人力资源管理信息系统要求将与人有关的各类信息实行统一的规范化管理,它主要包括单位信息和员工个人信息.单位信息主要包括单位的组织结构信息、岗位信息等;员工个人信息主要包括员工的基本信息、学历及学位信息、任职信息、专业技术职务信息、个人简历信息、教育培训信息、家庭成员及社会关系信息、考勤和工资信息等. 为保证信息项的唯一性和规范性,有国标代码的信息项均以国标代码作为该信息的码表,部门信息项也以码表形式录入。 5.1.2 功能需求 企业人力资源管理信息系统的主要任务是实现对本单位各部门和所有员工的系统管理,根据现代人力资源管理的业务特点,以及当前我国企业的现状,本人力资源管瑚信息系统具有以下几部分的功能: ●部门信息管理 完成部门信息的录入、修改、删除。 ●员工信息管理 完成人员基本信息的录入、修改、删除; 完成学历及学位信息的录入、修改、删除: 完成任职信息的录入、修改、删除; 完成专业技术职务信息的录入、修改、删除; 完成个人简历信息的录入、修改、删除: 完成教育培训信息的录入、修改、删除; 完成家庭成员及社会关系信息的录入、修改、删除; 完成考勤信息的录入、修改、删除。 完成工资信息的录入、修改、删除。. ●工资管理 完成制作工资表和生成电子文档。 16 第五章 系统的分析 ●查询 完成各种条件的单个或组合查询,对查询结果的浏览以及填报花名册。 ●用户管理 完成系统用户的添加、修改、删除和查询。 5.2 功能模块分析 根据上述功能描述,将该系统划分为5个主要的功能模块:部门管理模块、人员信息管理模块、工资管理模块、查询模块和用户管理模块。在人员信息管理模块中,又包括了员工的基本信息、学历及学位信息、任职信息、专业技术职务信息、个人简历信息,教育培训信息、家庭成员及社会关系信息、考勤和工资信息等九个模块。 除查询模块、工资模块外,其它的每一个功能模块都是针对不同的表完成类似的数据库操作,即添加、修改、删除。工资管理模块提供工资表的制作;查询模块提供用户对系统各类信息进行查询、结果浏览、填报花名册,这两个模块提供打印和电子文档输出功能. “人员信息管理”模块中的部门信息由“部门信息管理”模块提供,而不是由程序员设计成静态方式供用户进行选择. 人员信息管理模块中,人员基本信息集为主集,学历及学位信息、任职信息、专业技术职务信息、个人简历信息、教育培训信息、家庭成员及社会关系信皂、考勤和工资信息等八个集均作为人员基本信息集的子集。主集中人员编号作为各子集的外键. ●人事主管用户 人事主管用户是本系统中权限最高的一类用户,可以完成系统中几乎所有的功能。在系统初始化时,程序设计人员已手动在数据库中添加一个默认的“人事主管”用户Manager。Manager是“人事主管”的超级用户,在用户管理模块中,只有Manager用户才能创建、修改、和删除普通的“人事主管”用户。 在其他模块中,所有“人事主管\"用户都可以进行添加、修改、删除记录的操作,并可以操作工资管理和查询管理模块。 ●普通用户 在系统初始化时,有一个默认的普通用户“Admin”已被添加到数据库中。Admin是普通用户的超级用户,它可以创建、删除普通用户,修改普通用户名和密码。普通用户对“人事主管”用户没有管理权,不能对其信息进行修改或删除。在其他模块中,普通用户没有数据库操作权限,只能通过查询模块浏览数据. 17 企业人力资源管理系统设计与实现 5.3 系统流程分析 所谓系统流程就是用户在使用系统时的工作流程。对应多类型用户的管理系统来说,每一类用户的工作流程都是不相同的。多用户系统的工作流程都是从用户登陆模块开始,对用户身份进行认证。身份认证分为两个过程: 1)确认用户是不是有效的系统用户: 2)确定用户的类型,并为其分配相应的权限和工作界面。 在该系统中,我们限定每个用户有3次机会进行身份认证。如果三次输入的用户名和密码都无法与数据库中的数据相匹配,则强制退出系统。进入系统后,不同类型的用户所能进行的操作也不同.我们将所有的操作笼统地分为用户管理模块操作和人事信息管理模块操作。完整的人事信息管理模块操作包括两部分:人事信息的高级管理和查询,普通用户人事信息的查询。人事信息的高级管理和查询允许用户对数据库中的数据进行操作和查询,普通用户人事信息的查询只允许用户通过查询模块浏览数据。 人事主管用户可以使用人事信息的高级管理和查询功能,人事主管用户可以添加、修改、删除及查询部门和人员信息,并且可以进行工资管理和查询管理操作,系统的绝大多数功能都在这里实现。 普通用户只能进行人事信息的查询。普通人事信息的查询功能比较简单。 18 第六章 系统设计与实现 第六章 系统设计与实现 6.1 数据库设计 根据系统需求和功能要求,设计系统数据库HrSys。HrSys数据库有12张表和一个视图:部门表(Department)、人员基本情况表(Employees)、学历及学位表(Education)、行政、党派职务表(Positilon)、专业技术职务表(Professional Title)、个人简历表(Experience)、教育培训表(Training)、工资信息表(Salary)、工资制度表(SalaryRules)、考勤信息表(CheckIn)、家庭成员及社会关系表(FamilyMember)、用户表(Users)、视图(Search)。其中人员分成在职人员库、调离人员库、退休人员库以及其它人员库,每一类人员库的表都一样。下面分别介绍这几张表及视图的结构。 6.1.1部门表(Department) 部门表用来存储单位部门的信息.本系统采用树状结构来管理部门数据,在部门之间按照上下级建立从属关系。 6。1。2 人员基本情况表(Employees) 员工基本信息表用来保存员工的基本信息。 6。1。3 学历及学位表(Education) 学历、学位表保存员工学历学位信息。 6.1.4 行政、党派职务表(Position) 行政、党派职务表保存员工担任领导职务信息. 6。1。5 专业技术职务表(Professional Title) 专业技术职务表存放员工具备的任职资格以及聘任的职务信息。 6。1.6 个人简历表(Experience) 个人简历表存放员工工作经历的记录。 19 企业人力资源管理系统设计与实现 6.1。7 教育培训表(Training) 教育培训表存放员工参加培训的信息。 6。1。8工资信息表(Salary) 工资信息表用来存放员工的工资信息,包括工资各个组成部分的数据。 6。1。9 工资制度表(salaryRules) 工资制度表中存放对于所有员工都适用的工资制度信息。 6.1.10 考勤信息表(CheckIn) 考勤信息表用来存放员工的考勤记录信息。 6.1。11 家庭成员及社会关系表(FamiyMember) 家庭成员表用来存放员工主要家庭成员的记录。 6.1.12 用户表(Users) 用户表用来存放系统用户的信息。 6。1.13 视图(Search) 在数据库中,只存放视图的定义而不存放视图表,视图的数据直接来源于数据库中的基本表。考虑到开发系统“统计查询\"模块时查询语句要联结不同的表进行操作,为了避免重复的条件限定,我们在数据库中定义一个视图,将查询所用的表中的字段连接在一起,然后直接在“查询”模块中对视图进行操作. 数据库建好之后,我们就可以配置连接到SQL Server实例的数据源了。SQL Server使用ODBC数据源管理器来配置OOBC数据源。打开windows中的“控制面板”,选择“管理工具”下的“数据源(ODBC)”,就可以启动ODBC数据源管理器.单击“系统DSN”选项卡,进入系统数据源页面,单击“添加”按钮,打开“创建新数据源\"对话框,在驱动程序列表中,选择SQL Server,然后单击“完成\"按钮,打开“创建数据源向导”窗口,按照提示输入数据源信息,就可以完成数据源的创建. 20 第六章 系统设计与实现 6。2 工程框架设计 在系统数据库设计好之后,就可以进行工程框架设计了.工程框架设计的好坏将直接影响程序的开发代价和系统的维护难度。一个设计合理的工程框架能有效地避免代码重复,提高系统的可维护性与可扩展性. 窗体、模块和类模块是Visual Basic的重要资源。设计好它们之间的功能划分,让它们协调合作,对于开发数据库应用程序非常重要。 窗体可以实现工程的外观显示,添加程序代码,实现需要的功能.模块可以用来管理工程的全局变量、常量和用户自定义函数等。类模块可以存放用户自定义类。 6.2。1 模块设计 根据VB中模块的划分原则,将系统的模块分为以下五个部分:DbFunc、Const、lnlManager、GeneralFunc、Viable.下面分别对这几个部分作一简单介绍。 (1) DbFunc模块 DbFunc模块管理与数据库操作相关的声明、变量和函数.在本系统中,采用了ODBC API编程的方式连接数据库,ODBC API函数驻留在ODBC运行动态库ODBC32DLL中,该动念库位于Windows子目录system中。与使用其它动态库函数一样,在VB中使用ODBC API函数之前,必须事先声明将要调用的函数、常量和数据结构。我们将该声明存放存DbFunc模块中。 其中,程序设计中所用到API函数功能如下: ●SQL AllocEnv用来分配环境句柄。 ●SQL AllocConnect用来分配连接句柄。 ●SQL Allocstmt用来分配语句句柄。 ●SQL Connect根据语句句柄、用户名、密码和数据源连接数据库. ●SQL Disconnect断开与连接句柄相关连的连接。 ●SQ LExecDirect直接运行参数指定的SQL语句。 ●SQ LFreeconnect释放连接句柄。 ●SQL FreeEnv释放环境句柄。 ●SQL FreeStmt释放语句句柄。 ●SQL Fetch从结果集中获取下一行数据,并返回所有字段的数据。 ●SQL GetData从结果集中唯独的一列获取数据,可多次调用从而获取不同长度的数据。 21 企业人力资源管理系统设计与实现 在程序设计中,要用到一些与数据库操作相关的变量,例如,要标记数据库是否连接,接受ODBC API函数的返回值等等。这些变量的定义也包含在DbFunc模块中。 作为一个在网络环境下运行的系统,必须考虑到多台客户机同时向服务器提出请求的情况,这就牵涉到资源分配的问题.为了避免过多的资源竞争,引起冲突或网络阻塞,我们定义了一个Interger型变量Connect_Num,用来统计一个客户机连接数据库的次数。当该客户机连接数据库的次数大于规定的最大值CONNECT_LOOP_MAX(常量)时,就断开该客户机与数据库的连接。若该客户机还需要连接数据库,继续进行其未完的操作,则必须重新向服务器提出请求.如果服务器响应,则申请句柄,连接数据库;否则,必须等待直到有空闲的服务器可以响应时,才能进行操作。 另外,在用户退出系统时,不管该客户机与数据库的连接次数是否已达到允许最大值,都应该断开与数据库的连接,释放系统资源。 按照以上考虑和要求,我在该模块中设计了两个数据库连接函数(Connect(),DB_Connect())、三个断开数据库连接函数(DisConnect(),DB DisConnect(),DBapi—Disconnect())。其中,Connect()为底层连接数据库函数,它实现系统资源的申请,包括环境句柄、连接句柄,并根据申请到的资源连接数据库;DB_Connect()一方面调用Connect()连接数据库,一方面使用变量Connect_Num统计连接数据库的次数:DisConnect()为底层断开数据库连接函数,当数据库连接标志为True时(表示连接存在),将断开与数据库的连接,释放包括连接句柄、环境句柄在内的系统资源,否则直接退出;DB DisConnect()用来断开数据库连接,不过,当客户机连接数据库的次数未达到规定的最大次数时,它并不真正断开与数据库的连接,也就是说,只有当Connect_Num大于CONNECT_LOOP_MAX时,DB—DisConnect()才调用DisConnect()函数,断开连接,否则,并不真正断开与数据库的连接(数据库连接对用户来说是透明的),所以下一次调用DB_connect()时,也不需要真正连接数据库,这样大大提高了访问数据库的效率:而DBapi—Disconneet()则不对Connect_Num进行判断,直接调用DisConnect()函数,断开连接,释放资源,所以一旦执行DBapl—Disconnect()函数,再想执行数据库操作时,必须重新连接数据库。 另外,还有执行数据库操作的函数ODBCExt(),诙函数首先调用SQL AllocStmt申请语句句柄,然后调用SQL ExecDirect()函数执行SQL语句。如果分配语句句柄或执行SQL语句时出现错误,则提示错误,然后断开数据库连接。退出程序. (2)Const模块 22 第六章 系统设计与实现 Const模块用来管理工程中的常量,包括数据库访问常量(OOBC API函数的返回值、SQL C数据类型等)、数据源信息常量(数据源名、数据库名HrSys、用户名Administrator和连接密码等,这些值随不同系统环境的设置而不同)和自定义常量(CONNECT _LOOP_MAX)等。 (3)1nlManager模块 在该系统的客户端应用程序中。需要设置运行服务器程序的计算机名,从而实现与服务器程序的通信。如果将服务器程序所在的讨算机名写在程序中,则用户不能更改计算机名,客户端程序可能无法与服务器程序相连接。为了解决这个问题,可以把服务器所在的计算机名写入到INI文件中,每次运行程序时,不需要对程序的源代码进行修改,只需打开INI文件,就可以读到最新的服务器计算机名。 用于写INI文件的API函数为WritePrivateProfileString,要使用该函数,也要象使用ODBC API函数一样,先对其进行声明。InlManager模块中包含了两个写INI文件的API函数的声明,还有读、写文件的功能。这样就可以实现服务器所在计算机名的设置.使得客户端程序可以与网络中任何一台计算机上运行的服务器程序进行通信. (4)GeneralFunc模块 该模块用来管理工程中一些通用的自定义函数。 ●整型数据输入函数In-Int(). 在输入“年龄”的时候,只能输入整数。定义布尔型函数In_Int(),在函数义一个数组,该数组中存放允许输入的整型字符0~9,还有Chr(8),Chr(8)是BackSpace键对应的字符,若不包含该字符,用户就不能用退格键修改输入的数据。当文本框中输入的内容是所能接受的字符时,就允许输入,函数In Int()返回True;否则不允许输入,函数In_Int()返回False。 ●浮点型数据输入函数In_Single()。 当输入工资、天数等数据时,要求可以输入小数。定义布尔型函数In_single()。实现对输入字符的过滤。该函数除了使用的数组名称和内容与In_Int()函数不同之外,其它部分与In_Int()函数完全相同. ●计算字符串函数Lench(). Visual Basic提供了两个计算字符串长度的函数Len()和LenB(),但是它们都不能正确处理中英文混合的字符串。而在SQL语句中,经常会出现中英文混合出现的字符串。执行SQL语句的ODBC API函数是SQL ExecDirect,它的使用格式如下: SQL ExecDirect(语句句柄,SQL语句字符串,SQL语句字符串的长度) 。 23 企业人力资源管理系统设计与实现 所以必须有一个准确计算字符串长度的函数,否则SQL ExecDirect函数将无法处理中英文混合的SQL语句。这里我们使用StrConv()函数来达到把中文字符按照2个字节计算,而保持英文字符按照1个字符计算的要求。 参数TmpStr表示要计算长度的字符串. ●将回车键转换为TAB键的函数EnterTAB() 很多用户都习惯在输入一个数据后按回车键,将光标移动到下一个输入位置,这时,回车键的作用相当于TAB键。为了使用操作更加方便,可以编写代码把文本框和列表框等控件中输入的回车键转换为TAB键.然后在控件的KeyPress事件对应的代码中调用. ●按照上下级关系添加部门到TreeView控件的过程Add—DepToTree()由于在该系统中是按照树状结构来管理部门信息的,所以要将各部门按照上下级关系进行排列和显示。Add-DepToTree()过程根据部门编号获得部门的所有信息,包括它的下一级部门,并依次将所有下一级部门添加到TreeView控件中,然后再使用每个下级部门作为参数,递规调用Add_DepToTree()过程。 TreeView控件控件必须使用唯一的关键字来标识每一个结点,且关键字的第一个字符必须是字母。在该模块中,我们规定关键字的格式为“a\"加上部门编号,如果部门编号为1。那么这个部门在TreeView控件中的关键字就为“al”。当要从某个关键字中读取部门编号,以进一步从数据库中获取部门信息时,可以使用Right函数截取该关键字的右边(n一1)个字符,再转换成数值类型即可。 (5)Variable模块 Variable模块用来管理工程中的全局变量.在该模块中,定义了部门数组Arr—DepName()、Arr—DepDescribe()、Arr_Depld(),员工数组Arr-Empld(),保存服务器名称的字符串ServerName,保存SQL语句的字符串SqlStmt,以及类模块变量的声明。声明类模块变量时必须使用NEW关键字。 这几个模块设计中,DbFunc模块的设计最为重要,也最困难和麻烦,如果稍有错误,数据库就无法连接,甚至导致整个程序无法运行. 6。2.2类模块设计 为每一个表创建一个类模块,把对此表的所有数据库操作封装在类中。类的成员变量与对应的表中的字段名相同,类的成员函数是对表的各种操作。这样可以把所自与数据库访问有关的错误都集中在类模块中,提高程序调试和测试的效率。下面将对类模块中的人员信息表功能作一介绍。 人员基本情况表作为人员信息管理模块的主窗口,进入人员信息管理模块,主窗口中列出某类人员库(默认为在职人员库)全体人员的基本情况(光标默认 24 第六章 系统设计与实现 停留在第一条记录上).人员的其它信息表作为子窗口,分页显示,当光标点击某一信息表时,子窗口中即显示主窗口中光标选中的人员对应的该信息表中的所有记录(默认显示左边第一个信息表的内容)。所有信息表的增加、插入、删除使用同一功能键,根据当前光标的位置,进行增加、插入、删除操作.除人员基本情况表外,其它所有人员信息表的操作都是一样的,在此只介绍人员基本情况表和学历学位表的类模块. 6。3窗体设计 窗体是应用程序与用户的接口。它可以实现工程的外观显示,添加程序代码,实现需要的功能。 本系统的主窗体,也就是主界面运行时所显示的界面.用户可以通过点击进入相应的模块管理.在后面的这一部分中,对系统的几个主要窗体模块设计作一简单介绍。 6.3.1 用户登录模块窗体设计 用户要使用本系统,首先必须通过系统的身份验证,这就是登录。登录过程主要完成以下任务: 。 ◆从Setup.1nl文件中读取服务器的名称,并连接服务器: ◆根据用户名和密码判断是否可以进入系统; ◆根据用户类型确定用户拥有的权限和操作界面.普通用户在主界面中只有“查询管理”和“用户管理”两个模块可以进入,另三个模块无法进入。 系统启动时,首先显示登录窗体。 客户端与服务器的连接用一个Winsock控件实现(详细过程见本章5.5节),该控件命名为C1ient。如果服务器没有启动,或者与服务器的连接不成功,那么将提示“服务器没有响应”的错误,然后强制退出系统;如果与服务器连接成功,那么将有两种情况:在用户输入正确的用户名和密码之后,就可以进入系统主界面,进行数据库操作:否则,如果连续三次输入都无法与数据库中数据相匹配,系统将强行终止。判断用户名与密码是否与数据库中数据相符的方法是调用Users类模块中的In-DB函数和GetInfo函数.判断用户名是否存在,是使用SQI语句直接进行查询,因此,用户名称不区分大小写;判断密码是否正确,则是将输入的密码与数据库中该用户的密码直接进行比较,因此,区分大小写。 6。3。2 部门管理模块窗体设计 Manager用户和人事主管一般用户可以创建、修改和删除部门信息: 25 企业人力资源管理系统设计与实现 因为部门管理要求按照树状结构,即上下级的关系进行,所以在部门管理模块中正确地对TreeView控件编码就显得尤为重要.在本章前面介绍模块时已经提到,Add—DepToTree()过程通过递归调用来实现将所有部门信息添加到TreeView控件中,所以在窗体代码中,我们只需要添加选中TreeView控件的某个节点后进行操作的代码就行了。 用户单击窗体中相应的按钮。就能进入相应的界面实现部门信息的添加、修改和删除.这些功能的实现主要通过调用Department类模块中的成员函数来完成.用户需要注意的是,当“新建”部门信息时,添加的部门将作为当前所选部门的下级部门存储,在界面中反映为当前部门结点的子结点。当“删除”某个部门时,若该部门中包含有员工,将提示删除错误,也就是说,只有“空”部门才允许被删除. 6。3。3 人员管理模块窗体设计 人员管理模块实现人员所有信息的修改、新的记录的添加(添加在最后)、新记录的插入(插入到当前记录前)和记录的删除操作。 6。3.4 查询管理模块窗体设计 系统查询模块设置了三项功能,查询、浏览和花名册,其中浏览、花名册中可以实现打印功能。 查询操作中设置了简单查询和复杂查询两种模式,简单查询只是通过一个查询条件的设置进行查询,如查询某一职工名字,或查询某一部门的所有人员如“部门=人事处”,对于系统中非空字段.当其查询项设置为非空时,即查询全体人员。复杂查询通过设置多条件进行查询,如“部门=办公室、专业技术职务任职资格=高级经济师\"即可查找出办公室高级经济师的所有人员情况。 6.3。5 用户管理模块窗体设计 用户管理模块主要实现以下功能: ◆所有的用户都可以修改自身的登录密码; ◆Manager用户可以创建、修改和删除人事主管一般用户; ◆Admin用户可以创建、修改、删除普通用户; 用户的权限判断用一个Boolean型函数Right()来实现,当该类用户拥有编辑用户信息的权限时,Right=True,否则,Right=False。由于不同类型的用户所拥有的权限不同,所以,在进行用户信息编辑的窗体中,“用户类型”下拉框的内容不能是固定的,它必须随着用户类型的变化而变化.这一点我们可以利用 26 第六章 系统设计与实现 Combo控件的AddItem属性来实现。 另外,Manager用户和Admin用户作为系统默认的超级用户,他们不允许破删除,用户类型也不允许被修改。 6。4 服务器程序的开发 服务器程序一方面进行与数据库的连接,一方面接受客户端的“请求”,并“响应”客户端的“请求”。 为了实现服务器与客户程序之问的连接和通信,将两个winsock控件添加到服务器程序的主窗体中。一个命名为Listener,用来监听网络中的连接请求,判断是否满足连接条件;一个命名为server,用来和客户端实现互相通信。考虑到要同时和多个客户端通信的可能性.服务器端应该有多个Server控件,而且可以在用户申请时动态分配,故改用数组形式来实现Server控件。同时定义一个常量MaxConnect,来服务器端允计的最大连接数,设为100,即,最多允许100个客户机连接到服务器。 6。5客户机与服务器之间的通信过程与实现 在前面我们提到,建立系统登录窗体时要在该窗体中加入一个C1ient控件来和服务器进行通信,而在服务器端则要加入Server和Listener两个Winsock控件。那么他们是怎样编码、工作,进而实现客户机和服务器通信的呢? 我们在客户端系统登录窗体中添加一个Boolean型变量:Connected,它用来标记Client控件的连接状态,Connected=True,连接成功;Connected=False,连接断开。再在服务器端添加一个InUsed()数组,用它来标记所对应的Server()控件是否可用(空闲). 在客户端程序启动的时候,将首先初始化连接变量、从配置文件中读取服务器名,并设置要连接的远程端口号(RemotePort)。当C1ient控件与服务器建立连接时,将触发Connect事件,该事件将Connected设置为True。 在创建服务器程序时,设置一个用于侦听的本地端口(LocalPort),并调用Listen方法。此处指定端口O,即使用一个随机端口.当Listen控件监听到连接请求时,触发ConnectionRequest事件,该事件将检查InUsed()数组,查询Server控件数组中是否还有空闲的Winsock控件.若有。就为该请求分配一个Server()控件,并使用Accept方法接受客户端的请求。这时,客户机和服务器的连接就成功了。若没有可用的服务器,则不接受新连接,客户将得到Close事件。 当客户机与服务器要断开连接时,客户瑞Client控件调用Close事件,将 27 企业人力资源管理系统设计与实现 Connected设置为False,服务器端Server控件触发Close事件,关闭连接,并释放Server(t)所占用的内存,将相关的变量复位。 28 第七章 结束语 第七章 结束语 由于自己缺乏计算机编程的基础和系统开发的经历,本人选择了开发一套相对简单的人力资源管理信息系统作为学位论文。在充分学习C1ient/Server模式、Vlsual Basic应用编程、SQL Server数据处理以及管理信息系统的基础上,开发了这套企业人力资源管理信息系统.系统实现了比较完善的部门管理、人员管理和用户管理,可以进行权限内的信息添加、修改、删除和查询;在查询管理模块中,提供了一些条件组合的查询功能:工资管理模块允许用户进行工资发放管理。本文着重描述了应用程序的开发过程,包括数据库的设计和创建、数据源的连接、功能模块分析与模块划分、系统模块与类模块的功能与设计、系统工作流程等. 通过对该系统的分析、设计和调试,一方面使自己了解了C/S模式的结构和工作过程,另一方面,更为重要的是熟悉了VB的应用编程,特别是如何在VB中实现对远程数据的访问.应该说,在VB中采用ODBC API编程的方式访问数据库,在目前来说已经有点“落伍”,编程也比较繁琐。相对于这种数据访问方式,选用ADO数据访问方式更为简捷.但是,采用ODBC API编程来访问数据库可以大大提高编程能力,这对自己来说是一个很好的锻炼.也正是因为如此,本系统舍弃ADO数据接口而选用了ODBC API编程的方式. 应该说实现系统数据报表自动生成功能很有必要,但由于时间紧和本人动态报表设计缺乏经验,故在本系统中未能涉及。 由于本人知识水平的和时间关系,该系统不可避免地存在着这样或那样的问题,希望各位领导和老师批评指正。 29 企业人力资源管理系统设计与实现 致 谢 在老师的指导和同学们的帮助下,终于完成了学位论文. 感谢老师给予我耐心、细致的指导和帮助,感谢老师的关心.老师的鼓励和关心,使我充满信心,投入到毕业设计任务中去:老师的教诲和建议,帮助我克服了毕业设计中的各种难题. 感谢几年来所有任课老师,他们的教授不仅使我收获了知识,也使我收获了一份宝贵的人生经历. 感谢同学们,感谢他们在学习上给予我的帮助。 30 参考文献 参考文献 [1]Eric A.Smith,Valor Whisler,Hank M ARQUIS著.蒋洪军 沈瀛生 魏永明 田 煜等译.VISUAL BASIC 6宝典.电子工业出版社,1999年. [2] 李晓喆 张晓辉 李祥胜编著.SQL SEVER 2000管理及应用系统开发.人民 邮电出版社,2002年. [3] 陈艳峰 高文姬 绍蕴秋著.VB数据库项目案例导航.清华大学出版社, 2004年 [4] 启明工作室编著.MIS系统开发与应用(VB+SQL).人民邮电出版社.2005 年. [5]Paul Nielsen著.刘瑞 陈微 闵继忠 刘文 译.Microsoft SQL Server 2000宝 典 中国铁道出版社.2005年. [6] 永是科技编著.SQL SERVER 2000数据库开发技术与工程实践 人民邮电出 版社 2004年. 31
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- baoaiwan.cn 版权所有 赣ICP备2024042794号-3
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务