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

📄 gssr.pas

📁 制造企业工时定额管理之录入
💻 PAS
📖 第 1 页 / 共 4 页
字号:
  with dm.Qytemp3 do
  begin
    Close;
    CommandText:='SELECT * FROM workerInfo where zgID=:zgID';
    Parameters.ParamByName('zgID').Value:=Trim(gs_zgID.Text);
    Open;
  end;
  gs_gzID.Text:=dm.Qytemp3.FieldByName('gzID').AsString;
  gs_Name.Text:=dm.Qytemp3.FieldByName('zgName').AsString;
  gs_gz.Text :=dm.Qytemp3.FieldByName('gz').AsString;
end;

procedure TgssrForm.BitBtn1Click(Sender: TObject);
begin
  gssrForm.PageControl1.ActivePageIndex :=0;
  NEW;
  gssrForm.Caption:='月工时数据---录入';
  ActionCD:='N';//New
end;

procedure TgssrForm.BitBtn2Click(Sender: TObject);
begin
  ENA;
  gssrForm.Caption:='月工时数据---修改';
  gssrForm.PageControl1.ActivePageIndex:=0;
  ActionCD:='M';//Modify
end;

procedure TgssrForm.BitBtn3Click(Sender: TObject);
begin
 if RadioGroup1.ItemIndex=0 then
 begin
   if(CanSave)then //justify whether can save or not?
     begin
      Posting; //commit to then backend;
      DIS; //Disable all controls
      MyInformation('保存成功!');
      dm.GrMonth.Close;
      dm.GrMonth.Open;
     end
   else
     begin
      ENA;
      Myerror('所填栏目不完全,无法保存');
     end;
 end
 else
 if RadioGroup1.ItemIndex =1 then
 begin
   if(CanSaveD)then //justify whether can save or not?
     begin
      PostingD; //commit to then backend;
      DIS; //Disable all controls
      MyInformation('保存成功!');
      dm.dwMonth.Close;
      dm.dwMonth.Open;
     end
   else
     begin
      ENA;
      Myerror('所填栏目不完全,无法保存');
     end;
 end;

end;

