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

📄 employee_backup.pas

📁 服装厂管理系统源程序压缩包, 请耐心阅读提供的文件包含的内容
💻 PAS
📖 第 1 页 / 共 2 页
字号:

  //3.6处理表personshouzhi
  with ADOQtmp do
  begin
      close;sql.clear;
      sql.Add('update personshouzhi set empid=:v_empid where empid=:v_oldempid');
      parameters.ParamValues['v_empid']:=maxid;
      parameters.ParamValues['v_oldempid']:=ADOQ_search.FieldValues['empid'];
      try
        execsql;
      except
        if i>1 then tmpstr:=tmpstr+#13+#13+'     截止到编号为:['+ListEditor1.Cells[0,i-1]+'] 人员离职成功,剩下其它失败3.6!'
        else tmpstr:='员工离职失败,请重试--3.6!';
        MsgErr(handle,tmpstr);
        if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
        inc(emp_num_e);
        MsgErr(handle,tmpstr);
        emp_BLflag:=false; break; exit;
      end;
  end;

  //3.7处理表emp_pay
  with ADOQtmp do
  begin
      close;sql.clear;
      sql.Add('update emp_pay set empid=:v_empid where empid=:v_oldempid');
      parameters.ParamValues['v_empid']:=maxid;
      parameters.ParamValues['v_oldempid']:=ADOQ_search.FieldValues['empid'];
      try
        execsql;
      except
        if i>1 then tmpstr:=tmpstr+#13+#13+'     截止到编号为:['+ListEditor1.Cells[0,i-1]+'] 人员离职成功,剩下其它失败3.7!'
        else tmpstr:='员工离职失败,请重试--3.7!';
        MsgErr(handle,tmpstr);
        inc(emp_num_e);
        if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
        emp_BLflag:=false; break; exit;
      end;
  end;
  
  //3.8处理表Emp_Payout
  with ADOQtmp do
  begin
      close;sql.clear;
      sql.Add('update Emp_Payout set empid=:v_empid where empid=:v_oldempid');
      parameters.ParamValues['v_empid']:=maxid;
      parameters.ParamValues['v_oldempid']:=ADOQ_search.FieldValues['empid'];
      try
        execsql;
      except
        if i>1 then tmpstr:=tmpstr+#13+#13+'     截止到编号为:['+ListEditor1.Cells[0,i-1]+'] 人员离职成功,剩下其它失败3.8!'
        else tmpstr:='员工离职失败,请重试--3.8!';
        MsgErr(handle,tmpstr);
        if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
        inc(emp_num_e);
        emp_BLflag:=false; break; exit;
      end;
  end;

//  empid:=inttostr(ADOQ_search.FieldValues['empid']);
//  empname:=ADOQ_search.FieldValues['empname'];
  //3.9人员离职对应表新增一条记录
  with ADOQtmp do
  begin
      close;  sql.clear;
      sql.Add('insert into employee_Backup (id, zz_empid, lz_empid, empname, sex, depname, dutyname,tmp_id)');
      sql.add('values(:id, :zz_empid, :lz_empid, :empname, :sex, :depname, :dutyname, :tmp_id)');
      parameters.ParamValues['id']:=tmp_empid;
      parameters.ParamValues['zz_empid']:=empid_int;
      parameters.ParamValues['lz_empid']:=maxid;
      parameters.ParamValues['empname']:=ADOQ_search.FieldValues['empname'];
      parameters.ParamValues['sex']:=ADOQ_search.FieldValues['sex'];
      parameters.ParamValues['depname']:=ADOQ_search.FieldValues['depname'];
      parameters.ParamValues['dutyname']:=ADOQ_search.FieldValues['dutyname'];
      parameters.ParamValues['tmp_id']:=tmp_id;
      try
        execsql;
      except
        if i>1 then tmpstr:=tmpstr+#13+#13+'     截止到编号为:['+ListEditor1.Cells[0,i-1]+'] 人员离职成功,剩下其它失败3.9!'
        else tmpstr:='员工离职失败,请重试--3.9!';
        MsgErr(handle,tmpstr);
        inc(emp_num_e);
        if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
        emp_BLflag:=false; break; exit;
      end;
  end;

  //4.删除原有编码记录
  with ADOQtmp do
  begin
    close; sql.Clear;
    sql.Add('delete from employee where empid=:V_empid');
    parameters.ParamValues['v_empid']:=empid_int;
    try
        execsql;
    except
        if i>1 then tmpstr:=tmpstr+#13+#13+'     截止到编号为:['+ListEditor1.Cells[0,i-1]+'] 人员离职成功,剩下其它失败4.0!'
        else tmpstr:='员工离职失败,请重试--4.0!';
        MsgErr(handle,tmpstr);
        inc(emp_num_e);
        if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
        emp_BLflag:=false; break; exit;
    end;
  end;
  //提交数据库
  if not emp_BLflag then
  begin
    if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
    MsgErr(handle,'人员离职处理失败--All!');
    emp_BLflag:=false; break; exit;
  end;
  if emp_BLflag then
  if datamod.ADOCon.InTransaction then
  begin
    try
      datamod.ADOCon.CommitTrans;
    except
      MsgErr(handle,'人员离职处理失败--All!');
      if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
      emp_BLflag:=false; break; exit;
    end;
  end;
  end;  //利用循环人员离职.End

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
  if emp_num_e>0 then
  begin
    if emp_num_s=emp_num_e then
    begin
      tmpstr:='当前所选择的:['+inttostr(emp_num_s)+']位员工的 [';
      tmpstr:=tmpstr+'离职均失效!';
    end
    else
    begin
      tmpstr:='当前所选择的:['+inttostr(emp_num_s)+']位员工中, 其中有 ['+inttostr(emp_num_s-emp_num_e)+'] 位离职成功';
      tmpstr:=tmpstr+#13+#13+'     其他 ['+inttostr(emp_num_e)+'] 位人员离职均失败!';
    end;
  end
  else
  begin
    tmpstr:='当前所选择的:['+inttostr(emp_num_s)+']位员工';
    tmpstr:=tmpstr+'全部离职成功!';
  end;
  msgok(handle,tmpstr);
  ProgressBar1.Position:=0;
  Label_Display.Visible:=false;
  application.ProcessMessages;
  if not emp_BLflag then exit;
  ListEditor1.Strings.Clear;
