工资管理系统模块中的代码和界面
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
工资管理系统模块中的代码和界面:
Public Function connectstring() As String
'返回一个数据库连接
'将字符串赋给用户自定义函数名,即可返回
connectstring = "Provider=SQLOLEDB;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=员工薪资管理系统;Data Source=127.0.0.1"
'Data Source=.也可以
'Integrated Security: 用于指定采用的集成安全机制
'Persist Security Info :是否支持安全信息(是否保存密码)
'Initial catalog: 用于指定要连接的数据库名称
'Data Source:用于指定连接的计算机sql服务器名,或写成本地计算机
'Microsoft建议所有的基于Win32的应用程序开发者在进行安全分布式应用程序的开发时使用SSPI的集成安全特性
End Function
1.创建系统登陆窗体,具体方法如下。
系统登陆窗体中需要输入登陆用户名和密码,并可以请求验证或退出登陆。
在工程中添加一个标准窗体,按照图5-1设计需要的登陆窗体。
将窗体命名为“frm_login",窗体文件保存为“frmSysLogon.frm"。
图5-1 用户登录
2.实现系统登陆功能,具体方法如下。
(1)定义窗体级变量。
在窗体代码通用声明部分定义保存允许用户验证登陆信息最大次数的窗体级变量,语句如下所示:
Const MaxLogTimes As Integer=3 '定义允许用户验证登陆信息的最大次数(2)实现登陆身份验证。
在用户输入用户名和密码之后,单击登陆按钮提交登陆信息,在按钮的单击事件过程完成所有验证操作,实现代码如下:Private Sub cmdOK_Click()
Dim intchecked As Integer
Dim strname As String, strpassword As String
'静态常量intLogTimes 用于保存用户请求验证的次数
Static intlogtimes As Integer
intlogtimes = intlogtimes + 1 '保存登陆次数
If intlogtimes > maxlogtimes Then
'超过允许的登陆次数,显示提示信息
MsgBox "你已经超过允许的登录验证次数!" & vbcr_ & "应用程序将结束!", vbCritical, "登录验证"
End '结束应用程序
Else
'进一步验证登录信息的合法性
strname = Trim(txtlog(0).Text) '获得用户名
strpassword = Trim(txtlog(1).Text) '获得口令
'检验用户名和口令的合法性,并根据检验返回值执行相应的操作
Select Case check_password(strname, strpassword)
Case 0
'用户不是系统用户
MsgBox "用户不是系统用户,请检查用户名是否输入正确!", vbCritical, "登录验证"
txtlog(0).SetFocus
txtlog(0).SelStart = 0
txtlog(0).SelLength = Len(txtlog(0))
Case 1
'口令错误
MsgBox "口令错误,请重新输入!", vbCritical, "登录验证"
txtlog(1) = ""
txtlog(1).SetFocus
Case 2
Unload Me '口令正确,卸载登录窗体
MsgBox "登陆成功,将启动系统程序!", vbInformation, "登录验证"
frmmain.Show
Case Else
'登录验证未正常完成
MsgBox "登录验证未正常完成!请重新运行登陆程序," & vbcrlf_ & "如果仍不能登录,请报告系统管理员!", vbCritical, "登录验证"
End Select
End If
End Sub
(3)实现退出登陆功能。
单击取消按钮,退出登陆程序,实现代码如下:Private Sub cmdCancel_Click()
'请求用户确认是否真的退出系统登陆
If MsgBox(“你选择了退出系统登陆,退出将不能启动管理系统!”&vbCRlF_&“是否真的退出?”,vbYesNO,“登陆验证”)=vbYes Then Unload Me ‘卸载登陆窗体
End If
End Sub
3.实现员工信息管理功能
员工信息管理功能包括员工与工资相关信息的添加、修改和删除以及记录浏览等操作。
第一步,创建数据环境命令,具体方法如下。
员工信息管理需要使用"员工信息"数据表,所以需要在数据环境中创建一个命令来访问该表。
在数据环境设计器中为连接对象Wage_Manage_Con 添加一个命令,将其命名为StuffData,CommandType属性设置为2(表示使用表对象),CommandText 属性设置为“员工信息”,LockType 属性设置为3(表示开放式锁定)。
该命令返回的记录集使用Wage_Manage_Data.rsStuffData进行访问。
第二步,创建员工信息管理窗体,具体方法如下。
员工信息管理操作的所有操作设计都在一个窗体中完成,如图5-3-1所示。
图5-1
第三步,实现员工信息管理功能,具体方法如下。
(1)定义窗体级变量。
定义一个窗体级变量用于标识是否处于添加记录状态,当窗体处于添加记录状态时,必须完成保存操作之后才能执行其他管理操作,定义语句如下:
Dim isAdding As Boolean '定义窗体状态标志
(2)实现窗体初始化。
在窗体加载时,窗体中默认显示“系统用户”数据表中的第一个记录数据,为了使txtNews文本框显示当前记录编号和记录总
数,在窗体加载时执行按钮的单击事件过程,实现代码如下:
Private Sub Form_Load()
CmdMove(0).Value=True '触发按钮单击事件End Sub
(3)实现记录导航。
为实现记录导航,使用pictureBox 控件、命令按钮和文本框模拟实现了ADO Data控件的导航条,该导航条具有浏览记录、显示当前记录编号和记录总数功能。
实现记录导航功能的代码如下:
Private Sub cmdMove_Click(Index As Integer)
With Wage_Manage_Data.rsSysUsers
Select Case Index ‘切换当前记录
Case 0 ‘使第一个记录成为当前记录
If .RecordCount>0 And Not.BOF Then.MoveFirst
Case 1 ‘使上一个记录成为当前记录
If .RecordCount>0 And Not.BOF Then.MovePrevious
If .BOF Then.MoveFirst
End If
Case 2 ‘使下一个记录成为当前记录
If .RecordCount>0 And Not.EOF Then.MoveNext
If .EOF Then.MoveLast
End If
Case 3 ‘使最后一个记录成为当前记录
If .RecordCount>0 And Not.EOF Then.MoveLast End select
If.BOF And.EOF Then
txtNews = “记录:无”‘显示当前记录编号和记录总数 Else
txtNews = “记录:”&.AbsolutePosition & “/”&.RecordCount End If
End With
End Sub
(4)验证用户信息输入。
在输入员工编号时,只允许输入数字作为编号,实现代码如下:
验证员工编号输入
Private Sub txtUser_KeyPress(KeyAscii As Integer) If Not(Chr(KeyAscii)Like"[0-9]"Or KeyAscii=vbKeyBack)Then
KeyAscii=0 ‘输入不是数字,英文字母或退格键,取消输入 End If
picNavigation.Enabled = False
cmdAdd.Enabled=False
cmdDelete.Enabled=False
End Sub
在验证输入时,将picNavigation的Enabled 设置为False
禁用导航条,这样在用户输入或修改当前记录数据时,不能通过导航条切换显示其他记录,必须在执行保存操作之后才行,从而避免出错。
(5)强制保存当前记录修改。
当用户修改当前记录数据时,禁用添加、删除按钮和导航条,在执行保存操作后再启用,这样可在执行保存操作时验证记录数据是否合法。
实现代码如下:
Private Sub cmbTitle_KeyPress(KeyAscii As Integer)
picNavigation.Enabled=False
cmdAdd.Enabled=False
cmdDelete.EnabledFalse
End Sub
Private Sub cmbDuty_KeyPress(KeyAscii As Integer}
picNavigation.EnabIed=False
cmdAdd.Enabled=False
cmdDelete.Enabled=False
End Sub
Private Sub txtTime_KeyPress(KeyAscii As Integer)
piclVavigaEion.Enabled=False
cmdAdd. Enabled=False
cmdDelete.Enabled=False
End Sub
Private Sub txtlFser_KeyPress(KeyAscii As Integer)
picNa}igation.Ena6led=False
cmddAdd.Enalaled=False
cmdDelete.Enabled=False
End Sub
Private Sub txtDeptes KeyPress(KeyAscii As Integer)
picNavigation.Enabled=False
cmdAdd.Enabled=False
cmdDelete.Enabled=False
(6)实现添加操作。
在用户单击添加按钮时,向“员工信息”数据表中添加一条新记录,实现代码如下:
Private Sub cmdAdd_Click()
With Wage_ Manage_ Data.rsSteffLData
.AddNew'添加新记录
txtNews="记录:"&.AbsolutePosition&"/"&.ReordCount
End With
txtNum=Format(Date, "yyyymmdd")&-"001" '设置默认职工号cmbDuty ="无" '设置默认职务
cmbTide="初级" '设置默认职称
txtTime =Format(Date, "Long Date") '设置默认工作时间
isAdding=True
cmdAdd.Enahled = False '在保存新记录之前禁用控件
cmdDelete.Enabled=False
picNavigation.Enabled =False
End Sub
在添加新记录时将添加、删除按钮和导航条禁用,在执行保存操作时再启用。
(7)实现删除操作。
在用户单击删除按钮时,删除当前记录,实现代码如下: Private Sub cmdDelete_Click()
With Wage_Manage_Data.rsStuffData
If Not .EOF Then
If MsgBox("将删除<"&Trim(txtUser)&">的员工数据,是否继续?", _vbCritical + vbYesNa,"系统用户管理") = vbYes Then
.Delete
.MoveNext
If .EQF And .RecordCount>0 Then .MoveLast
End If
End If
End With
End Sub
(8)实现刷新操作。
在用户单击刷新按钮时,执行刷新数据操作,实现代码如下: Private Sub cmdRefresh_Click()
On Error Resume Next
With Wage_Manage_Data.rsStuffData
If .RecordCount>0 Then
.CancelUpdate '取消前一步执行的操作
.Requer '重新读取记录集数据
’重新执行数据绑定
Set txtUser.DataSource=Wage_Manage_Data
txtUser.DataMember= "StufFData"
txtUser.DataField=”姓名"
Set txtNum.DataSource=Wage_Manage_Data
txtNum.DataMember="StuffData"
txtNum.DataField="职工编号"
Set txtDept.DataSource=Wage_Manage_Data
txtDept.DataMember="StuffData"
txtDept.DataField="部门"
Set txtTime.DataSource=Wage_ Manage_Data
txtTime.DataMember="StuffData"
txtTime.DataField="工作时间"
Set cmbDuty.DataSource=Wage_Manage_Data
cmbDuty.DataMember="StuffData"
cmbDuty.DataField="职务"
E cmdAdd.Enabled=True
cmdDelete.Enabled=True
isAdding=False
picNavigation.Enabled=True
cmdMove(0). Value=True
End Sub
在执行Requery方法刷新记录集时,必须重新执行数据绑定操作,否则文本框和组合框将不能绑定到刷新后的记录集上。
(9)实现保存操作。
在用户单击保存按钮时,保存被修改的当前记录数据。
首先检查各个数据项是否包含合法数据,然后检查指定的编号是否被使用,在所有验证通过时执行保存操作。
实现代码如下:
Private Sub cmdSave_ Click()
Dim objCogy As New Recordset
if Trim(txtUser)="" Then
MsgBox "员工姓名不能为空!", vbCritical, "员工信息管理"
txtUser.SetFocus
txtUser.Se1Start=0
txtUser.SelLength=Len(txtUser)
E1self Len(Trim(txtNum))<>11 Then
MsgBox"员工编号必须为11的数字! ", vbCritical, "员工信息管理"
txlNum.SetFncus
txtNum.SelStart=0
txtNum.SelLength=Len(txtNum)
E1seIf Trim(txtDept)="" Then
MsgBox"员工姓名不能为空!",vbCritical, " 员工信息管理"
txtDept.SetFocus
txtDept=""
Elself IsDate(txtTime) Then
MsgBox"不是有效日期!" , vbCritical,"员工信息管理"
txtTime.SetFocus
txtTime.SelStart=0
txtTime.SelLength=Len(txtTime)
E1seIf Trim(cmbDuty)=""Then
MsgBox"职务不能为空", vbCriticaI,"员工信息管理"
cmbDuty=""
cmbDuty.SetFocus
Elself Trim(cmbTitle)=""Then
MsgBox"职称不能为空",vbCritical,"员工信息管理"
cmbTitle=""
cmbTitle.SetFocus
Else
Set objCopy=Wage _Manage_Data.rsStuffData.Clone
With objCopy
If .RecordCount>0 Then
.MoveFirst
.Find"编号"=""&Trim(txtNum)&""
'检查编号是否被使用
If Not .EOF And .AbsolutePosition<>_
Wage_Manage_DaEa.rsStuffData.AbsolutePosition
Then
MsgBox"编号:"&Trim(txtNum)_
&"已被使用,请使用其他编号!",_
vbCritical,"员工信息管理"
txtNum.SetFocus
txtNum.SelStart=0
txtNum.SelLength=Len(txtNum)
Else
'保存记录
Wage_Manage_Data.rsStuffData.Update
MsgSox "数据保存成功!" , vbInformation,"员工信息管理”
cmdAdd.Enabled=True
cmdDelete.Enabled=True
isAdding二False
picNavigation.Enabled=True
End if
End if
End With
End if
End Sub
在验证员工编号是否已被使用时,定义了一个记录级变objCopy用来复制
Wage_Manage _Data.rsStuffData。
如果执行Find方法在objCopy没有找到指定的员工编号,则说明该编号没有被使用;如果找到,并且objCopy中的当前记录指针与rsStuffData位置相同,说明该编号也没有被使用:否则说明编号已经被使用。
(10)实现关闭窗体操作。
在用户单击关闭按钮时,关闭系统用户管理窗体,实现代码如下:
Private Sub cmdExit _Click()
Unload Me '关闭系统用户管理窗体
End Sub
8.实现员工工资设置功能
员工工资设置对“基本工资”数据表中的各种其他工资进行设置或修改。
第一步,创建访问“基本工资”数据表的数据环境命令,具体方法如下。
在数据环境设计器中为连接对象Wage_ Manage_ Con添加一个命令,将其命名为“TitleWage",CommandType属性设置为2 CommandText属性设置为“员工工资”,LockType属性设置为3。
该命令返回的记录集使用Wage
_Manage_Data.rsTitleWage进行访问。
第二步,创建员工工资设置窗体具体方法如下。
.
员工工资设置窗体如图5-2所示,窗体文件保存为"frmTItleWage.frm"。
图5-2
第三步,实现员工工资设置功能,具体方法如下。
(1)实现窗体初始化功能。
在窗体加载时显示原始的其他工资标准,如果没有其他工资标准记录则设置各项其他上资标准的默认值,实现代码如下: Private Sub Form_ Load()
Dim i %
With Wage_Manage_Data.rsElseWage
If .State=adStateClosed Then .Open
If Nat (.BQF And .EOF) Then '判断有无其他工资标准记录
txtSE(0)=Fields("专家津贴"-): txtSE(1)=Fields("独补")
txtSE(2)=.Fields("房贴")
txtSE(3)=Fields("一次性补发")
txtSE(4)=.Fields("其他补贴")
txtDE(0)= .Fields("扣公积金")
txtDE(1) =.Fields("扣失业险")
txtDE(2) = .Fields("扣医疗险")
txtDE(3)=.Fields("扣垃圾费")
txtDE(4)=.Fields("扣房租")
txtDE(5)=.Fields("扣其他")
Else
For i=0 To 4
txtSE(i)=txtDE(i)=0
Next i
txtDE(5)=0
End If
End With
End Sub
(2)保存修改后的其他工资标准。
单击保存按钮保存修改后的其他工资标准,如果还没有设定过其他工资标准,则向“员工工资”数据表中添加一个新记录来保存当前设定的其他工资标准,实现代码如下:
Private Sub cmdSave_ Click()
Dim strNews, i%
For i=0 To 4 '检验各项工资标准设置
If Trim(txtSE(i))=""Then txtSE(i)=0
If Trim(txtDE(i))="" Then txtDE(i)=0
Next
If Trim(txtDE(5)) =””Then txtDE(5)=0
With Wage_ Manage_Data.rsElseWage '保存工资标准设置
If .RecordCount=0 Then .AddNew
Fields("独补")=txtSE( 1)
.Fields("房贴")=txtSE(2)
Fields("一次性补发")=txtSE(3)
.Fields("其他补贴")=txtSE(4)
.Fields("扣公积金")=txtDE(0)
.Fields("扣失业险") = txtDE(1)
.Fields("扣医疗险")=txtDE(2)
.Fields("扣垃圾费")= txtDE(3)
.Fields("扣房租") = txtDE(4)
.Fields("扣其他') = txtDE(5)
Update
End Wi th
MsgBox"数据保存成功!",vbInformation,"其他工资标准设定"
End Sub
4.实现工资查询功能
工资查询是根据指定员工姓名或编号查询“员工信息”数据表,然后显示查询结果中的员工工资信息。
第一步,设计工资查询窗体,具体方法如下。
工资查询窗体如图5-3所示,窗体文件保存为”frmQuery Wage.frm"。
图5-3
第二步,实现工资查询功能,具体方法如下。
工资查询功能的实现根据指定的查询条件和查询方式,设置“员工信息”数据表的过滤条件,然后根据过滤后的记录显示员工工资,实现代码如下:Private Sub cmdQuery _Click()
With Wage_Manage _Data.rsStuffData
If txtkey <>"" Then
If optName. Value Then
.Filter =”姓名LIKE'"&txtkey&""
Else
.Filter="编号LIKE'"& txtKey&""
End If
Else
.Filter=""
End If
End With
cmdMove(0).Value = True
End Sub
利用导航条可查看查询结果中的其他员工工资,实现代码如下: Primate Sub cmdMove_ Click(Index As Integer)
With Wage_ Manage_ Data.rsStuffData
If .State=adStateClosed Then .Open
If .BOF And .EOF Then '显示查询结果提示
txtNews="查询结果:无符合条件的记录"
Else
txtNews="查询结果:" & .AbsolutePosition& "/"
& .RecordCount
Select Case Index' 切换当前记录
Case 0 '使第一个记录成为当前记录
If .RecordCount >0 And Not .BOF Then .MoveFirst
Case 1 '使上一个记录成为当前记录
If .RecardCount>0 And Not .BOF Then
.MovePrevious
If .BOF Then .MoveFirst
End If
Case 2 '使下一个记录成为当前记录If .RecordCount>0 And Not .EOF Then
MoveNext
If .EOF Then .MoveLast
End If
Case 3 '使最后一个记录成为当前记录
If .RecordCount>0 And Not .EOF Then .MoveLast
End Select
ShowWage
End With
End Sub
Private Sub ShowWage()
Dim strDuty As String, strTitle As String
'打开工资标准数据表
If Wagee_Manage_Data.rsDutyWage.State=adStateClosed Then_
Wage_Manage_Data.rsDutyWage.Open
If Wage Manage_Data.rsTitleWage.State=adStateClosed Then_
Wage_ Manage_Data.rsTideWage.Open
If Wage_Manage_Data.rsElseWage.State=adStateClosed Then _
Wage_Manage_Data.rsELseWage.Open
If Wagee_Manage_Data.rsStuffData.State=adStateClosed Then_
Wage _Manage_Data.rsStuffData.Open
If Wage_Manage_ Data.rsStuffData.RecordCount>0 Then
'显示查询结果
strDuty=Wage_Manage_Data.rsStuffData.Fields("职务")
strTitle=Wage_Manage_Data.rsStuffData.Fields("职称")
'根据职称计算住房补贴、职称工资、公积金、失业险、医疗险
Select Case sttTttle
Case"高级"
txtHouse=Wage_ Manage_Data.rsElseWage.Fields("房帖")*3
txtDG = Wage_Manage_Data.rsElseWage.Fields("扣公积金")*3
txtDS = Wage_Manage_Data.rsElseWage.Fields("扣失业险")*3
txtDY=Wage_Manage_Data.rsElseWage.Fields("扣医疗险”)*3 Case"副高"
TxtHonse=Wage_ Manage_ Data.rsElseWage.Fields("房贴")*2.5
txtDG = Wage_ Manage_ Data.rsE1seWage.Fields("扣公积金") * 2.5
txtDS=Wage_ Manage_ Data.rsE1seWage.Fields("扣失业险")*2.5
txtDY =Wage_ Manage_ Data.rsE1seWage.Fields( "扣医疗险") * 2.5 Case"中级"
TxtHonse=Wage_ Manage_ Data.rsE1seWage.Fields("房贴")*2
txtDG =(Wage_ Manage_ Data.rsE1seWage.Fields"扣公积金")*2
txtDS=Wage_ Manage_Data.rsElseWage.Fields("扣失业险-")*2
txtDY=Wage_ Manage_Data.rsElseWage.Field("扣医疗险"-)*2 Case"初级"
txtHouse=Wage_Manage_Data.rsElseWage.Fields("房贴")*1.5
txtDG = Wage_Manage_Data.rsEIseWage.Fields("扣公积金")*1.5
txtDS =Wage_Manage_Data.rsEIseWage.Fields ("扣失业险")*1.5
txtDY=Wage_Manage_Data.rsEIseWage.Fields("扣医疗险")*1.5 Case"工人"
txtHouse = Wage_Manage_Data.rsElseWage.Felds("房贴")
txtDG=Wage_Manage_Data.rsElseWage.Felds("扣公积金")
txtDS =Wage_Manage_Data.rsElseWage.Felds ("扣失业险")
txtDY = Wage_Manage_Data.rsElseWage.Felds("扣医疗险") End Select
If Wage_ Manage _Data.rsStuffData.Fields("住房")=0 Then
txtHouse=0
Else
txtDF=Wage_Manage_Data.rsElseWage.Fields("扣房租")
End If
'根据职称、职务计算职称、职务工资
If strDuty="无" Then
txtDutyWage=0
Else
txtDutyWage=Wage_Manage_Data.rsDutyWage.Fields(strDuty)
End If
txtTitleWage=Wage_Manage_ Data.rsTitleWage.Fields(strTitle)
'计算专家津贴
If Wage_Manage_ Data.rsStuffData.Fields("专家") Then
txtExpert=Wage_Manage_Data.rsElseWage.Fields("专家津贴")
Else
txtExpert=0
End If
'计算独生未成年子女补贴
If Wage _Manage_Data.rsStuffData.Fields("独补")Then
txtsingle=Wage_Manage_Data.rsElseWage.Fields("独补")
Else
txtSingle=0
End If
'显示一次性补发、其他补贴、垃圾费、扣其他费用
txtOnce=Wage_Manxge_Data.rsElseWage.Fields("一次性补发") txtElse=Wage_Manxge_Data.rsElseWage.Fields("其他补贴")
txtDL=Wage_Manxge_Data.rsElseWage.Fields("扣垃圾费)
txtDQ = Wage_Manage _Data.rsElseWage.Fields("扣其他")
'显示当前员工姓名
txtKey=Wage_Manage_Data.rsStuffData.Fields("姓名")
'计算应发工资合计
txtSGet=Val(txtExpert)+Val(txtSingle)+Val(txtHouse)+Val(txtDutyWage)- +Val(txtTideWage)+Val(txtOnce)+Vai(txtElse)
'计算应扣工资合计
txtDD=Val(txtDG)+Val(txtDS)+Val(txtDY)+Val(txtDL)_
+Val(txtDF)+Val(txtDQ)
'计算实发工资
txtGet=Val(txtSGet)-val(txtDD)
Else
'在无查询结果时清除各个工资数据项
txtGet="": txtExpert="": txtSingle = ""
txtHouse ="": txtDutyWage="": txtTitleWage=""
txtOnce='"": txtElse="": txtSGet=""
txtDG="': txtDs=-"" : txtDD=""
txtDL ="": txtDY="": txtDF=""
txtDQ=""
End If
End Sub
最后实现关闭窗体功能,代码如下:
Private Suh cmdExit Click()
Unload Me '关闭工资查询窗体
End Sub
六.测试情况:
具体操作如下:
(1)将frm_login窗体设置为工程启动对象,按<F5>键运行工
程,首先显示系统登录窗体,如图6-1所示。
图6-1
(2)在“用户名”文本框中输入“administrator”,在“密码”文本框中输入“administrator”,然后单击确定按钮登录工资管理系统,如图6-2所示。
图6-2
(3)选择“系统管理”“用户管理”菜单命令,打开“系统用户管理”窗体,如图6-3所示。
选择“系统管理”“修改口令”菜单命令,打开“修改登录口令”窗体,如图6-4所示。
图6-3
】
图6-4
(4)选择"系统管理" "员工信息管理"菜单命令,打开“员工信息管理”窗体,如图6-5所示。
图6-5
(5)选择“员工工资设置”“工资标准设置”菜单命令,打开“工资标准设置”窗体,如图6-6所示。
选择“设置工资标准”“其他工资标准”菜单命令,打开“其他工资标准设置”窗体,如图6-7所示。
图6-6
图6-7
(6)选择“工资信息管理”“浏览与结算”菜单命令,打开“工资结算与浏览”窗体,如图6-8所示。
选择“工资信息管理”“工资查询”菜单命令,打开个
工资查询窗体,如图6-9所示。
图6-8
图6-9。