procedure TgssrForm.Posting;
begin
  if ActionCD='N' then
  begin
    with dm.Querytemp do
    begin
      close;
      prepared:=false;
      SQL.Clear;
      SQL.Add('Insert into GrMonth (dwID,zgID,GsTime,cpYd,cpHg,cpHy,cpLf,cpSd,cpXj,');
      SQL.Add('elCp,elCpSd,elfCp,elfCpSd,bcCp,bcCpSd,bcfCp,bcfCpSd,ssQq,ssTg,ssGf,ssXj,');
      SQL.Add('scRw,scRwSd,yb,tx,jb,zwc,zsd,ts,tsSd)');
      SQL.Add(' Values(:dwID,:zgID,:GsTime,:cpYd,:cpHg,:cpHy,:cpLf,:cpSd,:cpXj,');
      SQL.Add(':elCp,:elCpSd,:elfCp,:elfCpSd,:bcCp,:bcCpSd,:bcfCp,:bcfCpSd,:ssQq,:ssTg,:ssGf,:ssXj,');
      SQL.Add(':scRw,:scRwSd,:yb,:tx,:jb,:zwc,:zsd,:ts,:tsSd)');
      //myerror(sql.Text);

      Parameters.Items[0].Value:=trim(ComboBox1.Text);
      Parameters.Items[1].Value:=trim(gs_zgID.Text);
      Parameters.Items[2].Value:=trim(gs_GsTime.Text);
      Parameters.Items[3].Value:=strtofloat(gs_cpYd.Text);
      Parameters.Items[4].Value:=strtofloat(gs_cpHg.Text);
      Parameters.Items[5].Value:=strtofloat(gs_cpHy.Text);
      Parameters.Items[6].Value:=strtofloat(gs_cpLf.Text);
      Parameters.Items[7].Value:=strtofloat(gs_cpSd.Text);
      Parameters.Items[8].Value:=strtofloat(gs_cpXj.Text);
      Parameters.Items[9].Value:=strtofloat(gs_elCp.Text);
      Parameters.Items[10].Value:=strtofloat(gs_elCpSd.Text);
      Parameters.Items[11].Value:=strtofloat(gs_elfCp.Text);
      Parameters.Items[12].Value:=strtofloat(gs_elfCpSd.Text);
      Parameters.Items[13].Value:=strtofloat(gs_bcCp.Text);
      Parameters.Items[14].Value:=strtofloat(gs_bcCpSd.Text);
      Parameters.Items[15].Value:=strtofloat(gs_bcfCp.Text);
      Parameters.Items[16].Value:=strtofloat(gs_bcfCpSd.Text);
      Parameters.Items[17].Value:=strtofloat(gs_ssQq.Text);
      Parameters.Items[18].Value:=strtofloat(gs_ssTg.Text);
      Parameters.Items[19].Value:=strtofloat(gs_ssGf.Text);
      Parameters.Items[20].Value:=strtofloat(gs_ssXj.Text);
      Parameters.Items[21].Value:=strtofloat(gs_scRw.Text);
      Parameters.Items[22].Value:=strtofloat(gs_scRwSd.Text);
      Parameters.Items[23].Value:=strtofloat(gs_yb.Text);
      Parameters.Items[24].Value:=strtofloat(gs_tx.Text);
      Parameters.Items[25].Value:=strtofloat(gs_jb.Text);
      Parameters.Items[26].Value:=strtofloat(gs_zwc.Text);
      Parameters.Items[27].Value:=strtofloat(gs_zsd.Text);
      Parameters.Items[28].Value:=strtofloat(gs_ts.Text);
      Parameters.Items[29].Value:=strtofloat(gs_tsSd.Text);

      prepared:=true;
      execSQL;
    end;
  end
  else if ActionCD='M' then
  begin
    with dm.Querytemp do
    begin
      close;
      prepared:=false;
      SQL.Clear;
      SQL.Add('update GrMonth set cpYd=:cpYd,cpHg=:cpHg,cpHy=:cpHy,cpLf=:cpLf,');
      SQL.Add('cpSd=:cpSd,cpXj=:cpXj,elCp=:elCp,elCpSd=:elCpSd,elfCp=:elfCp,elfCpSd=:elfCpSd,');
      SQL.Add('bcCp=:bcCp,bcCpSd=:bcCpSd,bcfCp=:bcfCp,bcfCpSd=:bcfCpSd,ssQq=:ssQq,ssTg=:ssTg,');
      SQL.Add('ssGf=:ssGf,ssXj=:ssXj,scRw=:scRw,scRwSd=:scRwSd,yb=:yb,tx=:tx,jb=:jb,zwc=:zwc,');
      SQL.Add('zsd=:zsd,ts=:ts,tsSd=:tsSd where zgID=:zgID and GsTime=:GsTime');

      Parameters.Items[0].Value:=strtofloat(gs_cpYd.Text);
      Parameters.Items[1].Value:=strtofloat(gs_cpHg.Text);
      Parameters.Items[2].Value:=strtofloat(gs_cpHy.Text);
      Parameters.Items[3].Value:=strtofloat(gs_cpLf.Text);
      Parameters.Items[4].Value:=strtofloat(gs_cpSd.Text);
      Parameters.Items[5].Value:=strtofloat(gs_cpXj.Text);
      Parameters.Items[6].Value:=strtofloat(gs_elCp.Text);
      Parameters.Items[7].Value:=strtofloat(gs_elCpSd.Text);
      Parameters.Items[8].Value:=strtofloat(gs_elfCp.Text);
      Parameters.Items[9].Value:=strtofloat(gs_elfCpSd.Text);
      Parameters.Items[10].Value:=strtofloat(gs_bcCp.Text);
      Parameters.Items[11].Value:=strtofloat(gs_bcCpSd.Text);
      Parameters.Items[12].Value:=strtofloat(gs_bcfCp.Text);
      Parameters.Items[13].Value:=strtofloat(gs_bcfCpSd.Text);
      Parameters.Items[14].Value:=strtofloat(gs_ssQq.Text);
      Parameters.Items[15].Value:=strtofloat(gs_ssTg.Text);
      Parameters.Items[16].Value:=strtofloat(gs_ssGf.Text);
      Parameters.Items[17].Value:=strtofloat(gs_ssXj.Text);
      Parameters.Items[18].Value:=strtofloat(gs_scRw.Text);
      Parameters.Items[19].Value:=strtofloat(gs_scRwSd.Text);
      Parameters.Items[20].Value:=strtofloat(gs_yb.Text);
      Parameters.Items[21].Value:=strtofloat(gs_tx.Text);
      Parameters.Items[22].Value:=strtofloat(gs_jb.Text);
      Parameters.Items[23].Value:=strtofloat(gs_zwc.Text);
      Parameters.Items[24].Value:=strtofloat(gs_zsd.Text);
      Parameters.Items[25].Value:=strtofloat(gs_ts.Text);
      Parameters.Items[26].Value:=strtofloat(gs_tsSd.Text);
      Parameters.Items[27].Value:=trim(gs_zgID.Text);
      Parameters.Items[28].Value:=trim(gs_GsTime.Text);

      Prepared:=true;
      ExecSQL;
    end;
  end;
