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

📄 employee.pas

📁 服装厂管理系统源程序压缩包, 请耐心阅读提供的文件包含的内容
💻 PAS
📖 第 1 页 / 共 3 页
字号:
      parameters.ParamValues['v_oldempid']:=ADOQ_employee.FieldValues['empid'];
      try
        execsql;
      except
        if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
        MsgErr(handle,'人员离职处理失败3.3!');
        emp_BLflag:=false; exit;
      end;
  end;

  //3.4处理表ck_material
  with ADOQtmp_emp do
  begin
      close;sql.clear;
      sql.Add('update ck_material set empid=:v_empid where empid=:v_oldempid');
      parameters.ParamValues['v_empid']:=maxid;
      parameters.ParamValues['v_oldempid']:=ADOQ_employee.FieldValues['empid'];
      try
        execsql;
      except
        if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
        MsgErr(handle,'人员离职处理失败3.4!');
        emp_BLflag:=false; exit;
      end;
  end;

  //3.5处理表earn_abs
  with ADOQtmp_emp do
  begin
      close;sql.clear;
      sql.Add('update earn_abs set empid=:v_empid where empid=:v_oldempid');
      parameters.ParamValues['v_empid']:=maxid;
      parameters.ParamValues['v_oldempid']:=ADOQ_employee.FieldValues['empid'];
      try
        execsql;
      except
        if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
        MsgErr(handle,'人员离职处理失败3.5!');
        emp_BLflag:=false; exit;
      end;
  end;

  //3.6处理表personshouzhi
  with ADOQtmp_emp 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_employee.FieldValues['empid'];
      try
        execsql;
      except
        if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
        MsgErr(handle,'人员离职处理失败3.6!');
        emp_BLflag:=false; exit;
      end;
  end;

  //3.7处理表emp_pay
  with ADOQtmp_emp 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_employee.FieldValues['empid'];
      try
        execsql;
      except
        if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
        MsgErr(handle,'人员离职处理失败3.7!');
        emp_BLflag:=false; exit;
      end;
  end;
  
  //3.8处理表Emp_Payout
  with ADOQtmp_emp 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_employee.FieldValues['empid'];
      try
        execsql;
      except
        if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
        MsgErr(handle,'人员离职处理失败3.8!');
        emp_BLflag:=false; exit;
      end;
  end;

  //3.9人员离职对应表新增一条记录
  with ADOQtmp_emp 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_employee.FieldValues['empname'];
      parameters.ParamValues['sex']:=ADOQ_employee.FieldValues['sex'];
      parameters.ParamValues['depname']:=ADOQ_employee.FieldValues['depname'];
      parameters.ParamValues['dutyname']:=ADOQ_employee.FieldValues['dutyname'];
      parameters.ParamValues['tmp_id']:=tmp_id;
      try
        execsql;
      except
        if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
        MsgErr(handle,'人员离职处理失败3.9!');
        emp_BLflag:=false; exit;
      end;
  end;

  empid:=inttostr(ADOQ_employee.FieldValues['empid']);
  empname:=ADOQ_employee.FieldValues['empname'];
  //4.删除原有编码记录
  try
        if ADOQ_employee.FieldValues['empid']<>empid_int then ADOQ_employee.Locate('empid',empid_int,[]);
        ADOQ_employee.Delete;
  except
        if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
        MsgErr(handle,'人员离职处理失败4!');
        emp_BLflag:=false; exit;
  end;
  //提交数据库
  if not emp_BLflag then
  begin
    if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
    MsgErr(handle,'人员离职处理失败--All!');
    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;
      exit;
    end;
    with ADOQ_employee do
    begin
      close; open;
      Locate('empid',maxid,[]);
    end;
    msgOk(handle,'编号为  ['+empid+']  的员工  ['+empname+']  离职成功!');
  end;
end;

procedure TForm_employee.DBE_SexKeyPress(Sender: TObject; var Key: Char);
begin
  abort;
end;

procedure TForm_employee.DBE_SexDblClick(Sender: TObject);
begin
  if not (ADOQ_employee.State in [dsedit,dsinsert]) then exit;
  if DBE_Sex.ItemIndex=0 then
  begin
    ADOQ_employee.FieldValues['sex']:='女';
    DBE_Sex.ItemIndex:=1;
  end
  else
  begin
    ADOQ_employee.FieldValues['sex']:='男';
    DBE_Sex.ItemIndex:=0;
  end;
end;

procedure TForm_employee.DBGrid1DblClick(Sender: TObject);
begin
  PageControl1.ActivePageIndex:=1;
end;

procedure TForm_employee.PageControl1Change(Sender: TObject);
begin
  if PageControl1.ActivePageIndex=2 then
  begin
    AddBtn.Enabled:=false; EdtBtn.Enabled:=false;
    DelBtn.Enabled:=false; SaveBtn.Enabled:=false;
    CancelBtn.Enabled:=false;
    if BitBtn1.Visible then 
    BitBtn1.Enabled:=false;
  end
  else
  begin
    AddBtn.Enabled:=true; EdtBtn.Enabled:=true;
    DelBtn.Enabled:=true; SaveBtn.Enabled:=true;
    CancelBtn.Enabled:=true;
    if curAdmin.team_power[0][7]='1' then
    BitBtn1.Enabled:=true;
  end;
end;

procedure TForm_employee.ADOQ_employeeAfterInsert(DataSet: TDataSet);
var
WKtime:Tdatetime;
begin
  GetHostDateTime(datamod.ADOCon,WKtime);
  DataSet.FieldValues['worktime'] :=strtodate(formatdatetime('yyyy-mm-dd',WKtime));
  DataSet.FieldValues['state'] :=1;
  DBComboBox_grade.ItemIndex:=0;
  dataset.FieldValues['grade']:=DBComboBox_grade.Text;
