基于C_S的职工工资管理系统的设计与实现
数据库与信息管理本栏目责任编辑:闻翔军
电脑知识与技术
1 引言
职工工资管理是公司企业内部很重要的一个管
理事项, 但目前大多公司内部职工工资的管理, 基本
上是手工操作或是基于 dos 下的应用, 这样对信息的
管理者有诸多不便, 有的虽然是用 foxpro、visual fox-
pro 开发, 但由于开发工具本身的限制, 对网络功能的
支持程度不是很强, 为以后软件升级到互联网带来了
麻烦。因此有必要开发一个基于网络的职工工资管理
系统, 能在网络环境下实现数据的录入、插入、删除、
查询、统计、更新、打印等功能。同时, 为了信息的保密
与安全, 系统还要提供一定的安全机制。
Powerbuilder9.0 是美国著名的 Powersoft 公司推
出的广泛使用于客户机/服务器体系结构下的应用程
序开发工具, 具有完整的 Web 应用开发功能。它同时
支持多 种关系 数据库 管理系 统, 通 过微软 公 司 的
ODBC 接口和专用的大型数据库接口, 能够高速读取
数据库中的数据。本系统就采用 Powerbuilder8.0 开
发, 服务器端的操作系统为 Windows 2000 sever, 客户
端操作系统为 Windows 2000。
2 系统功能的分析及规划
(1)系统功能的分析
公司内部的职工工资的管理, 从大的方面分主要
集中在公司职员的个人情况、工资细目、调入调出及
用车等。所以该系统主要是实现对数据的录入、插入、
删除、网上查询、统计、更新、打印等功能。其次, 为了
信息的保密与安全, 系统还要提供一定的安全机制。
(2)系统功能的规划
根据以上系统功能的分析, 本系统决定采用 MDI
风格, 它主要分为以下几个模块, 其中职工工资管理
系统的父窗口的功能结构如下所示:
文件模块: 此模块实现本系统对数据的打开、保
存、打印预览、打印及用户管理等功能, 并可由此退出
系统。
信息管理模块: 此模块实现系统的信息管理, 包
括对职工情况一览表、职工调入调出情况表、职工工
资表及其它各表的信息数据的插入、删除、修改、保存
等功能。
查询模块: 此模块实现本系统的查询功能, 能将
个人的基本情况、调入调出情况、工资情况等检索出
收稿日期: 2007- 12- 12
作者简介: 申加华( 1965- ) , 女, 江苏徐州人, 江苏徐州机电工程高等职业学校计算机讲师, 计算机科学与技术专业, 研究方向: 计算
机网络技术。
基于 C/S 的职工工资管理系统的设计与实现
申加华
( 徐州机电工程高等职业学校, 江苏 徐州 221011)
摘要: 本文提出了一个基于 WWW 环境的职工工资管理系统, 应用动态服务器页面实现了职工工资的多
条件查询、删除、更新、打印、密码设置等功能。
关键词: 职工工资管理系统; 动态服务器页面; 多条件查询; 密码设置
中图分类号: TP311 文献标识码: A 文章编号: 1009- 3044(2008)02- 10226- 03
Design and Realization of an Employee Salary Managing System Based on C/S
SHEN Jia- hua
(Xuzhou Electromechanical Engineering Higher Vocational School,Xuzhou 221001,China)
Abstract:The paper puts forward a managing system of employee salary based on WWW environment, which,
though dynamic server page layout, has made many function come true, such as multi- condition inquiry, deletion,
updating, print, password setting of employee salary.
Key words: Employee Salary Managing System;dynamic server page layout;multi - condition inquiry;password
setting
226
数据库与信息管理本栏目责任编辑:闻翔军
来, 并可实现多条件查询和模糊查询。
统计模块: 此模块用于对数据库中的信息数据按
照一定的规则进行统计。
系统服务模块: 此模块用来系统管理人员设密码
和对系统的功能和开发信息进行介绍等。
3 根据用户要求设计数据表
数据表的建立是应用程序开发过程中的非常重
要的一个环节, 必须清楚每一模块要操纵的数据是那
些, 以及数据间的相互关系, 然后建立数据表。职工工
资管理系统要求能对职工的个人情况、调入调出情
况、工资情况等进行管理, 在职工个人情况表下面, 还
有象维护职务表, 维护学历表等等。同时还要对系统
设置安全机制, 为实现以上要求, 下面仅以人事、工
资、密码表为例介绍一下各表的结构:
职工情况一览表
它包括职工标号、姓名、性别、政治面貌等信息。
其结构如下:
code char(4) not null, //职工编码
name char(8) null, //姓名
sex char(2) null, //性别
politics char(8) null, //政治面貌
birthday data null, //出生日期
work_time data null, //参加工作时间
post_zhw char(10) null, //职务
address char(30) null, //家庭住址
该表主键为职工编号(code)。
职工工资表
其结构主要包括职工所得的各种工资福利等。
Code char(4) not null, //职工编号
Name char(8) null, //姓名
g_pay integer null, //岗位工资
j_pay integer null, //技能工资
w_pay integer null, //物价补
s_pay integer null, //书报费
ws_pay integer null, //卫生费
xh_pay integer null, //小孩补贴
a_pay integer null, //工龄工资
ht_pay numeric(6,2) null, //合同补贴
jj_pay numeric(8,2) null, //奖金
total_pay numeric(8,2) null, //工资总额
该表主键为职工编号 code。
系统密码表
user_name char(10) not null, //用户名称
user_word char(10) not null, //用户密码
user_qx char(2) not null, //用户权限
4 系统的网络实现
由于 Powerbuilder 具有完整的 web 应用开发功
能, 由它编制的软件可以方便的同服务器端的数据库
协同工作, 构成 Client/Server 工作方式, 它使用的是业
界熟悉的 Web 标准( HTML 和 Java) , 通过端对对的设
计、调试和提交, 可以控制 Web 应用的整个生命周
期。本 系统 客户应 用 和 服 务 器 应 用 都 采 用 Power-
builder 开发。其中服务器端的程序是实现中的重点部
分, 其内容主要是生成 SQL 语句对数据库操作及对
所得的数据进行处理。它主要分为监听客户连接、处
理客户请求、避免死锁、向客户推送消息等。
5 关键问题的解决
(1)安全机制问题
在进入系统之前, 要进行身份确认, 只有用户名
和用户密码都相符的用户方可进入本系统。为了防止
不合法用户对数据的察看和修改, 本系统把用户分为
三个级别:超级、可修改和只读用户, 即一二三级用
户。超级( 一级) 用户不仅拥有对数据的查询、修改权
限, 还对用户的使用权限进行控制, 可以设定用户名、
密码和其权限, 还可以对纪录进行增加、删除、修改等
操作。可修改( 二级) 用户对数据可以查询、打印, 还可
以对纪录进行增加、删除、修改等操作。只读( 三级) 用
户只拥有对纪录的浏览、查询和打印权限。当用户要
进入系统是必须先输入用户名和密码, 按"确认"按钮
后, 系统辨别用户身份, 对合法用户根据用户的权限
级别赋予相应的使用功能。
(2)对任一数据列进行排序的问题。
熟悉 Windows 的用户一定对资源管理器不陌生,
当目录或文件很多时, 当然会想到使用排序来尽快定
位目标, 你只要用鼠标在资源管理器上端的 name、
size、type 或 modified 中的任意一项点击, 它就会将此
项按升序或降序排列。同样地, 在 PowerBuilder 中, 如
果数据比较多, 我们也可以采用这种办法来排序以尽
快查找记录。
本系统以窗口 w_rsh 为例,要实现这样的排序功
能, 首先定义两个实例变量 String pre_col="" 和 Int
click_time=0, 它们分别记录上次点击的列和点击同
一列的奇偶数。然后在 dw_1 的 Clicked 事件中添加如
下脚本:
String clicked_pos,col,format
Long il_pos
clicked_pos = dwo.Name //取点击的对象
il_pos = Pos(clicked_pos,'_t') //对于列标题,
227
数据库与信息管理本栏目责任编辑:闻翔军
电脑知识与技术
( 上接第 222 页)
if (rs.next()) {//遍历结果集
return new User(rs.getString("id"), name, password,
rs.getString("urule"));
}
} catch (SQLException ex) {
System.out.println(ex.toString());
} finally {
if (rs ! = null) {
try {
rs.close();//关闭结果集
} catch (SQLException ex1) {
}
}
if (pstmt ! = null) {
try {
pstmt.close();//关闭预声明语句对象
} catch (SQLException ex2) {
}
}
}
return null;
}
}
3 结束语
本文在网站用户登录模块的开发过程中, 采用
Struts 框架把实际问题分成模型- 视图- 控制器三部
分, 各司其职, 具体业务逻辑的实现只需由控制器来调
用 ActionServlet 和 Action 中的方法就可以了, 这样大
大提高了系统的可维护性和 Web 应用的开发速度。
参考文献:
[1]孙卫琴.精通 Struts:基于 MVC 的 Java Web 设
计与开发[M].北京:电子工业出版社,2004.
[2]魏雪萍.Jsp+Oracle 组建动态网站实例精讲[M].
北京:人民邮电出版社,2004.
[3]Chuck Cavaness.Programming Jakarta Struts[M].
USA: O'Reilly Publishing.2002.1.
[4]闫斐.基于 Struts 架构的 J2EE 应用软件的设计
与开发[J].微计算机信息,2006.10.
[5]吴小惠.利用 Struts 框架构建在线网站的登陆
验证系统[J].软件导刊,2006.7.
//取得的对象是列名+"_t"
If il_pos >0 Then
col = Left(clicked_pos,il_pos - 1)
If col=pre_col Then
If click_time=0 Then
click_time = 1
format = col+" A"
Else
click_time=0
format = col+" D"
End If
Else
click_time = 0
format = col+" A"
End If
pre_col = col
dw_1.SetSort(format)
dw_1.Sort()
End If
采用上面的方法可实现象 Windows 中资源管理器
灵活排序的功能, 从而使所要浏览的数据更加一目了然。
(3)数据窗口控件的编辑风格的使用
本系对日期型、需渐变量等数据的输入采用了编
辑掩码控件 editmask, 这样就可以大大方便用户的操
作。对于象性别这样只有男、女两个值的, 则采用单选
钮 radiobutton 形式, 用户在录入时只需要鼠标点击选
钮即可。在设置条件时的值段名和有固定职供用户选
择的数据使用了下拉列表框( droplistbox) ,用户只需选
择所要输入的值即可。
6 结束语
随着计算机的发展与普及, 以及互联网技术的扩
展, 日常职工工资管理必将实现无纸化办公, 并且加
入到公司内部的 Intranet 或者是 Internet 上去, 实现
数据的共享, 这样有利于职工工资信息在单位内部的
查询, 提高了数据资源的利用, 并且能及时的得到更
新, 不需要象过去那样浪费大量的人力物力去进行抄
写, 提高了工作的效率。
参考文献:
[1]亓晓静.快速开发技能工具—PowerBuilder[M].
电子工业出版社,2005.04.
[2]张涛.PowerBuilder 9.0 Web 开发篇[M].清华大
学出版社,2003.11.
[3]陈杰.PowerBuilder 10.0 入门与提高[M].清华大
学出版社,2005.06.
228
基于C_S的职工工资管理系统的设计与实现.pdf