李静论文基于internet的网上考勤Word文档格式.docx
《李静论文基于internet的网上考勤Word文档格式.docx》由会员分享,可在线阅读,更多相关《李静论文基于internet的网上考勤Word文档格式.docx(31页珍藏版)》请在冰豆网上搜索。
3.1、与数据库的链接13
3.2、用户个性化登陆13
3.3、系统基本资料管理与维护14
3.4、考勤处理16
3.5、统计查询18
第七章结束语20
致谢21
参考文献22
第1章研究现状及设计目标
1.1、现有考勤系统分析比较
目前,考勤系统分为两类,一类是国内采用的比较指纹考勤、打卡考勤等硬件考勤系统:
一类是国外采用较多的融合在企业信息化系统中软件考勤系统。
其两类系统比较如下表:
项目
硬件考勤
软件考勤
运用环境
无特别要求
需要企业有强大处理平台
硬件环境
需要有小型机、数据库服务器特专用硬件
考勤方式
员工自觉考勤,人工统计
员工自觉考勤、系统自动统计
处理内容
上下班,外出
上下班、外出审批,多层考核
系统架构
硬件考勤,形成统计数据
B\S\S多层架构
系统投资
小
特别大
系统特点
投资小,考核效果差
投资大,考核效果好
考勤范围
局域网内
任何地区
为了硬件考勤和软件考勤系统中寻找一种合适的信息化考勤方式,又要满足不中地区的考勤要求,设计了这套基于INTERNET的网上考勤系统,做好最小的成本投入,全范围的考勤管理和严格的考勤审核制度。
1.2、设计目标
以当今先进的计算机技术和科学的管理方法,建设长沙市国家税务局岳麓分局考勤业务的科学化管理制度和规范的业务处理体制,实现考勤管理和处理的计算机的自动化。
考勤工作可以实现员工工作全过程的动态控制;
实现员工信息全流通,实现网络化信息共享:
实现计算机派工、请假、加班管理,对员工增加了透明度,解决了考勤难而慢的问题。
从而使长沙市国家税务局岳麓分局的各个部门有机的结合起来,提高了工作效率、健全了考勤管理制度、并且对信息进行根合理、更有效的管理。
1.3、设计特点
实现技术先进性、稳定性、安全性、易扩充性、易操作性;
先进性:
系统设计本着先进性的原则,从整个结构规划等多角度使用合理而现今的技术;
稳定性:
充分考虑运行中可能出现的特殊情况,并采取了相应的解决措施;
安全性:
在系统内部提供了灵活丰富的权限管理手段,大大提高了系统的安全性能;
易扩充性:
对于业务的处理设计充分考虑业务发展的需要,使的可以方便增加未来业务;
易维护性:
采用Client\Server方式,完善,完整的安装版本,方便的升级方法。
易操作性:
系统的设计充分考虑了业务的需要,业务处理的改变可以同构系统内部的设置完成;
第2章系统结构与模型
2.1业务流程图设计
以我市某行政单位(XX局)考勤制度为例具体说明
2.1.1管理职能组成如下:
2.1.2业务处理总体流程图
2.1.3派工业务流程图
2.1.4请假业务处理流程
2.1.5加班业务处理流程
2.2软件功能设计
2.2.1科室(所)设置
a、新增科所:
科所代码、名称、地址、电话等。
b、修改科所:
c、删除科所。
2.2.2职务设置
a、新增职务:
职务代码、名称等。
b、修改职务:
c、删除职务。
2.2.3在职人员设置
a、新增人员:
编号、姓名、科室、职务、参加工作时间等。
b、修改人员:
c、删除人员。
2.2.4权限设置
a、新增权限:
所管辖科室、请假审批、签署意见权、派工权、加班签署意见、审批权等。
b、修改权限:
c、删除权限。
2.2.5派工
a、科所负责人填写派工并签名确认。
b、政工科备案
2.2.6请假
分五种情况及处理方法。
a、科员病假、事假半天
(a)填写:
当事人
(b)签名确认:
(c)审批:
所属科室所科长
(d)备案:
政工科
b.科员病假、事假一天以上(含一天)
(c)签署意见:
(d)审批:
政工局长
(e)备案:
C.科所正、副职请假一天
主管局长
d.科所正、副职请假一天以上
e.职工学历学习
2.2.7加班
所属科室科所长
2.2.8统计查询
a、“外出工作指派单”查询
查询条件:
按时间段查询
b、“请假/事假申请表”查询
(a)按事假分类查询
(b)按时间段查询
c、“科所加班情况统计表”查询
d、考勤统计汇总表
汇总条件:
按时间段汇总
2.3数据库设计
数据库名称:
KQXT
编码式命名
2.3.1人事数据表KQ_BMAN
字段名称
中文名称
类型
长度
小数
初值
说明
BNENO
员工编号
VARCHAR
10
NOTNULL
主键
BACODE
编代码
BNNAM
中文姓名
20
BDNO
科室编号
外键BDEV
BZWNO
职务编号
外键BZW
BNLAST
上级标志
1
TorF
BNNEXT
下级标志
BNWORK
参加工作时间
DATETIME
BNVAL
有效标志
T
TorF删除
2.3.2.密码表KQ_BPWD
BNPWD
登录密码
BNDS
数字签名
2.3.3.权限设置表KQ_SYSPMS
PMSFUN
功能项目
PMSNAM
功能名称
40
PMS
权限
BZWNAM
职务名称
预设
2.3.4.职务设置表KQ_BZW
2.3.5.科室设置表KQ_BDEV
BDNAM
科室名称
BDADR
地址
100
NULL
BDTEL1
电话
BDTEL2
BDTEL3
2.3.6.外出工作指派表KQ_PG
PGNO
派工单号
12
当事人编号
当事人姓名
PGDAT
派工日期
PGADR
派工单位
PGCASE
派工事宜
200
PGTEL
联系电话
PGTIME
外出时限
11
PGWEK
星期几
PGMARK
备注
BNENO1
科长签名
BNNAM1
科长姓名
PGZG
政工备案标志
PGTRA
传送标志
F
2.3.7.病假事假申请表KQ_QJ
QJNO
病假事假单号
QJKIND
请假类型
NOTNULL
QJDAT
日期
QJCASE
请假事由
QJTIME
请假时限
几天
SMALLINT
BNENO2
政工局长签名
BNNAM2
局长姓名
BNENO3
局长签名
BNNAM3
QJZG
QJTRA
传达标志
2.3.8.科所加班情况表KQ_J
JBNO
加班单号
JBTIME
加班
JBCASE
加班事由
JBMARK
L
JBZG
JBTRA
2.4、功能的一般性规定
本软件系统界面格式统一,统一的错误声音提示,在线帮助等。
2.5、性能的一般性规定
数据精度:
DATETIME类型数据精确到秒。
响应时间:
保存、删除的平均响应时间小于2秒;
各类查询的平均时间小于5秒。
2.6、其他专门要求
数据库系统能满足以下能力:
2.6.1良好的并行系统的解决方案
2.6.2对异种数据源的访问能力
2.6.3高可靠性和安全性
2.6.4提供分布式数据的存取和管理机制
2.6.5支持数据库维护工作、CLIENT开发工具、查询开发工具,对数据库的要求,满足多平台特性要求,操作特性要求,场合适应性要求等:
所有终端机安装开放的数据库接口(ODBC)。
2.7运行环境要求
系统平台
2.7.1、硬件系统
(a)专用服务器
IntelP4级CPU,512M以上内存,40G*2枚7200转硬盘(另一块做冗于RAID1),等。
(b)工作站
系统最低配置:
Intel赛扬级CPU,64M以上内存,15寸以上显示器,最佳分辨率800*600,4.3G以上硬盘,使用Win98、Win2000、WinXp操作系统。
2.7.2、软件系统
(a)服务器操作系统:
Win2000server+SP4
(b)服务器数据库:
SQL2000+SP1
第3章系统实现技术
在两台服务器、两个56K拨号MODEM上,Windows2000AdvancedServer坏境下,实现了基于INTERNET的网上考勤系统各功能模块。
具体开发工具为SybasePowerBuilder8.0(以下简称PB8),数据库采用MicrosoftSqlServer2000(以下简称SQL2000)数据库。
该系统主要包括:
a.系统基本资料管理维护
b.考勤系统
c.统计查询
以下介绍了个功能模块的实现方法及一些特殊技术问题的解决。
3.1、与数据库的链接
由于各工作站客户程序频繁地与数据库打交道,如何与数据库链接就显得十分重要。
本系统用到一个数据库,名为KQXT_DATA.MDF,所有用户登陆时就要进行数据库操作,为实现客户端何数据库链接,首先在WINSERVER的控制面板/管理工具/数据源(ODBC)选项中添加一个kqxt_sql的用户数据源。
再在pb8创建的“KQXT”开发工程的“KQXT”系统应用对象的OPEN事件中建立与SQL2000KQXT_DATA.MDF数据库的链接,即加入以下语句:
该语句完成以下工作
3.1.1完成初始化工作
3.1.2利用INI文件设置属性,初始化一个事务对象
3.1.3链接要访问的数据库
3.1.4打开第一个窗口
其中,SQLCA.DBMS表示数据库厂商的名字,SQLCA.DBParm表示与具体数据库管理系统相关的一组连接参数,SQLCA.AutoCommit定义就用程序如何提交事务,TRUE的取值表示自动提交每一条SQL语句。
这样,在工作站打开客户端软件时提出一个数据库连接请求,就会去执行以上语句,从而建立与SQL2000的KQXT数据库连接。
以后对其它程序代码操作数据库的所有操作都是基于此连接。
该链接关闭于软件停止运行。
3.2用户个性化登陆
要实现用户页面的个性化,首先要做的显然是弄清登陆的用户是谁。
我采用“用户名/密码”登陆的方式来识别用户。
用户登录时需要填入的是BNENO(用户代码),BNPWD(密码)二个信息。
当用户点击“确定”按钮后,软件判断用户填入信息是否完整、系统根据BNENO查找数据库的KQ_BPWD密码表,将查找到的BNENO与用户输入的BNENO比较,若相同则做相关初始化操作,允许用户进入软件,否则给出提示信息,这些过程由“W_logo”窗口的“确定”按钮的clicked事件实现。
过程如下:
Stringls_pwd,ls_bnpwd,is_bneno
StringIs_user
Is_user=trim(sle_user.tcxt)
IfIs_user=””then
Messagebox(“提示”,”用户名不能为空!
”,exclamation!
)
Return
Endif
///系统时间
DatetimeIdt_date
Selectgetdate()into:
Idt_datefromhtjs.kq_bpwd;
gs_today=string(Idt_date,”YYYY-MM-DD”)
gd_id=sle_user.text
/////////////
IfIs_user=”admin”then
gs_id=”admin”
SELECThtjs.kq_bpwd.bnpwd
INTO:
Is_bnpwd
FROMhtjs.kq_bpwd
WHEREhtjs.kq_bpwd.bneno=:
gs_id;
ifIs_bnpwd<
>
trim(sle_pwd.text)then
messagebox(“错误”,”登录密码不正确!
”,stopsign!
sle_pwd.setfocus()
return
3.3、系统基本资料管理与维护
3.3.1人员设置
在软件中可进行人员设置管理,其功能包括有新增职工、职工信息修改、职工权限设置和删除职工等职能。
(1)新增职工
首先由系统管理员录入职工的BNENO(员工编号)、BNNAM(姓名)、所属科室、职务代码和参加工作时间,单击“新增”按钮系统自动完成数据保存事务。
其过程如下:
dwfilter="
BDNO='
"
+ls_bdno+"
'
dw_list.setfilter(dwfilter)
dw_list.filter()
dw_list.retrieve()
//刷新dw_in窗口
dw_in.setredraw(false)
dw_in.reset()
dw_in.insertrow(0)
dw_in.setredraw(true)
//setfocus
dw_in.setcolumn("
BNENO"
dw_in.setfocus()
else
messagebox("
错误"
"
新增用户失败!
stopsign!
rollback;
endif
stringls_bdno,dwfilter
stringls_bneno
stringls_bnpwd
ifdw_in.update()=1then
commit;
//向密码表中增加新用户默认密码123
ls_bnpwd="
123"
ls_bneno=dw_in.getitemstring(1,"
INSERTINTOhtjs.kq_bpwd
(bneno,bnpwd)
VALUES(:
ls_bneno,:
ls_bnpwd);
//刷新dw_list窗口
ls_bdno=dw_in.getitemstring(1,"
BDNO"
)
ifisnull(ls_bdno)thenreturn
其含义为:
首先,窗口的数据输入文本框中取得相应数值,并直接保存数据窗口的新增数据行,新增用户成功后立即新增该用户的系统登录权限,并为其设置初始密码。
最后刷新所有窗口数据窗口。
如果用户输入有误不保存数据并给用户提示。
3.3.2职工权限设置
a、职工权限设置
窗口(Wright)具有权限设置、修改两种功能,如果是第一次设置该用户权限,则由系统管理员对相应人员设置对应权限;
如果己对该用户设置权限,窗口打开时自动读该职工己有的权限,可提供给系统管理员进行修改。
这个判断过程由W_right的Open事件执行,其过程如下:
ifgstr_para.bneno="
then
提示"
请用鼠标单击右边列表中的用户行!
close(w_right)
return
//显示科室
dw_dev_select.settransobject
(sqlca)
dw_dev_select.retrieve()
dw_dev.settransobject(sqlca)
dw_name.settransobject
ifisnull(gstr_para.bneno)=falseorlen(gstr_para.bneno)>
0then
dw_name.retrieve(gstr_para.bneno)
//显示现有管理科所
dw_dev.retrieve(gstr_para.bneno)
//读权限
cbx_pg.checked=f_read_bman_pms(gstr_para.bneno,"
cbx_pg"
cbx_g