end;

procedure TForm_employee.ADOQ_employeeBeforePost(DataSet: TDataSet);
var
  wktime:Tdatetime;
begin
  wktime:=DataSet.FieldValues['worktime'];
  DataSet.FieldValues['worktime']:=strtodate(formatdatetime('yyyy-mm-dd',WKtime));
  if not ADOQ_employee.FieldValues['state'] then
  begin
    MsgErr(handle,'该员工已离职致员工信息不能更改!');
    CancelBtnClick(self); abort; exit;
  end;
  if DataSet.State in [dsedit] then
  begin
    if Msgqst(handle,'确定要保存当前人员信息的修改吗?')=idno then
    begin
      CancelBtnClick(self);
      abort; exit;
    end;
  end;
end;

procedure TForm_employee.DS_employee_QDataChange(Sender: TObject; Field: TField);
var F: TextFile;
begin
//  exit;   //////////////////////////////////////////////////////////
{  if not ADOQ_employee.Active then exit;
  if ADOQ_employee.RecordCount =0 then exit;
  if ADOQ_employee.State in [dsbrowse] then
  begin
        TblobField(ADOQ_employee.FieldByName('photo')).SaveToFile(apppath+'\temp.jpg');
        AssignFile(F,apppath+'\temp.jpg');
        Reset(F);
        if filesize(F)>0 then
        begin
          DBImage1.Picture.LoadFromFile(apppath+'\temp.jpg'); // DBImage2.show;
        end
        else
          DBImage1.Picture.Graphic.Free ;
          CloseFile(f);
  end;   }
end;

procedure TForm_employee.BitBtn_idClick(Sender: TObject);
begin
  ADOQ_employee.FieldValues['empid']:=Get_empid('empid','employee');
  dbe_name.SetFocus;
end;

procedure TForm_employee.BitBtn_ExcelClick(Sender: TObject);
begin
  Form_main.WriteIntoExcel(DBGrid1,datetostr(date),'员工编号对照表');
end;

procedure TForm_employee.ADOQ_employeeAfterScroll(DataSet: TDataSet);
begin
  BitBtn_Excel.Enabled:=DataSet.FieldCount>0;
  BitBtn1.Enabled:=BitBtn_Excel.Enabled;
end;

//人员相片编辑
procedure TForm_employee.DBImage1DblClick(Sender: TObject);
var tmpstr,S,str_filename,str_bh,str_name,str_dep,str_duty:string;
    F: TextFile;
    i:integer;
    b:tbitmap;
    j:tjpegimage;
begin
  if not ADOQ_employee.Active  then exit; //没有打开表
  if ADOQ_employee.IsEmpty  then exit;    //为空时
  if not OpenPictureDialog1.Execute then  exit;
  if not( ADOQ_employee.State in [dsedit,dsinsert]) then ADOQ_employee.Edit;

  //判断当前文件是JPG,bmp格式的文件
  if  uppercase(Right_str(OpenPictureDialog1.filename,3))='JPG' then
  begin
    b:=tbitmap.Create;
    j:=tjpegimage.Create;
    try
        j.LoadFromFile(OpenPictureDialog1.filename);
        b.Assign(j); //将JPG格式转换成BMP格式
        //Image1.Picture.Bitmap.Assign(b); //file://·?????image1?a?t
        //Image1.Picture.SaveToFile('c:\123.bmp');
        b.SaveToFile(AppPath+'\tmp.bmp');
        (ADOQ_employee.FieldByName('photo') as Tblobfield).LoadFromFile(AppPath+'\tmp.bmp');
    finally //file://ò????a??3y1¤×÷
        b.free;
        j.free;
    end;
  end
  else //bmp格式
  (ADOQ_employee.FieldByName('photo') as Tblobfield).LoadFromFile(OpenPictureDialog1.filename);

//  ADOQ_employee.Post;
end;

procedure TForm_employee.DS_employee_QStateChange(Sender: TObject);
begin
  if ADOQ_employee.State in [dsinsert] then
  begin
    DBE_ID.ReadOnly:=false;
    DBE_ID.ParentColor:=false;
    DBE_ID.Color:=clWindow;
    BitBtn_id.Enabled:=true;
  end;
  if ADOQ_employee.State in [dsedit] then
  begin
    DBE_ID.ReadOnly:=true;
    DBE_ID.ParentColor:=true;
    BitBtn_id.Enabled:=false;
  end;
  if (sender as Tdatasource).DataSet.State in [dsinsert,dsedit] then
  begin
    DBGrid1.Enabled:=false;
    AddBtn.Enabled:=false;
    EdtBtn.Enabled:=false;
    DelBtn.Enabled:=false;
    LocateBtn.Enabled:=false;
    if BitBtn1.Visible then
    BitBtn1.Enabled:=false;
    BitBtn_Excel.Enabled:=false;
    DBNavigator1.Enabled:=false;
  end;

  if (sender as Tdatasource).DataSet.State in [dsbrowse] then
  begin
    DBE_ID.ReadOnly:=true;
    DBE_ID.ParentColor:=true;
    BitBtn_id.Enabled:=false;
    DBGrid1.Enabled:=true;
    AddBtn.Enabled:=true;
    EdtBtn.Enabled:=true;
    DelBtn.Enabled:=true;
    LocateBtn.Enabled:=true;
    DBNavigator1.Enabled:=true;
    if (sender as Tdatasource).DataSet.recordcount>0 then
    begin
      if curAdmin.team_power[0][7]='1' then
      BitBtn1.Enabled:=true;
      BitBtn_Excel.Enabled:=true;
    end;
  end;
end;

end.

⌨️ 快捷键说明

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