end;

procedure TgssrForm.PostingD;
begin
  if ActionCD='N' then
  begin
    with dm.Querytemp do
    begin
      close;
      prepared:=false;
      SQL.Clear;
      SQL.Add('Insert into DWMonthGs (dwID,BanzuName,GsTime,cpYd,cpHg,cpHy,cpLf,cpSd,cpXj,');
      SQL.Add('elCp,elCpSd,elfCp,elfCpSd,bcCp,bcCpSd,bcfCp,bcfCpSd,ssQq,ssTg,ssGf,ssXj,');
      SQL.Add('scRw,scRwSd,yb,tx,jb,zwc,zsd,ts,tsSd)');
      SQL.Add(' Values(:dwID,:BanzuName,:GsTime,:cpYd,:cpHg,:cpHy,:cpLf,:cpSd,:cpXj,');
      SQL.Add(':elCp,:elCpSd,:elfCp,:elfCpSd,:bcCp,:bcCpSd,:bcfCp,:bcfCpSd,:ssQq,:ssTg,:ssGf,:ssXj,');
      SQL.Add(':scRw,:scRwSd,:yb,:tx,:jb,:zwc,:zsd,:ts,:tsSd)');

      Parameters.Items[0].Value:=trim(ComboBox1.Text);
      Parameters.Items[1].Value:=trim(ComboBox2.Text);
      Parameters.Items[2].Value:=trim(gs_GsTime.Text);
      Parameters.Items[3].Value:=strtofloat(gs_cpYd.Text);
      Parameters.Items[4].Value:=strtofloat(gs_cpHg.Text);
      Parameters.Items[5].Value:=strtofloat(gs_cpHy.Text);
      Parameters.Items[6].Value:=strtofloat(gs_cpLf.Text);
      Parameters.Items[7].Value:=strtofloat(gs_cpSd.Text);
      Parameters.Items[8].Value:=strtofloat(gs_cpXj.Text);
      Parameters.Items[9].Value:=strtofloat(gs_elCp.Text);
      Parameters.Items[10].Value:=strtofloat(gs_elCpSd.Text);
      Parameters.Items[11].Value:=strtofloat(gs_elfCp.Text);
      Parameters.Items[12].Value:=strtofloat(gs_elfCpSd.Text);
      Parameters.Items[13].Value:=strtofloat(gs_bcCp.Text);
      Parameters.Items[14].Value:=strtofloat(gs_bcCpSd.Text);
      Parameters.Items[15].Value:=strtofloat(gs_bcfCp.Text);
      Parameters.Items[16].Value:=strtofloat(gs_bcfCpSd.Text);
      Parameters.Items[17].Value:=strtofloat(gs_ssQq.Text);
      Parameters.Items[18].Value:=strtofloat(gs_ssTg.Text);
      Parameters.Items[19].Value:=strtofloat(gs_ssGf.Text);
      Parameters.Items[20].Value:=strtofloat(gs_ssXj.Text);
      Parameters.Items[21].Value:=strtofloat(gs_scRw.Text);
      Parameters.Items[22].Value:=strtofloat(gs_scRwSd.Text);
      Parameters.Items[23].Value:=strtofloat(gs_yb.Text);
      Parameters.Items[24].Value:=strtofloat(gs_tx.Text);
      Parameters.Items[25].Value:=strtofloat(gs_jb.Text);
      Parameters.Items[26].Value:=strtofloat(gs_zwc.Text);
      Parameters.Items[27].Value:=strtofloat(gs_zsd.Text);
      Parameters.Items[28].Value:=strtofloat(gs_ts.Text);
      Parameters.Items[29].Value:=strtofloat(gs_tsSd.Text);

      prepared:=true;
      ExecSQL;
    end;
  end
  else if ActionCD='M' then
  begin
    with dm.Querytemp do
    begin
      close;
      prepared:=false;
      SQL.Clear;
      SQL.Add('update DWMonthGs set BanzuName=:BanzuName,cpYd=:cpYd,cpHg=:cpHg,cpHy=:cpHy,cpLf=:cpLf,');
      SQL.Add('cpSd=:cpSd,cpXj=:cpXj,elCp=:elCp,elCpSd=:elCpSd,elfCp=:elfCp,elfCpSd=:elfCpSd,');
      SQL.Add('bcCp=:bcCp,bcCpSd=:bcCpSd,bcfCp=:bcfCp,bcfCpSd=:bcfCpSd,ssQq=:ssQq,ssTg=:ssTg,');
      SQL.Add('ssGf=:ssGf,ssXj=:ssXj,scRw=:scRw,scRwSd=:scRwSd,yb=:yb,tx=:tx,jb=:jb,zwc=:zwc,');
      SQL.Add('zsd=:zsd,ts=:ts,tsSd=:tsSd where dwID=:dwID and GsTime=:GsTime');

      Parameters.Items[0].Value:=trim(ComboBox2.Text);
      Parameters.Items[1].Value:=strtofloat(gs_cpYd.Text);
      Parameters.Items[2].Value:=strtofloat(gs_cpHg.Text);
      Parameters.Items[3].Value:=strtofloat(gs_cpHy.Text);
      Parameters.Items[4].Value:=strtofloat(gs_cpLf.Text);
      Parameters.Items[5].Value:=strtofloat(gs_cpSd.Text);
      Parameters.Items[6].Value:=strtofloat(gs_cpXj.Text);
      Parameters.Items[7].Value:=strtofloat(gs_elCp.Text);
      Parameters.Items[8].Value:=strtofloat(gs_elCpSd.Text);
      Parameters.Items[9].Value:=strtofloat(gs_elfCp.Text);
      Parameters.Items[10].Value:=strtofloat(gs_elfCpSd.Text);
      Parameters.Items[11].Value:=strtofloat(gs_bcCp.Text);
      Parameters.Items[12].Value:=strtofloat(gs_bcCpSd.Text);
      Parameters.Items[13].Value:=strtofloat(gs_bcfCp.Text);
      Parameters.Items[14].Value:=strtofloat(gs_bcfCpSd.Text);
      Parameters.Items[15].Value:=strtofloat(gs_ssQq.Text);
      Parameters.Items[16].Value:=strtofloat(gs_ssTg.Text);
      Parameters.Items[17].Value:=strtofloat(gs_ssGf.Text);
      Parameters.Items[18].Value:=strtofloat(gs_ssXj.Text);
      Parameters.Items[19].Value:=strtofloat(gs_scRw.Text);
      Parameters.Items[20].Value:=strtofloat(gs_scRwSd.Text);
      Parameters.Items[21].Value:=strtofloat(gs_yb.Text);
      Parameters.Items[22].Value:=strtofloat(gs_tx.Text);
      Parameters.Items[23].Value:=strtofloat(gs_jb.Text);
      Parameters.Items[24].Value:=strtofloat(gs_zwc.Text);
      Parameters.Items[25].Value:=strtofloat(gs_zsd.Text);
      Parameters.Items[26].Value:=strtofloat(gs_ts.Text);
      Parameters.Items[27].Value:=strtofloat(gs_tsSd.Text);
      Parameters.Items[28].Value:=trim(ComboBox1.Text);
      Parameters.Items[29].Value:=trim(gs_GsTime.Text);

      Prepared:=true;
      ExecSQL;
    end;
  end;
