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

📄 uemployee.pas

📁 说明: 比较简单的人事档案管理程序,包含了人事档案的大部分功能,做人事档案的兄弟可以看看. 本程序类型:delphi7 + Access2000 桌面数据库 初始用户名/密码:admin
💻 PAS
📖 第 1 页 / 共 2 页
字号:
        end;
      end;
      post;
      close;
      showmessage('添加成功!');

      //更改系统表中的'最后员工编号'字段
      with form_main.TabSystem do
      begin
        close;
        open;
        first;
        update;
        edit;
        FieldValues['EndEmployee_id'] := strtoInt(edit1.Text);
        post;
        close;
      end;
    end;
  except
    showmessage('更改系统表中的"最后员工编号"字段失败,请检查数据库是否存在');
  end;
end;

procedure TForm_Employee.UpDateEmployee;
var
  str: TMemoryStream;
  temp: string;
  myjpeg: tjpegimage;
begin
  temp := edit15.text;
  try
    with form_main.TabEmployee do
    begin
      close;
      open;
      First;
      while not eof do
      begin
        if FieldValues['employee_id'] = edit1.Text then
        begin
//          showmessage('找到了。。');
          Update;
          form_main.TabEmployee.Edit;
          FieldValues['employee_name'] := trim(edit2.Text);

          FieldValues['employee_sex'] := trim(Csex.Text);

          FieldValues['employee_FirstDept'] := trim(CEmployee_FirstDept.Text);

          FieldValues['employee_SecondDept'] := trim(CEmployee_SecondDept.Text);

          FieldValues['employee_folk'] := trim(CEmployee_folk.Text);

          FieldValues['employee_birthday'] := Formatdatetime('yyyy-mm-dd', DateTime1.Date);

          FieldValues['employee_IDcard'] := trim(edit3.Text);

          FieldValues['employee_polity'] := trim(CEmployee_polity.Text);

          FieldValues['employee_marriage'] := trim(CEmployee_marriage.Text);

          FieldValues['employee_educate'] := trim(CEmployee_educate.Text);

          FieldValues['employee_type'] := trim(CEmployee_type.Text);

          FieldValues['employee_post'] := trim(CEmployee_post.Text);

          FieldValues['employee_startworkdate'] := Formatdatetime('yyyy-mm-dd', DateTime2.Date);

          FieldValues['employee_joindate'] := Formatdatetime('yyyy-mm-dd', DateTime3.date);

          FieldValues['employee_duty'] := trim(CEmployee_duty.text);

          FieldValues['employee_banktype'] := trim(CEmployee_banktype.text);

          FieldValues['employee_banknumber'] := trim(edit4.text);

          fieldValues['employee_paytype'] := trim(CEmployee_paytype.Text);

          fieldValues['employee_endowment'] := trim(edit5.Text);

          fieldValues['employee_medicare'] := trim(edit6.Text);

          fieldValues['employee_bargain'] := trim(CEmployee_bargain.Text);

          FieldValues['employee_bargainstart'] := Formatdatetime('yyyy-mm-dd', DateTime4.Date);

          FieldValues['employee_bargainstop'] := Formatdatetime('yyyy-mm-dd', DateTime5.Date);
          FieldValues['employee_tel'] := trim(edit7.Text);

          FieldValues['employee_othertel'] := trim(edit8.Text);

          FieldValues['employee_email'] := trim(edit9.Text);

          FieldValues['employee_text'] := trim(edit10.Text);

          FieldValues['employee_number'] := trim(edit11.Text);

          FieldValues['employee_city'] := trim(CEmployee_city.Text);

          FieldValues['employee_school'] := trim(CEmployee_school.Text);

          FieldValues['employee_nowaddress'] := trim(edit12.Text);

          FieldValues['employee_homepage'] := trim(edit13.Text);

          FieldValues['employee_moblie'] := trim(edit14.Text);

          FieldValues['employee_memo'] := trim(memo1.Text);

          FieldValues['employee_phototype'] := trim(edit15.Text);

          if temp <> 'NULL' then
          begin
            if temp = 'jpg' then
            begin
              str := tmemorystream.Create;
              myjpeg := tjpegimage.Create;
              myjpeg.Assign(image1.Picture.Graphic);
              myjpeg.SaveToStream(str);
              str.Position := 0;
              tblobfield(form_main.TabEmployee.FieldByName('employee_photo')).LoadFromStream(str);
              str.free;
              post;
              close;
              showmessage('更新成功!');
              exit;
            end;
            if temp = 'bmp' then
            begin
              str := tmemorystream.Create;
              image1.Picture.Bitmap.SaveToStream(str);
              str.Position := 0;
              tblobfield(form_main.TabEmployee.FieldByName('employee_photo')).LoadFromStream(str);
              str.free;
              post;
              close;
              showmessage('更新成功!');
              exit;
            end;
          end
          else
          begin
            FieldByName('employee_photo').AsString := '';
            post;
            close;
            showmessage('更新成功!');
            exit;
          end;
        end;
        next;
      end;
    end;
  except
    showmessage('更新不成功');
  end;