end;

procedure TForm_employee_Backup.FormShow(Sender: TObject);
begin
  //添加部门信息
  with ADOQtmp do
  begin
    close; sql.Clear;
    sql.Add('select depname from department');
    open;
    combobox_dep.Items.Clear;
    first;
    while not eof do
    begin
      combobox_dep.Items.Add(fieldvalues['depname']);
      next;
    end;
  end;
  //添加职务信息
  with adoqtmp do
  begin
    close; sql.Clear;
    sql.Add('select dutyname from duty');
    open;
    combobox_duty.Items.Clear;
    first;
    while not eof do
    begin
      combobox_duty.Items.Add(fieldvalues['dutyname']);
      next;
    end;
    close;
  end;
end;

//查找对应待发工资的人员
procedure TForm_employee_Backup.SearchBtnClick(Sender: TObject);
var
 empid:integer;
begin
  with ADOQ_employee do
  begin
    close; sql.Clear;
    sql.Add('select a.id, a.empid,a.empname,a.sex,b.depname,c.dutyname from employee a,department b, duty c');
    sql.Add('where a.depid=b.depid and a.dutyid=c.dutyid and a.state=1 ');
    case RadioGroup1.ItemIndex of
    0:
      begin
        sql.add('and b.depname=:depname');
        parameters.ParamValues['depname']:=trim(combobox_dep.Text);
      end;
    1:
      begin
        sql.Add('and c.dutyname=:dutyname');
        parameters.ParamValues['dutyname']:=trim(combobox_duty.Text);
      end;
    2:
      if trim(edit1.Text)<>'' then
      begin
        try
          empid:=strtoint(trim(edit1.Text));
        except
          Msgerr(handle,'请输入正确的人员编码!');
          exit;
        end;
        sql.Add('and a.empid=:empid');
        parameters.ParamValues['empid']:=empid;
      end;
    3:
      if trim(edit1.Text)<>'' then
      begin
        sql.Add('and a.empname=:empname');
        parameters.ParamValues['empname']:=trim(edit1.Text);
      end;
    end;
    try
      execsql; open;
    except
      MsgErr(handle,'查找数据出错,请重试!');
    end;
  end;
end;

procedure TForm_employee_Backup.BitBtn1Click(Sender: TObject);
begin
  with ADOQ_employee do
  begin
    close; sql.Clear;
    sql.Add('select a.id, a.empid,a.empname,a.sex,b.depname,c.dutyname from employee a,department b, duty c');
    sql.Add('where a.state=1 and a.depid=b.depid and a.dutyid=c.dutyid');
    open;
  end;
end;

procedure TForm_employee_Backup.RadioGroup1Click(Sender: TObject);
begin
  case RadioGroup1.ItemIndex of
  0:
    begin
      combobox_dep.Visible:=true;
      combobox_duty.Visible:=false;
      edit1.Visible:=false;
    end;
  1:
    begin
      combobox_duty.Visible:=true;
      combobox_dep.Visible:=false;
      edit1.visible:=false;
    end;
  2,3:
    begin
      combobox_dep.Visible:=false;
      combobox_duty.Visible:=false;
      edit1.Visible:=true;
    end;
  end;