end;

procedure TgssrForm.gs_cpYdExit(Sender: TObject);
begin
  if gs_cpYd.Text=''then
  begin
     gs_cpYd.Text:='0';
  end
  else
  begin
    if not IsNumeric(gs_cpYd.Text) then
    begin
      Myerror('数据格式不正确,应为数值型。');
      gs_cpYd.SetFocus;
      gs_cpYd.SelectAll;
    end
    else
    begin
      if(frac(strtofloat(gs_cpYd.Text))*100)>=60 then
      begin
        Myerror('工时数据的小数部分代表分钟,必须小于60!');
        gs_cpYd.SetFocus;
        gs_cpYd.SelectAll;
      end;
      //P1:=strtofloat(gs_cpYd.Text);
    end;
  end;
   Jisuan1;
end;

procedure TgssrForm.gs_cpHgExit(Sender: TObject);
begin
  if gs_cpHg.Text=''then
  begin
     gs_cpHg.Text:='0';
  end;
  if not IsNumeric(gs_cpHg.Text) then
  begin
    Myerror('数据格式不正确,应为数值型。');
    gs_cpHg.SetFocus;
  end
  else
  begin
  if(frac(strtofloat(gs_cpHg.Text))*100)>=60 then
    begin
      Myerror('工时数据的小数部分代表分钟,必须小于60!');
      gs_cpHg.SetFocus;
    end;
  end;
  Jisuan1;
