📄 mainunit.pas
字号:
procedure TMainForm.mouyu1Click(Sender: TObject);
begin
application.messagebox('本模块暂时不提供!!!','消息框',mb_ok+mb_iconstop);
end;
procedure TMainForm.N37Click(Sender: TObject);
begin
Application.CreateForm(TCcForm,ccform);
ccform.Showmodal;
ccform.hide;
ccform.Release;
end;
procedure TMainForm.Timer1Timer(Sender: TObject);
begin
{bmpi:=bmpi+1;
begin
if bmpi=21 then bmpi:=1;
image1.Picture.LoadFromFile(IntToStr(bmpi)+'.bmp');
// image1.Update;
// .Refresh;
end;}
end;
procedure TMainForm.SQl1Click(Sender: TObject);
begin
application.messagebox('本模块暂时不提供!!!只有高级用户才能使用!!!','消息框',mb_ok+mb_iconstop);
end;
procedure TMainForm.N49Click(Sender: TObject);
begin
try
Application.CreateForm(TRecForm, RecForm);
recForm.showmodal;
recform.Hide;
recform.Release;
except
Application.MessageBox('数据发生错误!!!请运行<维护>---><数据清理>菜单项!!!','提示框',mb_ok+mb_iconstop);
abort;
end;
end;
procedure TMainForm.N53Click(Sender: TObject);
begin
try
Application.CreateForm(Tcssjdate,cssjdate);
cssjdate.ShowModal;
cssjdate.Hide;
cssjdate.Release;
except
Application.MessageBox('数据发生错误!!!请运行<维护>---><数据清理>菜单项!!!','提示框',mb_ok+mb_iconstop);
abort;
end;
end;
procedure TMainForm.N55Click(Sender: TObject);
begin
try
Application.CreateForm(TDelGzdate,DelGzdate);
DelGzdate.ShowModal;
delgzdate.Hide;
delgzdate.Release;
except
Application.MessageBox('数据发生错误!!!请运行<维护>---><数据清理>菜单项!!!','提示框',mb_ok+mb_iconstop);
abort;
end;
end;
procedure TMainForm.N57Click(Sender: TObject);
begin
try
//if dater=nil then
Application.CreateForm(Tdater,dater);
dater.showmodal;
dater.Hide;
dater.Release;
except
Application.MessageBox('数据发生错误!!!请运行<维护>---><数据清理>菜单项!!!','提示框',mb_ok+mb_iconstop);
abort;
end;
end;
procedure TMainForm.N59Click(Sender: TObject);
begin
try
Application.CreateForm(Tjjdate, jjdate);
jjdate.showmodal;
jjdate.Hide;
jjdate.Release;
except
Application.MessageBox('数据发生错误!!!请运行<维护>---><数据清理>菜单项!!!','提示框',mb_ok+mb_iconstop);
abort;
end;
end;
procedure TMainForm.N61Click(Sender: TObject);
begin
Application.CreateForm(Tkkdate, kkdate);
kkdate.showmodal;
kkdate.Release;
end;
procedure TMainForm.N63Click(Sender: TObject);
var
recno1,recno2,rec,i,KqD:integer;
sy,esptime,Rq,info:string;
// shjrq1,shjrq2:string;
Bj,Hc,Jb,Jn,Gw,nt,DDD,gl,rg,bjgz,kgd,sjd,sj,cf,bzqt:real;
// shj:real;//税金
begin
//if kqday=nil then
Application.CreateForm(Tkqday,kqday);
if kqday.showmodal=mrok then
begin
case kqday.Rg.ItemIndex of
0:
begin
if jsbmxz=nil then
Application.CreateForm(Tjsbmxz,jsbmxz);
jsbmxz.Showmodal;
end;
end;
KqD:=strtoint(kqday.Edit1.Text);
Rq:=password.MaskEdit1.Text+'-'+password.Edit4.Text;
IF (application.messagebox(pchar('您所选择的计算数据是: '+rq+'月,正确吗?'),'消息框',mb_okcancel+mb_defbutton1+mb_iconquestion)
=idcancel) then
abort;
with data.Query5.SQL do
begin
clear;
add('select * from lyk.dbf ');
add('where riqi='''+rq+'''');
case kqday.Rg.ItemIndex of
0:
begin
for i:=0 to jsbmxz.listbox2.Items.Count-1 do
begin
try
add('and bmno <> +'''+copy(jsbmxz.listbox2.Items[i],1,5)+'''');
except
end;
end;
end;
end;
end;
data.Query5.Close;
data.Query5.Open;
if data.Query5.IsEmpty then
begin
info:='此月:'+RQ+'数据不存在,请重新选择日期或者重新生成本月数据信息';
application.messagebox(pchar(info),'消息框',mb_ok+mb_iconstop);
data.Query5.Close;
abort;
end;
datat.Table4.Open;
datat.Table4.DisableControls;
// data.Query1.DisableControls;
with data.Query5 do
begin
// pb1.Visible:=true;
esptime:=timetostr(now);
screen.cursor:=crhourglass;
try
Open;
DisableControls;
first;
rec:=0;
recno2:=RecordCount;
for recno1:=1 to recno2 do
begin
// Application.ProcessMessages;
Bj:=fieldbyname('Jb_bj_d').asfloat;
Hc:=fieldbyname('Jb_Hc_d').asfloat;
Nt:=fieldbyname('JB_Nt_d').asfloat;
jb:=fieldbyname('Qt_jb_d').asfloat;
edit;
//标准合计
fieldbyname('bz_hj').asfloat:=0;
fieldbyname('bz_hj').asfloat:=FieldByName('bz_gw').asfloat+FieldByName('bz_jn').asfloat+FieldByName('zjbzqt').asfloat;
//发放系数
// *(strtofloat(kqday.edit2.text))/100;
jn:=(fieldbyname('bz_jn').asfloat)*(strtofloat(kqday.edit2.text))/100;
gw:=(fieldbyname('Bz_gw').asfloat)*(strtofloat(kqday.edit2.text))/100;
bzqt:=(fieldbyname('zjbzqt').asfloat)*(strtofloat(kqday.edit2.text))/100;
gl:=fieldbyname('jt_kl').asfloat;
kgd:=fieldbyname('zjkg').asfloat;
sjd:=fieldbyname('zjsj').asfloat;
rg:=round(((jn+gw+BZQT))/20.92*100)/100;
edit;
//缺勤天数
ddd:=bj+hc+nt+kgd+sjd;
if ddd<0 then ddd:=0;
//卫贴
case kqday.rg2.ItemIndex of
0:begin
if ddd>=0 then
begin
sy:=fieldbyname('code').asstring;
with datat.Table4 do
begin
first;
if (Locate('code',sy,[])) then
begin
data.query5.fieldbyname('jt_qt').asfloat:=
round((fieldbyname('jt_qt').asfloat)/30*(30-ddd)*100)/100;
if data.query5.fieldbyname('jt_qt').asfloat<0 then
data.query5.fieldbyname('jt_qt').asfloat:=0;
end;
end;
end;
end;
end;
//年探
fieldbyname('jb_nt').asfloat:=0;
if nt<>0 then
fieldbyname('jb_nt').asfloat:=rg*nt
else
fieldbyname('jb_nt').asfloat:=0;
if fieldbyname('jb_nt').asfloat>gw+jn+BZQT then
fieldbyname('jb_nt').asfloat:=gw+jn+BZQT;
//婚产
fieldbyname('jb_hc').asfloat:=0;
if hc<>0 then
fieldbyname('jb_hc').asfloat:=rg*hc
else
fieldbyname('jb_hc').asfloat:=0;
if fieldbyname('jb_hc').asfloat>gw+jn+bzqt then
fieldbyname('jb_hc').asfloat:=gw+jn+bzqt;
//病假
fieldbyname('jb_bj').asfloat:=0;
bjgz:=0;
if (bj>=20.92) then
bj:=20.92;
if (bj>0) then
begin
if (gl<7) then
begin
fieldbyname('Jb_bj').asfloat:=round(((jn+gw+bzqt)*(0.7*bj)/20.92)*100)/100;
// bjgz:=0;
bjgz:=round(((jn+gw+bzqt)*(0.3*bj)/20.92)*100)/100;
end
else
if (gl>=7) and (gl<20) then
begin
fieldbyname('jb_bj').asfloat:=round(((jn+gw+bzqt)*(0.85*bj)/20.92)*100)/100;
// bjgz:=0;
bjgz:=round(((jn+gw+bzqt)*(0.15*bj)/20.92)*100)/100;
end
else
if (gl>=20) and (gl<25) then
begin
fieldbyname('jb_bj').asfloat:=round(((jn+gw+bzqt)*(0.95*bj)/20.92)*100)/100;
// bjgz:=0;
bjgz:=round(((jn+gw+bzqt)*(0.05*bj)/20.92)*100)/100;
end
else
if (gl>=25) then
begin
fieldbyname('jb_bj').asfloat:=round(rg*bj*100)/100;
bjgz:=0;
end
else
begin
fieldbyname('jb_bj').asfloat:=0;
bjgz:=0;
end;
end;
fieldbyname('jb_js_d').asfloat:=0;
fieldbyname('jb_js').asfloat:=0;
if ddd>0 then
begin
fieldbyname('jb_js').asfloat:=round((gw+jn+bzqt
-fieldbyname('jb_jj').asfloat
-fieldbyname('jb_jc').asfloat
-fieldbyname('jb_nt').asfloat
-bjgz
-fieldbyname('jb_gs').asfloat
-FieldByName('jb_bj').asfloat
-fieldbyname('jb_hc').asfloat
-fieldbyname('jb_by').asfloat)*100)/100;
end
else
begin
// fieldbyname('jb_js_d').asfloat:=kqd;
fieldbyname('jb_js').asfloat:=gw+jn+bzqt;
end;
//误餐费
fieldbyname('Fg_wc').asfloat:=0;
fieldbyname('Fg_wc_d').asfloat:=0;
// FieldByName('jb_js_d').asfloat:=0;
if (gw+jn+bzqt)>0 then
begin
if (Gw>0) and((Kqd-ddd)>=15)
then
begin
fieldbyname('Fg_wc').asfloat:=3*(kqd-ddd);
fieldbyname('Fg_wc_d').asfloat:=kqd-ddd;
FieldByName('jb_js_d').asfloat:=FieldByName('fg_wc_d').asfloat;
end
else
begin
fieldbyname('Fg_wc').asfloat:=0;
fieldbyname('Fg_wc_d').asfloat:=kqd-ddd;
if fieldbyname('Fg_wc_d').asfloat<0 then
fieldbyname('Fg_wc_d').asfloat:=0;
FieldByName('jb_js_d').asfloat:=FieldByName('fg_wc_d').asfloat;
end;
end;
//加班
fieldbyname('Qt_Jb').asfloat:=0;
if jb>0 then
// fieldbyname('Qt_Jb').asfloat:=round(((datat.table4.fieldbyname('jn').asfloat+datat.table4.fieldbyname('gw').asfloat)*3*jb/21)*100)/100
fieldbyname('Qt_Jb').asfloat:=round(((fieldbyname('bz_jn').asfloat+fieldbyname('bz_gw').asfloat+fieldbyname('zjbzqt').asfloat)*3*jb/20.92)*100)/100
else
fieldbyname('Qt_Jb').asfloat:=0;
//夜班
fieldbyname('jt_yb').asfloat:=0;
if (fieldbyname('jt_yb_d1').asfloat>0) or (fieldbyname('jb_yb_d2').asfloat>0) then
fieldbyname('jt_yb').asfloat:=0.8*(fieldbyname('jt_yb_d1').asfloat)+1.4*(fieldbyname('jb_yb_d2').asfloat)
else
fieldbyname('jt_yb').asfloat:=0;
if (FieldByName('jb_js').asfloat<0) then
FieldByName('jb_js').asfloat:=0;
//下井
fieldbyname('jt_xj').asfloat:=0;
fieldbyname('jt_xj').asfloat:= round(((fieldbyname('jt_xj_d').asfloat)*2)*100)/100;
//事假 、矿工
sj:=round(rg*(fieldbyname('zjsj').asfloat+fieldbyname('zjkg').asfloat)*100)/100;
if fieldbyname('zjsj').asfloat+fieldbyname('zjkg').asfloat=20.92 then
sj:=gw+jn+bzqt;
if sj>=(gw+jn+bzqt) then
sj:=gw+jn+bzqt;
if sj>0 then
begin
if fieldbyname('jb_js').asfloat>=(sj) then
fieldbyname('jb_js').asfloat:=round((fieldbyname('jb_js').asfloat-sj)*100)/100
else
if fieldbyname('jb_nt').asfloat>=(sj) then
fieldbyname('jb_nt').asfloat:=round((fieldbyname('jb_nt').asfloat-sj)*100)/100
else
if fieldbyname('jb_bj').asfloat>=(sj) then
fieldbyname('jb_bj').asfloat:=round((fieldbyname('jb_bj').asfloat-sj)*100)/100
else
if fieldbyname('jb_hc').asfloat>=(sj) then
fieldbyname('jb_hc').asfloat:=round((fieldbyname('jb_hc').asfloat-sj)*100)/100
else
application.MessageBox(pchar('此人:'+fieldbyname('code').asstring+fieldbyname('name').asstring+'的旷工计算出现错误,请修正!!!'),'提示',+mb_ok+mb_iconinformation);
end;
//当月计时天数=旷工天数
IF fieldbyname('zjsj').asfloat+fieldbyname('zjkg').asfloat=kqd then
fieldbyname('jb_js').asfloat:=0;
//基本扣款
// if fieldbyname('zjjbkk').asfloat<0 then
// application.MessageBox(pchar('此人:'+fieldbyname('code').asstring+fieldbyname('name').asstring+'的基本工资扣款为负,计算出现错误,请修正!!!'),'提示',+mb_ok+mb_iconinformation);
if fieldbyname('zjjbkk').asfloat<>0 then
begin
if fieldbyname('jb_js').asfloat>=fieldbyname('zjjbkk').asfloat then
fieldbyname('jb_js').asfloat:=round((fieldbyname('jb_js').asfloat-fieldbyname('zjjbkk').asfloat)*100)/100
else
if fieldbyname('jb_nt').asfloat>=(fieldbyname('zjjbkk').asfloat) then
fieldbyname('jb_nt').asfloat:=round((fieldbyname('jb_nt').asfloat-fieldbyname('zjjbkk').asfloat)*100)/100
else
if fieldbyname('jb_bj').asfloat>=(fieldbyname('zjjbkk').asfloat) then
fieldbyname('jb_bj').asfloat:=round((fieldbyname('jb_bj').asfloat-fieldbyname('zjjbkk').asfloat)*100)/100
else
if fieldbyname('jb_hc').asfloat>=(fieldbyname('zjjbkk').asfloat) then
fieldbyname('jb_hc').asfloat:=round((fieldbyname('jb_hc').asfloat-fieldbyname('zjjbkk').asfloat)*100)/100
else
application.MessageBox(pchar('此人:'+fieldbyname('code').asstring+fieldbyname('name').asstring+'的基本工资扣款〉此人的基本工资,请修正!!!'),'提示',+mb_ok+mb_iconinformation);
end;
//天数增多
{1} if (fieldbyname('zjsj').asfloat+fieldbyname('zjkg').asfloat)>=32 then
application.MessageBox(pchar('此人:'+fieldbyname('code').asstring+fieldbyname('name').asstring+'的事假加旷工天数〉31,请修正!!!'),'提示',+mb_ok+mb_iconinformation);
{2}
// if (fieldbyname('jb_hc_d').asfloat+fieldbyname('jb_nt_d').asfloat+fieldbyname('jb_bj_d').asfloat)>=22 then
// application.MessageBox(pchar('此人:'+fieldbyname('code').asstring+fieldbyname('name').asstring+'的婚产假+年探假+病假天数〉21,请修正!!!'),'提示',+mb_ok+mb_iconinformation);
//超发部分
cf:=fieldbyname('jb_nt').asfloat+fieldbyname('jb_bj').asfloat
+fieldbyname('jb_hc').asfloat+fieldbyname('jb_by').asfloat-gw-jn;
if cf>0 then
begin
if fieldbyname('jb_js').asfloat>=cf then
fieldbyname('jb_js').asfloat:=round((fieldbyname('jb_js').asfloat-cf)*100)/100
else
if fieldbyname('jb_nt').asfloat>=cf then
fieldbyname('jb_nt').asfloat:=round((fieldbyname('jb_nt').asfloat-cf)*100)/100
else
if fieldbyname('jb_bj').asfloat>=cf then
fieldbyname('jb_bj').asfloat:=round((fieldbyname('jb_bj').asfloat-cf)*100)/100
else
if fieldbyname('jb_hc').asfloat>cf then
fieldbyname('jb_hc').asfloat:=round((fieldbyname('jb_hc').asfloat-cf)*100)/100
else
application.MessageBox(pchar('此人:'+fieldbyname('code').asstring+fieldbyname('name').asstring+'超发扣款计算出现错误,请修正!!!'),'提示',+mb_ok+mb_iconinformation);
end;
//误餐费+加班
fieldbyname('Fg_wc').asfloat:=0;
fieldbyname('Fg_wc_d').asfloat:=0;
// FieldByName('jb_js_d').asfloat:=0;
if (gw+jn+bzqt)>0 then
begin
if (Gw>0) and((Kqd-ddd+fieldbyname('qt_jb_d').asfloat)>=15)
then
begin
fieldbyname('Fg_wc').asfloat:=3*(kqd-ddd+fieldbyname('qt_jb_d').asfloat);
fieldbyname('Fg_wc_d').asfloat:=kqd-ddd+fieldbyname('qt_jb_d').asfloat;
FieldByName('jb_js_d').asfloat:=FieldByName('fg_wc_d').asfloat-fieldbyname('qt_jb_d').asfloat;
end
else
begin
fieldbyname('Fg_wc').asfloat:=0;
fieldbyname('Fg_wc_d').asfloat:=kqd-ddd+fieldbyname('qt_jb_d').asfloat;
if fieldbyname('Fg_wc_d').asfloat<0 then
fieldbyname('Fg_wc_d').asfloat:=0;
FieldByName('jb_js_d').asfloat:=FieldByName('fg_wc_d').asfloat-fieldbyname('qt_jb_d').asfloat;
end;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -