⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainunit.pas

📁 龙矿集团工资管理系统2004源码
💻 PAS
📖 第 1 页 / 共 4 页
字号:

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 + -