end;

procedure TForm_Employee.addData(var setid: integer; setname: string);
begin
  try
    with Form_main.TabPrepset do
    begin
      close;
      open;
      insert;
      FieldValues['set_id'] := setid;
      FieldValues['set_name'] := setname;
      post;
      close;
    end; // with
  except
    showmessage('增加预设项失败,请检查数据库是否存在');
  end;
end;




function TForm_Employee.onTabprepset(var setid: integer; setname: string): integer;
begin
  try
    with Form_main.TabPrepset do
    begin
      close;
      open;
      first;
      while not eof do
      begin
        if (fieldByName('set_id').AsInteger = setid)
          and (fieldByName('set_name').AsString = setname) then
        begin
          Result := 1;
          close;
          exit;
        end;
        next;
      end; // while
      close;
      Result := 0;
    end; // with
  except
    beep;
    showmessage('无法打开预设表,未完成是否存在重复项的检查');
  end;
end;

procedure TForm_Employee.CEmployee_FirstDeptClick(Sender: TObject);
var deptname: string;
begin
  deptname := CEmployee_FirstDept.Text;
  if (deptname <> '') then
    LoadSecondDept(deptname);
end;

procedure TForm_Employee.Button1Click(Sender: TObject);
var setid: integer;
  setname: string;
begin
  if (trim(edit2.Text) = '') or (length(trim(edit2.Text)) > 20) then
  begin
    beep;
    showmessage('姓名不能为空或超过10个字,请输入正确的姓名!');
    edit2.SetFocus;
    exit;
  end;

  if (CEmployee_FirstDept.Text = '') then
  begin
    beep;
    showmessage('请选择一级部门!');
    CEmployee_FirstDept.SetFocus;
    exit;
  end;
  //检测身份证号码的正确性
  if length(trim(edit3.Text)) <> 15 then
  begin
    if length(trim(edit3.Text)) <> 18 then
    begin
      beep;
      showmessage('你输入的号码位数:' + inttostr(Length(edit3.Text)) + '位,请输入正确的身份证号码!');
      edit3.SetFocus;
      exit;
    end;
  end;
  if (trim(CEmployee_educate.Text) = '') or (length(trim(CEmployee_educate.Text)) > 50) then
  begin
    beep;
    showmessage('请选择教育程度!');
    CEmployee_educate.SetFocus;
    exit;
  end;

  if (trim(CEmployee_polity.Text) = '') or (length(trim(CEmployee_polity.Text)) > 50) then
  begin
    beep;
    showmessage('请选择政治面貌!');
    CEmployee_polity.SetFocus;
    exit;
  end;
  if (trim(CEmployee_banktype.Text) = '') or (length(trim(CEmployee_banktype.Text)) > 50) then
  begin
    beep;
    showmessage('请填入/选择银行类型!如果没有请选择"无"');
    CEmployee_banktype.SetFocus;
    exit;
  end;
  if (trim(CEmployee_bargain.Text) = '') or (length(trim(CEmployee_bargain.Text)) > 50) then
  begin
    beep;
    showmessage('请选择合同类型!');
    CEmployee_bargain.SetFocus;
    exit;
  end;

  if (CEmployee_duty.Text = '') or (length(trim(CEmployee_duty.Text)) > 50) then
  begin
    beep;
    showmessage('请选择职务类型!');
    CEmployee_duty.SetFocus;
    exit;
  end;
  if (CEmployee_post.Text = '') or (length(trim(CEmployee_post.Text)) > 50) then
  begin
    beep;
    showmessage('请选择职称类型!如果没有请选择"无"');
    CEmployee_post.SetFocus;
    exit;
  end;
  if (trim(CEmployee_type.Text) = '') or (length(trim(CEmployee_type.Text)) > 50) then
  begin
    beep;
    showmessage('请选择职工类型!');
    CEmployee_type.SetFocus;
    exit;
  end;

  if (trim(edit4.Text) = '') or (length(trim(edit4.Text)) > 20) then
  begin
    beep;
    showmessage('请正确输入正确的银行账号(最长20位)!,如果没有账号请输入0');
    edit4.SetFocus;
    exit;
  end;
  if (trim(edit5.Text) = '') or (length(trim(edit5.Text)) > 20) then
  begin
    beep;
    showmessage('请输入正确的养老保险账号!(最长20位),如果没有请输入0');
    edit5.SetFocus;
    exit;
  end;

  if (trim(edit6.Text) = '') or (length(trim(edit6.Text)) > 20) then
  begin
    beep;
    showmessage('请输入正确的医疗保险账号!(最长20位),如果没有请输入0');
    edit6.SetFocus;
    exit;
  end;

  if (trim(edit7.Text) = '') or (length(trim(edit7.Text)) > 20) then
  begin
    beep;
    showmessage('请输入正确的电话!(最长20位),如果没有请输入0');
    edit7.SetFocus;
    exit;
  end;
  if (trim(edit8.Text) = '') then
  begin
    beep;
    showmessage('请输入正确的其它联系电话!,如果没有请输入0');
    edit8.SetFocus;
    exit;
  end;

  if (trim(edit10.Text) = '') then
  begin
    beep;
    showmessage('请输入现住址!');
    edit10.SetFocus;
    exit;
  end;
  if (trim(edit10.Text) = '') or (length(trim(edit7.Text)) > 20) then
  begin
    beep;
    showmessage('请输入正确的手机号码!如果没有请输入0');
    edit10.SetFocus;
    exit;
  end;
