APP下载

基于WebSnap 组件人力资源管理系统的设计与实现——查询管理子系统的设计与实现

2015-01-23□秦

产业与科技论坛 2015年23期
关键词:应用程序代码页面

□秦 涛

当今世界,以计算机技术为主体的高新技术已经深入到我国经济发展的方方面面。人们逐渐地认识到利用计算机进行各类管理,交流所带来的方便快捷。其中最突出的是人事管理。[1]人事管理是公司的重要角色,不仅涉及到公司人力资源的开发,效率的发挥,而且会直接影响企业经营活动。目前企业管理中大多存在下列问题:虽然各部门都有计算机,但是还没有完全发挥其应有的作用;管理缺乏规范;管理多为手工处理,工作量大、出错率高,给日常工作带来麻烦;公司领导对全公司人事信息掌握不及时,不准确,影响决策的质量。本文开发的人力资源管理系统就是一个为适应当前各个行业对人事信息管理的迫切需求而设计开发的软件系统。基于现在公司规模的日益增大,网络应用的普及,选择利用WebSnap 技术构建一个基于网络的人力资源管理系统,能在网络环境下通过Web 页面实现对数据的录入、插入、删除、查询、更新等管理功能。[2]

一、查询管理子系统的基本操作平台

Web 服务器应用程序是运行在服务器端的可执行程序或动态连接库,它们可以响应用户要求,动态产生超文本页面,并将信息提供给客户浏览器。

Web 服务器应用程序实际上是Web 服务器在功能上的扩展,就好像Windows 应用程序是Windows 系统在功能上的扩展一样。当Web 应用程序从Web 服务器检索到一个HTTP 请求消息时,就对HTTP 请求消息进行分析,生成HTML 页面传递给Web 服务器,再由Web 服务器传递给客户。

WebSnap 是对WebBroker 的一种扩充。这种扩充所带来的直接好处就是使开发者可以更轻松地构建复杂、以数据驱动的Web 页面。同时,WebSnap 还支持在一个应用程序中包含多个模块和服务器端脚本的功能,使得工作组式的网站开发工作成为可能。

WebSnap 的基本组件可以分为3 类:一是Web 模块,相当于一个容器,将其他组件“包装”起来,构成应用程序和定义的页面。二是适配器,用来提供HTML 页面和Web 服务器应用程序之间的接口。三是页面制作器,这类组件中包含着用来创建最终显示给用户的HTML 页面的函数。

人力资源管理系统的用户主要包括四类:一是系统管理员,总部的IT 人员,负责系统的日常维护,人员权限和信息编码和管理,有相关的计算机专业知识。二是管理者,总部、分公司及经营部的人力资源部的相关人员,执行该系统的大部分业务操作,涉及信息维护和查询。该部分人员电脑使用水平为中级、初级,一般会使用Windows、Office 系列以及收发电子邮件,会使用浏览器上网。三是决策者,总部、分公司及经营部的高层管理人员,他们一般为进行人事方面的决策执行查询统计操作。该部分人员电脑使用水平为初级,一般会使用Windows 等系统软件,会使用浏览器上网。四是查询者,集团公司所有员工,他们使用本系统主要用于查询与自己相关的个人信息。该部分人员电脑水平一般。其中第二、三类用户是主要参与者,第一、四为次要参与者。实际中的人力资源管理系统包括:人事管理业务、劳动保险管理业务、薪水管理业务等多方面的业务内容。系统模块划分如下:

(一)人员管理。人事信息的基本维护,能够实现对员工信息的录入,编辑,删除,简单查找等功能。

(二)统计查询。实现对员工的学历、年龄、职称、用工状态等情况进行综合查询、统计和分析。能够按某一特定要求查找符合条件的员工,以满足决策和管理的需要。

(三)人事论坛。利用网站特点设置BBS 讨论组。提供员工交流园地,反映员工合理化建议,解答人事用工疑问。

(四)系统维护。系统维护由用户权限维护、信息编码维护、部门设置维护等组成,以便于保证系统的安全和实现信息的规范化。

二、查询子系统的设计与实现

根据系统的功能要求对查询的对象进行了分类,第一类是员工查询,可以查询员工详细的个人基本信息,第二类是决策查询,可以查询得到一个满足条件员工的信息集合。其中,第一类为简单查询,其主要作用是用来定位记录,对单个记录进行更新或者增加删除记录。第二类为组合查询,可实现多条件查询和模糊查询,其主要作用是用来对人员的整体信息进行筛选,从中挑选人才或者选拔干部,并且不允许对记录作任何的更改,只能浏览。

系统平台:基于Windows 平台,WWW 服务器采用IIS。系统开发语言及工具:采用C + + builder 的WebSnap 技术开发。数据库管理系统:采用SQL Server 作为服务器端数据库服务器。帮助文件编译工具:hcw.exe。系统发布工具:Install Shield for C+ + builder6。系统建模工具:使用Microsoft Visio 2002 获取E-R 图。

(一)数据库的建立脚本。CREATE DATABASE[hr]ON(NAME = N'hr_Data',FILENAME = N'E:/qt/hr_Data. MDF',SIZE = 2,FILEGROWTH = 10%)

LOG ON (NAME = N'hr_Log',FILENAME = N'E:/qt/hr_Log.LDF',SIZE = 1,FILEGROWTH = 10%)

COLLATE Chinese_PRC_CI_AS

GO

use[hr]

GO

(二)表BASICINFO 的建立脚本。CREATE TABLE[dbo].[BASICINFO](

[EMPID][varchar](10)COLLATE Chinese_PRC_CI_AS NOT NULL ,

[NAME][varchar](10)COLLATE Chinese_PRC_CI_AS NULL ,

……………

[RANK][varchar](20)COLLATE Chinese_PRC_CI_AS NULL ,

[TAGMANAGE][varchar](10)COLLATE Chinese_PRC_CI_AS NULL,

[STATEOFEMP][varchar](20)COLLATE Chinese_PRC_CI_AS NULL,

)ON[PRIMARY]

GO

(三)表 PHOTO 的建立脚本代码。CREATE TABLE[dbo].[PHOTO](

[EMPID][varchar](10)COLLATE Chinese_PRC_CI_AS NOT NULL ,

[PHOTO][image]NULL ,

)ON[PRIMARY]TEXTIMAGE_ON[PRIMARY]

GO

三、查询子系统程序实现中的关键技术及方法

WebSnap 组件页面上的组件可以用来创建较复杂的、以数据驱动的Web 页面组成的Web 服务器应用程序——即Web-Snap 架构的服务器应用程序,这些组件可以极大地简化服务器应用程序代码的编写工作。在应用程序中,使用TwebAppComponents 对象的主要目的是将主要的WebSnap 组件实现集中化管理。它可以为新的请求消息对Web 内容进行初始化,并且搜索适当的组件来处理请求消息。另外,WebAppComponents 还公布了一些属性,可以用来对那些在WebSnap 应用程序中执行常见任务的组件进行访问。

(一)员工查询的实现步骤。新建查询页面模块,打开页面编辑器,建立查询页面,第一步,建立PageModule 用Include 包含数据模块(WDM),并且在其中放置两个控件,分别为TAdapterPageProducer 和TAdapter。第二步,在TAdapter 中加入一个DataField 和一个ActionField,并且编辑显示的网页界面。在TAdapter 中加入DataField 是为了获取用户输入的内容,而ActionField 则是为了执行查询操作,然后在这两个域中加入事件代码,使用的是参数查询,利用C + + Builder 所提供的方法进行简单的查询,其简单代码如下:

在上述代码中可以看到,整个的代码中并没有用到SQL 语句,这就是C+ + Builder 中TADOTABLE 给我们提供的Locate方法的一个好处,极大地减少了代码量,而且查询效率有了很大的提升。这对于在网络中进行的查询来说是极为重要的。

(二)决策查询的具体实现。决策查询的核心就是组合查询,其目的就是根据不同的条件来对员工的信息进行相似匹配查询,可以实现模糊匹配查询和范围查询。

步骤如下:建立PageModule 用Include 包含数据模块(WDM),并且在其中放置两个控件,分别为TAdapterPageProducer 和TAdapter。编辑网页显示界面,在这个页面中可以看到,不但可以按照人名查询,而且增加了文化程度,用工性质进行范围上的搜寻,同时,在下面的人员信息中也仅仅列出了对决策查询有用的资料,可以通过这些信息来调动人员,对员工进行任命、解雇或者别的操作。

(三)两种查询的比较。在这个系统的查询中一共使用了两种方法,在效率和灵活方面可以说是平分秋色,第一种查询是利用Table 提供的一个方法来实现的,其实这种查询还可以有以下两种形式:

TlocateOptions SearchOptions;

SearchOption <<loPartialKey;

Table- >Locate(“字段名”,”查询条件”,SearchOption);

在这种查询中,需要选择匹配规则,在这里选择loPartialKey,还有一个是loCaseInsensitive,前者是大小写不区分,后者区分大小写,由于使用的是汉字,所以一般不采用大小写区分的严格匹配。或者:Table - >Lookup(“字段名”,“查询条件”,“字段列表”)。

注意使用Lookup 这种方法必须先设定好索引字段。如果没有找到则会返回一个例外错误。在这个查询页面中还用到了SQL 查询语句,由于SQL 查询必须将语句送回服务器进行语法分析检查然后执行,所以SQL 查询的执行效率有些不太令人满意,但是它非常灵活,特别适合组合查询和带有参数的查询以及模糊查询。

四、照片管理模块的设计与实现

现在人们已经不仅仅满足于文字性的材料,还需要得到图像资料,例如:经理想知道自己的员工到底是谁,他长什么样。这就需要在数据库中提供相应的信息,以前,解决这个问题时往往是在数据库中存储图像文件的位置信息,然后利用Image 控件进行显示,但是这样处理之后带来的麻烦就是将数据库进行移动,备份或者导入导出都十分不方便,容易出现问题。这次利用SQL server 提供的Image 字段就可以在数据库中之间存储图像文件,而不用存储路径了。第一阶段在建立数据库时已经有了这样的字段,下面解决如何将图像文件存入数据库中,并且在页面上显示出来。

在这里共有两个按钮,一个是用来打开所要上传的文件,令一个则是上传文件,主要代码如下:

在这里使用流的概念来对数据库中的特殊字段进行读写操作,可以将相片看作一个流文件,然后将这个流文件注入到数据库中,这就需要用到数据库组件的CreateBlobStream 方法,这个方法的作用就是针对数据库中的特殊字段进行操作。

五、结语

该系统完全满足现代大企业的实际使用,极大提高了工作效率,降低工作成本,为企业决策提供的数据参考和数据依据。随着数据量的增大,该系统在使用过程中还需要经过不断的完善和修正。

[1]袁辉.C+ +Builder 网络编程核心技术[M].北京:机械工业出版社,2002:28 ~32,第2 版

[2]陈周造.精通C+ +Builder5 程序设计高级教程[M].北京:中国青年出版社,2001:12 ~18,第2 版

猜你喜欢

应用程序代码页面
刷新生活的页面
删除Win10中自带的应用程序
谷歌禁止加密货币应用程序
创世代码
创世代码
创世代码
创世代码
移动页面设计:为老人做设计
Web安全问答(3)
三星电子将开设应用程序下载商店