end;

procedure TForm_employee_Backup.ListEditor1StringsChange(Sender: TObject);
begin
  emp_num.Caption:='待离职的人员数是:'+inttostr(ListEditor1.Strings.Count)+' 个';
  SaveBtn.Enabled:=ListEditor1.Strings.Count>0;
end;

//人员月薪工资发放查询开始
procedure TForm_employee_Backup.PageControl1Change(Sender: TObject);
var tmpdatetime:Tdatetime;
begin
  if PageControl1.ActivePageIndex=0 then
  begin
    ADOQ_Emp_Backup.Close;
    ADOQ_employee.Close;
    exit;
  end;
  if PageControl1.ActivePageIndex=1 then
  begin
    GetHostDateTime(datamod.ADOCon,tmpdatetime);
    edate.DateTime:=tmpdatetime;
    if ComboBox_ID.Items.Count=0 then
    //添加离职人员编码
    with ADOQ_ADDEmp_LZ do
    begin
      close;sql.clear;
      sql.add('select empid from employee');
      sql.Add('where state=0');
      try
        execsql; open;
      except
        MsgErr(handle,'添加离职人员信息失败!'); exit;
      end;
      if recordcount =0 then
      begin
        MsgErr(handle,'无离职人员信息!');
        exit;
      end;
      first;
      ComboBox_ID.Items.Clear;
      while not eof do
      begin
        ComboBox_ID.Items.Add(fieldvalues['empid']);
        next;
      end;
    end; //添加离职人员编码.End
  end;//PageControl1.ActivePageIndex=1.end
end;

procedure TForm_employee_Backup.BitBtn_locateClick(Sender: TObject);
var
lzempid, empname, ZZempid:string;
begin
  // 检测时间的合法性
  if sdate.datetime>edate.DateTime then
  begin
    msgerr(handle,'结束时间不能小于起始时间!');
    edate.SetFocus;
    abort; exit;
  end;
  lzempid:=trim(combobox_id.Text);
  empname:=trim(edtname.Text);
  ZZempid:=trim(Edt_ZZempid.Text);
  with ADOQ_Emp_Backup do
  begin
    sql.Strings[1]:='and (LZ_date between :v_sd and :v_ed)';
    if (lzempid<>'') and (empname='') then
    sql.Strings[1]:=sql.Strings[1] + 'and (a.lz_empid=:V_lz_empid)';
    if (lzempid='') and (empname<>'') then
    sql.Strings[1]:=sql.Strings[1] + 'and (a.empname=:V_empname)';
    if (lzempid<>'') and (empname<>'') then
    sql.Strings[1]:=sql.Strings[1] + 'and (a.lz_empid=:V_lz_empid) and (a.empname=:V_empname)';
    if zzempid<>'' then
    begin
      sql.Strings[2]:='and a.zz_empid=:V_zzempid';
      parameters.ParamValues['V_zzempid']:=zzempid;
    end;
    if lzempid<>'' then
    parameters.ParamValues['V_lz_empid']:=lzempid;
    if empname<>'' then
    parameters.Paramvalues['V_empname']:=empname;
    parameters.ParamValues['v_sd']:=strtodatetime(formatdatetime('yyyy-mm-dd',sdate.Date));
    parameters.ParamValues['v_ed']:=strtodatetime(formatdatetime('yyyy-mm-dd',edate.Date));
    open;
    if recordcount=0 then MsgOK(handle,'当前条件下没找到数据!');
    prtbtn.Enabled:=recordcount>0;
    //传递打印参数
    if recordcount>0 then
    begin
      s_date:=formatdatetime('yyyy-mm-dd',sdate.Date);
      e_date:=formatdatetime('yyyy-mm-dd',edate.Date);
    end;
  end;
end;
//人员月薪工资发放查询结束

procedure TForm_employee_Backup.PrtBtnClick(Sender: TObject);
begin
  InitPage(RvProject1,RvSystem1,apppath+'\'+ReportName,apppath+'\'+ReportNdrName,0);
  SelectPage(RvProject1,'Report1',10);
  //传递参数
  AddParameter(RvProject1,'sdate',s_date);
  AddParameter(RvProject1,'edate',e_date);
  AddParameter(RvProject1,'UserName',curAdmin.user_name);
  AddParameter(RvProject1,'companyname',sysconfig.COMPANYANME);
  //显示页
  PageShow(RvProject1);    
end;

end.


⌨️ 快捷键说明

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