//增加员工数据
  if Form_Employee.Caption = '加入新职工' then
    insertemployee
  else
  begin
    UpdateEmployee;
    close;
  end;
//清除输入项
  LoadDefaultSet;
  LoadFirstDept;
  edit2.SetFocus;
//保存'自动保存'项
  if (CEmployee_banktype.Text <> '') and (CEmployee_banktype.Text <> '无') then
  begin
    setid := 8;
    setname := CEmployee_banktype.Text;
     //  showmessage('现在是'+inttostr(onTabprepset(setid,setname)));
    if onTabprepset(setid, setname) = 0 then
      adddata(setid, setname);
  end;

  if (CEmployee_city.Text <> '') and (CEmployee_city.Text <> '无') then
  begin
    setid := 9;
    setname := CEmployee_city.Text;
    if onTabprepset(setid, setname) = 0 then
      adddata(setid, setname);
  end;
  if (CEmployee_school.Text <> '') and (CEmployee_school.Text <> '无') then
  begin
    setid := 10;
    setname := CEmployee_school.Text;
    if onTabprepset(setid, setname) = 0 then
      adddata(setid, setname);
  end;

end;

procedure TForm_Employee.Button2Click(Sender: TObject);
begin
  close;
end;

procedure TForm_Employee.Edit2Exit(Sender: TObject);
begin
  if CEmployee_SecondDept.Text = '' then
    CEmployee_FirstDeptClick(Sender);
end;

procedure TForm_Employee.Button3Click(Sender: TObject);
var jpgImage: TJPEGImage;

begin
  if openpicturedialog1.Execute then
  begin
    imgPath := Trim(openpicturedialog1.FileName);
    ExtName := lowercase(rightstr(imgPath, 3));
    edit15.Text := ExtName;
    if (ExtName = 'jpg') then
    begin
      jpgImage := TJPEGImage.Create;
      jpgImage.LoadFromFile(openpicturedialog1.FileName);
      image1.Picture.Graphic := jpgImage;
      jpgImage.Free;
    end
    else if ExtName = 'bmp' then
    begin
      image1.Picture.LoadFromFile(openpicturedialog1.FileName);
    end;
  end;
end;

procedure TForm_Employee.Button4Click(Sender: TObject);
begin
  image1.Picture.Graphic := nil;
  edit15.Text := 'NULL';
end;

procedure TForm_Employee.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  with Form_main.ADOQDBGrid do
  begin
    sql.Clear;
    sql.Add('select * from Employee');
    OPEN;
  end;
end;

procedure TForm_Employee.FormShow(Sender: TObject);
begin
  LoadDefaultSet;
  LoadFirstDept;
end;

procedure TForm_Employee.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
  if not (key in ['0'..'9']) then
    key := #0;
end;

procedure TForm_Employee.Edit7KeyPress(Sender: TObject; var Key: Char);
begin
  if not (key in ['0'..'9', '-']) then
    key := #0;
end;

end.

⌨️ 快捷键说明

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