企业工资管理系统精品课件.pptx
《企业工资管理系统精品课件.pptx》由会员分享,可在线阅读,更多相关《企业工资管理系统精品课件.pptx(291页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、本章主要介绍如何使用VFP建立企业工资管理系统。内容包括功能设计、数据库和表设计,自定义函数、多种方式显示数据、表单之间的数据传递、数据缓冲、菜单和工具栏协调等。第第9章章.企业工资管理系统企业工资管理系统9.1系统功能设计系统功能设计企业工资管理系统信息管理信息管理信息管理信息管理基础信息设置个人所得税率员工信息管理部门信息管理工资统计发放发放记录查询系统登录用户管理修改密码关于系统系统设置功能模块图运行salary.exe,完成系统登录,用户名:Admin,密码:sysadmin,打开系统主表单,如下图:包含菜单、工具栏、状态栏。9.1.1系统管理模块系统管理模块系统管理功能下面的系统设置
2、用于录入公司名称、个税起征点。.系统设置系统设置信息设置-所得税率:设置税率、起征点,录入工资可以计算个人所得税额。9.1.2信息设置模块信息设置模块用于设置学历、职务、民族、政治面貌,这些信息在员工信息设置、惩罚、奖励记录管理时作为选项。信息设置信息设置.基础信息基础信息 员工管理-部门信息:只支持一级部门,可以在表格中查看属于该部门的员工信息。9.1.3员工管理员工管理该表单可以完成浏览、新增、修改、删除员工信息操作,单击显示钮可以改变表格中显示方式。员工管理员工管理.员工信息员工信息在员工信息表单中双击员工图标可以调出本表单。.员工信息设定员工信息设定工资管理-工资统计发放:“统计”钮用
3、于统计员工工资,系统日期是10号前统计上个月工资,28号以后统计本月工资。9.1.4工资管理工资管理 录入经手人后单击“发放”可完成工资发放的记录,选中打印工资条后可打印工资条。工资管理工资管理.工资统计发放工资统计发放.工资条工资条可按照员工编号、姓名、部门、工资月份查询工资发放记录,结果可打印。工资管理工资管理.工资发放查询工资发放查询企业工资管理系统包括部门信息、员工信息、系统管理等操作,使用的表较多,以下分模块说明。9.2数据库设计数据库设计系统管理主要包括系统设置、用户管理、系统登录和修改密码等功能,主要涉及2个表:系统设置表(SysInfo)和用户信息表(Users)。9.2.1系
4、统管理系统管理1.系统设置表系统设置表字段名类型宽度 可否为空 说明个税起征点 整型4否普通索引公司名称字符型 40否普通索引系统设置表(SysInfo)用户信息表(Users)2.用户信息表用户信息表字段名类型宽度 可否为空说明用户名字符20否普通索引密码字符20否普通索引姓名字符20否权限整型4否默认值1信息设置模块中包括学历名称、职务名称、民族名称、和政治面貌名称、个人所得税率等。9.2.2信息设置信息设置1.学历名称学历名称学历名称表(学历名称表(Academy)字段名字段名类型类型 宽度宽度可否为空可否为空说明说明学历C20否主索引字段2.职务名称职务名称职务名称表(职务名称表(Du
5、ty)字段名字段名类型类型 宽度宽度可否为空可否为空说明说明职务名称C20否主索引字段3.民族名称民族名称民族名称表(民族名称表(People)字段名字段名类型类型 宽度宽度可否为空可否为空说明说明民族C20否主索引字段4.政治面貌表政治面貌表政治面貌表(政治面貌表(Political)字段名字段名类型类型 宽度宽度可否为空可否为空说明说明政治面貌C20否主索引字段5.所得税率表所得税率表所得税率表(所得税率表(TaxRate)字段名字段名类型类型宽度宽度可否为空可否为空说明说明编号整数4否主索引级数数值2否候选索引工资下限浮动 10,1工资上限浮动 10,1所得税率浮动 10,1速算扣除数
6、浮动 10,1员工管理模块数据表主要有个人信息和工资信息、部门信息表。9.2.3员工管理员工管理1.部门信息部门信息部门信息表(部门信息表(department)字段名字段名类型类型 宽度宽度可否为空可否为空说明说明部门编号C2否主索引字段部门名称C20否2.员工信息员工信息-1/2员工信息表(员工信息表(Personnel)字段名字段名类型类型 宽度宽度可否为空可否为空说明说明员工编号C4否主索引字段姓名C30否性别C2否默认值:男婚否C4否默认值:未婚生日C8部门N2否普通索引职务C20民族C40政治面貌C20学历C20.员工信息员工信息-2/2员工信息表(员工信息表(Personnel)
7、-续上页续上页字段名字段名类型类型 宽度宽度可否为空可否为空说明说明毕业学校C40电话C11掩码:99999999999入职日期D8合同期限D8通讯地址C60邮政编码C6掩码:999999身份证号C18掩码:999999999999999999备注M4密码C20否3.员工工资员工工资员工信息表(员工信息表(Personnel)字段名字段名类型类型 宽度宽度可否为空可否为空说明说明员工编号字符4否主索引字段基本工资浮动6,1默认值:0.0岗位工资浮动6,1默认值:0.0浮动工资浮动6,1默认值:0.0奖金浮动6,1默认值:0.0交通补贴浮动6,1默认值:0.0住房补贴浮动6,1默认值:0.0伙食
8、补贴浮动6,1默认值:0.0失业保险浮动6,1默认值:0.0医疗保险浮动6,1默认值:0.0养老保险浮动6,1默认值:0.0公积金浮动6,1默认值:0.0工资管理包括工资统计发放和发放查询,涉及数据表为:工资记录表。该表用来保存员工工资统计的发放情况。9.2.4工资管理工资管理.工资记录表工资记录表-1/2工资记录表(工资记录表(POList)字段名字段名类型类型 宽度宽度可否为空可否为空说明说明结算编号字符6否主索引员工编号字符4否普通索引工资月份字符6否普通索引基本工资浮动6,1岗位工资浮动6,1浮动工资浮动6,1奖金浮动6,1交通补贴浮动6,1住房补贴浮动6,1伙食补贴浮动6,1失业保险
9、浮动6,1医疗保险浮动6,1.工资记录表工资记录表-2/2工资记录表(工资记录表(POList)-续上页续上页字段名字段名类型类型 宽度宽度可否为空可否为空说明说明养老保险浮动6,1公积金浮动6,1奖励金额浮动6,1惩罚金额浮动6,1工资总额浮动6,1应交金额浮动6,1应缴税额浮动6,1所得税额浮动6,1实发金额浮动6,1结算状态字符默认值:否结算日期日期经手人字符企业工资管理系统中的可视类有:MyCmd、MyMove、MyControl、MyAdmin和MoreAdmin9.3设计可视类设计可视类创建企业工资管理系统项目的步骤创建企业工资管理系统项目的步骤:文件-新建-项目-新建文件-文件名
10、:salary,保存位置:个人文件夹-保存。创建企业工资管理系统数据库的步骤创建企业工资管理系统数据库的步骤:项目管理器-数据-数据库-新建-新建数据库-文件名:salary,保存位置:个人文件夹DATA-保存;创建企业工资管理系统数据表的步骤创建企业工资管理系统数据表的步骤:选择salary下面的表-新建-新建表-确认文件名和保存位置后,依次编辑保存表结构信息9.3.1创建项目与数据库创建项目与数据库 步骤步骤:项目管理器/类库/新建/类名:MyCmd,派生于:CommandButton,存储于:MyTools/确定/在打开的类设计器编辑按钮的属性。属性属性:Caption=按钮FontNa
11、me=楷体_GB2312FontSize=16ForeColor=RGB(0,0,0)Height=30Width=609.3.2创建创建MyCmd类类MyCmd.MouseMoveMyCmd.MouseMove过程过程:LPARAMETERS nButton,nShift,;nXCoord,nYCoord*如果按钮可用IF THIS.Enabled=.T.*使用自定义鼠标指针 This.MousePointer=99*指定自定义鼠标指针 This.MouseIcon=hHand.curENDIF在项目管理器中建立左图所示的类MyMove,基于:Container。为该类添加四个MyCmd控件
12、对象。操作方法操作方法:点表单控件中“查看类”/添加/找开类库MyTools/在控件工具栏上找到MyCmd,拖画到界面。设置对象名分别为CmdTop、CmdPre、CmdNxt、CmdBtm,修改对应的Captiont和ToolTipText的值如“首记录”和“到第一条记录”、“上记录”和“到上一条记录”、“下记录”和“到下一条记录”、“末记录”和“到最后一条记录”。添加事件过程如下:9.3.3创建创建MyMove类类GO TOP&到首记录THISFORM.REFRESH&刷新表单.CmdTop.Click*如果到了数据表首部IF BOF().OR.RECNO()=1 MessageBox(已
13、到首记录,48,人力资源管理系统)ELSE*如果数据指针不位于数据表首部 SKIP-1ENDIF*刷新表单THISFORM.REFRESH.CmdPre.Click*如果记录指针位于数据表末尾IF EOF()or RecNO()=RecCount()MessageBox(已到末记录,48,人力资源管理系统)*如果记录指针不位于数据表末尾ELSE*记录指针下移 SKIPENDIF*刷新表单THISFORM.REFRESH.CmdNxt.ClickGO BOTTOM&到数据表末尾THISFORM.REFRESH&刷新表单.CmdBtm.Click*如果数据表为空或者只有一条记录IF BOF().A
14、ND.EOF().OR.RECCOUNT()=1 THIS.Cmdtop.ENABLED=.F.THIS.Cmdpre.ENABLED=.F.THIS.Cmdnxt.ENABLED=.F.THIS.Cmdbtm.ENABLED=.F.ReturnENDIF*如果在记录指针在数据表的末尾IF RECNO()=RECCOUNT().OR.EOF()THIS.Cmdtop.ENABLED=.T.THIS.Cmdpre.ENABLED=.T.THIS.Cmdnxt.ENABLED=.F.THIS.Cmdbtm.ENABLED=.F.RETURNENDIF.MyMove.Refresh*如果记录指针在数
15、据表的首部IF RECNO()=1.OR.BOF()THIS.Cmdtop.ENABLED=.F.THIS.Cmdpre.ENABLED=.F.THIS.Cmdnxt.ENABLED=.T.THIS.Cmdbtm.ENABLED=.T.RETURNENDIF*如果记录指针不在数据表的首部*也不在尾部THIS.Cmdtop.ENABLED=.T.THIS.Cmdpre.ENABLED=.T.THIS.Cmdnxt.ENABLED=.T.THIS.Cmdbtm.ENABLED=.T.类名:MyAdmin 基类:Container存储:MyTools步骤步骤:在该类的设计器窗口内添加7个MyCmd类
16、对象。对象名依次为:CmdNew/CmdModify/CmdDel/CmdSer/CmdSave/CmdCcl/CmdExit。Caption、ToolTipText属性值参照下图自行定义。该类中只添加“退出”钮的Click过程,其他为空。*CmdExit.Click*CmdExit.ClickLOCAL YNYN=MESSAGEBOX(确定退出,4+32,本系统)IF YN=6THISFORM.RELEASEENDIF9.3.4创建创建MyAdmin类类类名:MoreAdmin 基类:Container存储:MyTools步骤步骤:在该类的设计器窗口内添加7个MyCmd类对象。对象名依次为:
17、CmdNew/CmdModify/CmdDel/CmdSer/CmdSave/CmdCcl/CmdExit。Caption、ToolTipText属性值参照左图自行定义。该类中只添加“退出”钮的Click过程,其他为空。*CmdExit.Click*CmdExit.ClickLOCAL YNYN=MESSAGEBOX(确定退出,4+32,本系统)IF YN=6THISFORM.RELEASEENDIF9.3.5创建创建MoreAdmin类类类名:MyControl基类:Container类库:MyTools创建步骤创建步骤:向该类中添加5个MyCmd对象,对象名:CmdNew,CmdModif
18、y,CmdDelete,CmdRefresh,CmdExit,分别设置其Caption,ToolTipText属性值“新增、增加新记录”、“修改、修改当前记录”、“删除、删除当前记录”、“刷新、刷新显示”、“退出、退出当前表单”9.3.6创建创建MyControl类类企业工资管理系统需要自定义的函数包括:AutoInc字符串数自动增1DateToString日期转换为YYYY/MM/DD形式的串EnCode将给定的串与数值异或后返回ITaxComp计算个人所得税9.4创建通用函数创建通用函数*“AutoInc”函数*作用:使“000000XX”形式的编号自动加1*接收“0000XX”形式的字符
19、串作为参数*字符串长度限制为109.4.1AutoIncFUNCTION autoinc(nCode)*获取字符串长度nLen=Len(nCode)*将字符型转换为数值型,即获取非0部分的数值nCode=VAL(nCode)*非0部分数字加1nCode=nCode+1*转换为字符型nCode=ALLTRIM(STR(nCode)AutoInc.prg-1/2*获取转换后的字符串的长度nLength=LEN(nCode)*在数字之前加上前置“0”nZero=000000000000nCode=SUBSTR(nZero,1,nLen-nLength)+nCode*返回结果RETURN nCodeE
20、NDFUNCAutoInc.prg-2/2*“DateToString”函数*将日期型数据转换为字符串*接收日期型变量作为参数9.4.2DateToString*“DateToString”函数*将日期型数据转换为字符串*接收日期型变量作为参数FUNCTION DateToString(dDate)*默认返回空字符串sDate=*如果参数非空而且为日期型IF.NOT.EMPTY(dDate).AND.VARTYPE(dDate)=D*分别获取其年、月、日字段nYear=YEAR(dDate)nMonth=MONTH(dDate)DateToString.prg-1/2nDay=DAY(dDat
21、e)*组合数据sDate=ALLTRIM(STR(nYear)+/+ALLTRIM(STR(nMonth)+/+ALLTRIM(STR(nDay)sDate=+sDate+ENDIF*返回值RETURN sDateENDFUNCDateToString.prg-22*函数Encode*作用:对输入的指定的字符串进行编码*参数:sStr:要编码或者解码的字符串*nCode:编码或者解码时使用的密钥9.4.3EncodeFUNCTION ENCODE(sStr,nCode)*声明需要使用的本地变量LOCAL sTmpStr,cTempChr,i*sTempStr:用来保存昨时的编码或者解码后的字符
22、串*cTempChr:用来保存编码或者解码后的字符*i:循环计数*对变量赋初值sTempStr=cTempChr=Encode.prg-1/2*如果未指定密钥IF nCode=0nCode=237ENDIF*对字符串的每个字符进行编码FOR i=1 TO LEN(ALLTRIM(sStr)cTempChr=BITXOR(ASC(SUBSTR(sStr,i,1),nCode)sTempStr=sTempStr+CHR(cTempChr)ENDFOR*返回编码后的结果RETURN sTempStrENDFUNCEncode.prg-2/2*“ITaxComp”函数*功能:根据个人所得税率表和系统信
23、息表计算个个人所得税额*参数:nNum,月收入总额*nBeg,个人所得税起征点,如果该参数为-1则使用“SysInfo”表的设置*返回值:个人所得税额9.4.4ITaxComp在调试程序时,应该先在表taxRate中录入如下数据。.个人所得税率表初始数据个人所得税率表初始数据*“ITaxComp”函数*功能:根据个人所得税率表和系统信息表计算个*个人所得税额*参数:nNum,月收入总额*nBeg,个人所得税起征点,如果该参数为-1*则使用“SysInfo”表的设置*返回值:个人所得税额FUNCTION ITaxComp(nNum,nBeg)*如果不指定个人所得税起征点IF nBeg=-1*获取
24、免税工资noTax=0ITaxComp.prg-1/4*如果表“SysInfo”没有打开IF!Used(SysInfo)*打开表USE SysInfoSELECT SysInfo*获取个税起征点noTax=SysInfo.个税起征点USEENDIF*减去不用计税部分nNum=nNum-noTaxELSEITaxComp.prg-2/4nNum=nNum-nBegENDIF*如果工资未到起征点IF nNum 工资下限.AND.nNum THISFORM.MainCon.InfoPage.PAGECOUNTsPage=1.添加代码添加代码.表单表单basicInfo.Init-1/2ELSE*激活
25、指定的选项卡sPage=nPageENDIFENDIF*激活选项卡THISFORM.MainCon.InfoPage.ACTIVEPAGE=sPage*刷新表单THISFORM.REFRESH.表单表单basicInfo.Init-2/2SELECT AcademySET FILTER TO&清除可能存在的过滤条件THIS.DataList.CLEAR&清除列表*循环在列表框中添加列表项SCANTHIS.DataList.ADDITEM(学历)ENDSCAN*选中第1项IF THIS.DataList.LISTCOUNT 0THIS.DataList.SELECTED(1)=.T.ENDIFT
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 企业 工资管理 系统 精品 课件
限制150内