end;

procedure TgssrForm.gs_cpHyExit(Sender: TObject);
begin
  if gs_cpHy.Text=''then
  begin
    gs_cpHy.Text:='0';
  end;

  if not IsNumeric(gs_cpHy.Text) then
  begin
    Myerror('数据格式不正确,应为数值型。');
    gs_cpHy.SetFocus;
  end
  else
  begin
  if(frac(strtofloat(gs_cpHy.Text))*100)>=60 then
    begin
      Myerror('工时数据的小数部分代表分钟,必须小于60!');
      gs_cpHy.SetFocus;
    end;
    //P3:=strtofloat(gs_cpHy.Text);
  end;
  Jisuan1;
end;

procedure TgssrForm.gs_cpLfExit(Sender: TObject);
begin
  if gs_cpLf.Text=''then
  begin
     gs_cpLf.Text:='0';
  end;
  if not IsNumeric(gs_cpLf.Text) then
  begin
    Myerror('数据格式不正确,应为数值型。');
    gs_cpLf.SetFocus;
  end
  else
  begin
  if (frac(strtofloat(gs_cpLf.Text))*100)>=60 then
    begin
      Myerror('工时数据的小数部分代表分钟,必须小于60!');
      gs_cpLf.SetFocus;
    end;
    //P4:=strtofloat(gs_cpLf.Text);
  end;
  Jisuan1;
end;

procedure TgssrForm.Jisuan1;
var
  gs_cpXjInt,gs_cpXjFrac,remain:double;
begin
  if (gs_cpYd.Text<>'')and(gs_cpHg.Text<>'') and (gs_cpHy.Text<>'')and (gs_cpLf.Text<>'') then
    begin
      gs_cpXjInt:=Int(strtofloat(gs_cpYd.Text))+Int(strtofloat(gs_cpHg.Text))+
            Int(strtofloat(gs_cpHy.Text))+Int(strtofloat(gs_cpLf.Text));
      gs_cpXjFrac:=Frac(strtofloat(gs_cpYd.Text))*100+Frac(strtofloat(gs_cpHg.Text))*100+
            Frac(strtofloat(gs_cpHy.Text))*100+Frac(strtofloat(gs_cpLf.Text))*100;
      remain:=Int(gs_cpXjFrac/ 60.0);
      gs_cpXjFrac:=(gs_cpXjFrac-remain*60.0)/100.0;
      gs_cpXj.text:=floattostr(gs_cpXjInt+gs_cpXjFrac+remain);
    end;
end;

procedure TgssrForm.gs_cpSdExit(Sender: TObject);
begin
  if gs_cpSd.Text=''then
  begin
     gs_cpSd.Text:='0';
  end;
  if not IsNumeric(gs_cpSd.Text) then
  begin
    Myerror('数据格式不正确,应为数值型。');
    gs_cpSd.SetFocus;
    gs_cpSd.SelectAll;
  end
  else
  begin
  if(frac(strtofloat(gs_cpSd.Text))*100)>=60 then
    begin
      Myerror('工时数据的小数部分代表分钟,必须小于60!');
      gs_cpSd.SetFocus;
      gs_cpSd.SelectAll;
    end;
  end;
  TsSdJisuan;
end;

procedure TgssrForm.Jisuan2;
var
  gs_ssXjInt,gs_ssXjFrac,remain:double;
begin
  if (gs_ssQq.Text<>'')and (gs_ssTg.Text<>'') and (gs_ssGf.Text<>'') then
    begin
      gs_ssXjInt:=Int(strtofloat(gs_ssQq.Text))+Int(strtofloat(gs_ssTg.Text))+
            Int(strtofloat(gs_ssGf.Text));
      gs_ssXjFrac:=Frac(strtofloat(gs_ssQq.Text))*100+Frac(strtofloat(gs_ssTg.Text))*100+
            Frac(strtofloat(gs_ssGf.Text))*100;
      remain:=Int(gs_ssXjFrac/ 60.0);
      gs_ssXjFrac:=(gs_ssXjFrac-remain*60.0)/100.0;
      gs_ssXj.text:=floattostr(gs_ssXjInt+gs_ssXjFrac+remain);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -