t.showbasic(sql)
frmresult.Show
frmresult.ZOrder0
Me.ZOrder0
选择"工资信息设置"->"其他项目设置"菜单,在其他项目设置的窗体中,设置员工当月的奖金、津贴、福利等项目。
sql="select*fromsalaryother"
Ifichangeflag=1Then
Calladd
MsgBox"已经添加记录",vbOKOnly+vbExclamation,"提示"
Callfrmresult.othertopic
Callfrmresult.showother(sql)
frmresult.Show
UnloadMe
Else
IfMe.optionbonus.Value=TrueThen
itype=1
ElseIfMe.optionallowance.Value=TrueThen
itype=2
ElseIfMe.optionwelfare.Value=TrueThen
itype=3
ElseIfMe.optionabatement.Value=TrueThen
itype=4
ElseIfMe.optionothers.Value=TrueThen
itype=5
resumdate=recordtime
sql="deletefromsalaryotherwherestuffid='"&Me.comid.Text
sql=sql&"'andYearMonth=#"&recordtime&"#and"
sql=sql&"Type="&itype
Calltransactsql(sql,"Salary")
Calladd
Callfrmsumsalary.resumsalary(resumdate)
sql="select*fromsalaryother"
Callfrmresult.othertopic
Callfrmresult.showother(sql)
frmresult.Show
UnloadMe
EndIf
选择"工资信息设置"->"工资计算公式设置"菜单,在这个计算公式窗体中设置员工实际发放工资的计算公式。
IfMe.textovertimecom=""AndIsNumeric(Me.textovertimecom)=TrueThen
MsgBox"请输入正常加班工资百分比",vbOKOnly+vbExclamation,"提示"
Me.textovertimecom=""
Me.textovertimecom.SetFocus
ElseIfMe.textovertimespe=""AndIsNumeric(Me.textovertimespe)=FalseThen
MsgBox"请输入特殊加班工资百分比",vbOKOnly+vbExclamation,"提示"
Me.textovertimespe=""
Me.textovertimespe.SetFocus
ElseIfMe.texterrand=""AndIsNumeric(Me.texterrand)=FalseThen
MsgBox"请输入出差工资",vbOKOnly+vbExclamation,"提示"
Me.texterrand=""
Me.texterrand.SetFocus
ElseIfMe.textabsent=""AndIsNumeric(Me.textabsent)=FalseThen
MsgBox"请输入旷工扣发工资",vbOKOnly+vbExclamation,"提示"
Me.textabsent=""
Me.textabsent.SetFocus
ElseIfMe.textle=""AndIsNumeric(Me.textle)=FalseThen
MsgBox"请输入迟到早退扣发工资",vbOKOnly+vbExclamation,"提示"
Me.textle=""
Me.textle.SetFocus
Else
Callsetvalue
Callinit
EndIf
选择"工资信息管理"->"出勤统计"菜单,在统计出勤记录窗体中选择需要统计记录的月份。
firstday=Year(Date)&"-"&Me.commonth.Text&"-1"
days=DateDiff("d",Year(Date)&"-"&Me.commonth.Text&"-1",_
Year(Date)&"-"&Me.commonth.Text+1&"-1")
lastday=Year(Date)&"-"&Me.commonth.Text&"-"&days
sql="select*fromattendancestatisticswhererecordmonthbetween#"
sql=sql&firstday&"#and#"&lastday&"#"
Setrsrecord=getrs(sql,"salary")
Ifrsrecord.EOF=FalseThen
MsgBox"已经统计",vbOKOnly+vbExclamation,"提示"
frmaresult.Show
frmaresult.ZOrder0
rsrecord.Close
UnloadMe
ExitSub
EndIf
sql="select*fromattendanceinfowhereadatebetween#"
sql=sql&firstday&"#and#"&lastday&"#"
Setrsrecord=getrs(sql,"person")
Ifrsrecord.EOF=FalseThen
sql="selectsid,snamefromstuffinfoorderbysid"
Setrsperson=getrs(sql,"person")
选择月份后单击"确定"按钮,如果系统已经统计过该月份的记录,那么会出现如下图所示的统计结果信息列表。如果系统没有统计过,那么系统就会开始统计记录,然后显示如图所示的统计结果信息列表。
Ifstrusername<>"admin"Then
sql="selectsidfromstuffinfowheresname='"&strusername&"'"
Setrs=getrs(sql,"salary")
sd=rs(0)
sql="select*fromattendancestatisticswherestuffid='"&sd&"'"
Me.Adodc1.ConnectionString="provider=microsoft.jet.oledb.4.0;Datasource="&App.Path&"\salary.mdb"
Me.Adodc1.RecordSource=sql
Me.Adodc1.Refresh
SetMe.DataGrid1.DataSource=Me.Adodc1.Recordset
Me.DataGrid1.Refresh
Else
sql="select*fromattendancestatistics"
Me.Adodc1.ConnectionString="provider=microsoft.jet.oledb.4.0;Datasource="&App.Path&"\salary.mdb"
Me.Adodc1.RecordSource=sql
Me.Adodc1.Refresh
SetMe.DataGrid1.DataSource=Me.Adodc1.Recordset
Me.DataGrid1.Refresh
EndIf
选择"工资信息管理"->"计算实发工资"菜单,在这个窗体中选择需要统计的月份。选择统计月份后,单击"开始统计"按钮,系统如果已经统计了该月份的工资,系统会显示工资信息列表窗体。如果系统还没有统计工资,那么系统开始统计工资,然后在信息结果列表窗体中显示统计结果。
IfMe.commonth.Text=4Then
firstday=Year(Date)&"-"&Me.commonth.Text&"-1"
days=DateDiff("d",Year(Date)&"-"&Me.commonth.Text&"-1",_
Year(Date)&"-"&Me.commonth.Text+1&"-1")
lastday=Year(Date)&"-"&Me.commonth.Text&"-"&days
Callsumsalary(firstday,lastday)
sql="select*fromsalarystatistics"
frmresult.SSTab1.Caption="员工工资统计列表"
Callfrmresult.listtopic
Callfrmresult.showdata(sql)
frmresult.Caption="统计结果列表"
frmresult.ZOrder0
UnloadMe
Else
MsgBox"这个月的工资未统计",vbOKOnly+vbExclamation,"提示"
EndIf
选择"工资信息管理"->"查询工资"菜单,系统显示如图的查询信息窗体,系统默认的是查询出数据库中所有的记录(当管理员进入的时候),当从"员工编号"下拉列表中选择一个员工编号后,单击"查询单人"按钮,就会查询出符合这个员工编号的记录;如果需要返回查询所有信息,单击"查询所有"按钮,系统就会返回所有员工的信息。在"员工工资统计列表"中单击鼠标右键,会弹出下图的菜单,在"员工其他项目列表"中单击鼠标右键也会出现下图的菜单。
如果要选择"删除基本工资设置",出现如下的提示:
具体的操作这里就不详细介绍。
选择"工资信息管理"->"导出工资表"菜单,会出现下图的"导出记录"窗体中选择需要导出工资的月份。选择月份和保存位置后,单击"导出"按钮,系统会开始导出数据。
单击"确定"按钮打开导出的文件,单击"取消"按钮回到系统。
导出的工资记录
3.4各项子模块编写要点
在登录的这个窗体里,我做的特点是:只要在数据库里有用户信息的,都可以登录,然后显示相关自己的信息,而管理员显示所有的信息。当输入的用户名或密码不正确的时候,会出现如下的对话框:
或者
在主窗体的设计中,我在系统的下拉菜单里包括有添加用户、修改密码和退出系统。在这个模块里普通用户只有修改自己的密码的权利。在添加用户的窗体里:添加3个标签、3个文本框和2个命令按钮,然后设置它们相关的属性。在修改密码的窗体里:添加了3个标签,用来显示信息;3个文本框用来输入用户名称和用户密码;2个按钮用来确定和取消操作,然后设置它们的属性。
在工资信息设置的下拉菜单里包括有基本工资信息设置、其他项目信息设置和计算公式设置。在这个模块里,普通用户没有任何权利进行相关的操作。在基本工资窗体里:添加了2个选项按钮、2个下拉列表、2个标签、1个文本框和2个按钮,然后设置它们的属性。在其他项目设置的窗体里:使用了一个DTPick
上一篇:
VB工作备忘录(论文和程序)
下一篇:
那些令你为之触动的好句子,感慨万分