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

📄 hm_pinf.~pas

📁 本课题是为企业人事管理提供现代化技术支持的管理信息系统
💻 ~PAS
📖 第 1 页 / 共 3 页
字号:
//------------------选择添加--------------------
procedure Thm_pinfForm.SpeedButton3Click(Sender: TObject);
var
  i: Integer;
begin
  if ADOQuery2.Active then
  begin
    SpeedButton5.Visible:=true;
    SpeedButton6.Visible:=true;
    SpeedButton2.Enabled:=false;
    SpeedButton4.Enabled:=false;
    if PageControl1.ActivePageIndex = 0 then
    begin
      {
      ADOQuery3.Close;
      ADOQuery3.SQL.Text := 'select max(distinct 编号) from 基本信息';
      ADOQuery3.ExecSQL;
      i := ADOQuery3.FieldByName('编号').AsInteger;
      Inc(i); }
      if not ADOQuery3.Active then
      begin
        ADOQuery3.Close;
        ADOQuery3.SQL.Text := 'select * from 基本信息 where 编号= 0';
        ADOQuery3.Open;
      end;
      ADOQuery3.Append;
      //ADOQuery3.FieldByName('编号').AsInteger := i;
    end
    else
    begin
      if not ADOQuery4.Active then Exit;
      ADOQuery4.Append;
    end;
    SpeedButton3.Enabled := False;
    TabSheetState(PageControl1.ActivePageIndex);
  end
  else
    ShowMessage('请先查询需要添加的相关信息');
end;

//---------------------选择清除当前条目--------------
procedure Thm_pinfForm.SpeedButton4Click(Sender: TObject);
var
 tempstr, sText, sBH:string;
begin
  if MessageBox(handle, '要删除此条目吗?', '提示', mb_IconQuestion + mb_OkCancel) = idOk then
  begin
      //从基本信息中清除
      if PageControl1.ActivePageIndex = 0 then
      begin
        if ADOQuery2.Active then
          if ADOQuery2.RecordCount > 0 then
          begin
            sBH := Trim(DBGrid1.Fields[0].AsString);
            ADOQuery3.close;
            ADOQuery3.SQL.Clear;
            ADOQuery3.SQL.Text := 'delete from 基本信息 where 编号 ='+ QuotedStr(sBH);
            ADOQuery3.ExecSQL;
            //删除员工的基本信息,代表对员工信息的清除,需清除其它表内的信息
            ADOQuery3.close;
            ADOQuery3.SQL.Clear;
            ADOQuery3.SQL.Text := 'delete from 工作经历 where 员工编号 ='+QuotedStr(sBH);
            ADOQuery3.ExecSQL;
            ADOQuery3.close;
            ADOQuery3.SQL.Clear;
            ADOQuery3.SQL.Text := 'delete from 社会关系 where 员工编号 ='+QuotedStr(sBH);
            ADOQuery3.ExecSQL;
            ADOQuery3.close;
            ADOQuery3.SQL.Clear;
            ADOQuery3.SQL.Text := 'delete from 奖惩记录 where 员工编号 ='+QuotedStr(sBH);
            ADOQuery3.ExecSQL;
            ADOQuery3.close;
            ADOQuery3.SQL.Clear;
            ADOQuery3.SQL.Text := 'delete from 培训经历 where 员工编号 ='+QuotedStr(sBH);
            ADOQuery3.ExecSQL;

            //ADOQuery2.Delete;
            ADOQuery2.ExecSQL;
          end;
      end
      else
      begin//从其他表中清除,操作相同
        if ADOquery4.RecordCount > 0 then
        begin
          tempstr:=ADOQuery4.FieldByName('条目号').AsString;
          ADOQuery4.close;
          ADOQuery4.SQL.Clear;
          //从PageControl1.ActivePage.Caption得到表的名字
          ADOQuery4.SQL.Text := 'delete from '+PageControl1.ActivePage.Caption+' where 条目号 ='+ QuotedStr(tempstr);
          ADOQuery4.ExecSQL;
          PageControl1.ActivePage.OnShow(nil);
        end
        else
          ShowMessage('没有可删除的数据');
      end;
     sText := ADOQUery2.SQL.Text;
     ADOQuery2.Close;
     ADOQuery2.SQL.Clear;
     ADOQuery2.SQL.Text := sText;
     ADOQuery2.Open;
  end;
end;

//----------------- 确定修改,添加----------------------
procedure Thm_pinfForm.SpeedButton5Click(Sender: TObject);
var
  bEdtState: Boolean;
  sText: string;
begin
  bEdtState := False;
    //基本信息TabSheet1活跃代表要对基本信息表操作
    if PageControl1.ActivePageIndex = 0 then
    begin
        if DateTimePicker6.Date = Date then
        begin
          showmessage('出生日期不合法!');
          Exit;
        end;
        if Trim(hm_pname.Text) = '' then
        begin
          showmessage('姓名不能为空!');
          Exit;
        end;
        //hm_time.EditText:=datetostr(date);
        DateTimePicker7.Date := Date;
        if ADOQuery3.state In [dsEdit ,dsInsert] then
        begin
          ADOQuery3.FieldByName('姓名').AsString := Trim(hm_pname.Text);
          ADOQuery3.FieldByName('性别').AsString := Trim(hm_psex.Text);
          ADOQuery3.FieldbyName('婚姻状况').AsString := Trim(hm_pmarried.Text);
          ADOQuery3.FieldbyName('部门').AsString := Trim(hm_pdep.Text);
          ADOQuery3.FieldbyName('学历').AsString := Trim(hm_pslevel.Text);
          ADOQuery3.FieldByName('出生日期').AsDateTime := DateTimePicker6.Date;
          ADOQuery3.FieldByName('录用时间').AsDateTime := DateTimePicker6.Date;
          ADOQuery3.FieldByName('起止时间').AsString := Trim(hm_StartEnd.Text);
          ADOQuery3.FieldByName('更新时间').AsDateTime := DateTimePicker7.Date;
          ADOQuery3.Post;
        end;
    end
    else
    begin
      if ADOquery4.State In [dsEdit, dsInsert] then
      begin
        bEdtState := True;
        ADOQuery4.FieldByName('员工编号').AsString:=DBGrid1.Fields[0].AsString;
      end;
    end;
    //工作经历TabSheet2活跃代表要对工作经历表操作
    if (PageControl1.ActivePageIndex = 1) and bEdtState then
    begin
        if FormatDateTime('YYYY-MM-DD', DateTimePicker1.DateTime) = FormatDateTime('YYYY-MM-DD', DateTimePicker2.DateTime) then
        begin
          showmessage('开始和结束时间不能相同!');
          Exit;
        end;
        if (Trim(Edit3.Text) = '') or (Trim(Edit4.Text) = '') or (Trim(Edit5.Text) = '') then
        begin
          showmessage('任职信息不完整,请补充!');
          Exit;
        end;
        //ADOQuery4.FieldByName('开始时间').AsString:=Edit1.Text;
        //ADOQuery4.FieldByName('结束时间').AsString:=Edit2.Text;
        ADOQuery4.FieldByName('开始时间').AsDateTime := DateTimePicker1.DateTime;
        ADOQuery4.FieldByName('结束时间').AsDateTime := DateTimePicker2.DateTime;
        ADOQuery4.FieldByName('公司').AsString:=Edit3.Text;
        ADOQuery4.FieldByName('部门').AsString:=Edit4.Text;
        ADOQuery4.FieldByName('职责').AsString:=Edit5.Text;
        ADOQuery4.Post;
    end;
     //社会关系TabSheet3活跃代表要对社会关系表操作
    if (PageControl1.ActivePageIndex = 2) and bEdtState then
    begin
        ADOQuery4.FieldByName('姓名').AsString:=Edit6.Text;
        ADOQuery4.FieldByName('关系').AsString:=Edit7.Text;
        ADOQuery4.FieldByName('电话').AsString:=Edit8.Text;
        ADOQuery4.FieldByName('单位').AsString:=Edit9.Text;
        ADOQuery4.FieldByName('备注').AsString:=Memo1.Text;
        ADOQuery4.Post;
    end;
    //奖惩记录TabSheet4活跃代表要对奖惩记录表操作
    if (PageControl1.ActivePageIndex = 3) and bEdtState then
    begin
        ADOQuery4.FieldByName('类别').AsString:=ComboBox1.Text;
        ADOQuery4.FieldByName('事件').AsString:=Edit10.Text;
        ADOQuery4.FieldByName('处理部门').AsString:=Edit11.Text;
        //ADOQuery4.FieldByName('时间').AsString:=Edit12.Text;
        ADOQuery4.FieldByName('时间').AsDateTime:= DateTimePicker3.DateTime;
        ADOQuery4.FieldByName('结果').AsString:=Memo2.Text;
        ADOQuery4.Post;
    end;
    //培训经历TabSheet5活跃代表要对培训经历表操作
    if (PageControl1.ActivePageIndex = 4) and bEdtState then
    begin
        ADOQuery4.FieldByName('培训课程').AsString:=Edit13.Text;
        ADOQuery4.FieldByName('期限').AsString:=Edit14.Text;
        ADOQuery4.FieldByName('开始时间').AsString:=Edit15.Text;
        ADOQuery4.FieldByName('结束时间').AsString:=Edit16.Text;
        ADOQuery4.FieldByName('培训单位').AsString:=Edit17.Text;
        ADOQuery4.FieldByName('证书').AsString:=Edit18.Text;
        ADOQuery4.Post;
    end;
    //恢复按钮信息
    sText := ADOQUery2.SQL.Text;
    ADOQuery2.Close;
    ADOQuery2.SQL.Clear;
    ADOQuery2.SQL.Text := sText;
    ADOQuery2.Open;

    ButtonState;
    TabSheetState;
end;

//------------------取消修改,添加操作-----------------
procedure Thm_pinfForm.SpeedButton6Click(Sender: TObject);
begin
  ButtonState;
  if PageControl1.ActivePageIndex = 0 then
    ADOQuery3.Cancel
  else
    ADOQuery4.Cancel;
  TabSheetState;
  ShowData;
end;
procedure Thm_pinfForm.button1Click(Sender: TObject);

var
  photo,path: string;
begin
  if OpenDialog1.Execute then
  begin
    photo := ExtractFileName(OpenDialog1.FileName);
    path := ExtractFilePath(Application.ExeName);
    if not FileExists(path + 'images\' + photo) then
    begin
      ADOQuery5.sql.Clear;
      ADOQuery5.SQL.Text := 'select 照片 from 基本信息 where 编号=' + trim(DBGrid1.Fields[0].AsString);
      ADOQuery5.open;
      if(trim(ADOQuery5.Fieldbyname('照片').AsString)<>'') then
      begin
        if FileExists(path + 'images\' + trim(ADOQuery5.Fieldbyname('照片').AsString)) then
          deletefile(path + 'images\' + trim(ADOQuery5.Fieldbyname('照片').AsString));
      end;
      CopyFile(Pchar(OpenDialog1.FileName), pchar(path + 'images\' + photo), false);
      SpeedButton5Click(nil);
      ADOQuery5.Close;
      ADOQuery5.sql.Clear;
      ADOQuery5.SQL.Text := 'update 基本信息 set 照片 = ''' +photo+''' where 编号=' + trim(DBGrid1.Fields[0].AsString);
      ADOQuery5.ExecSQL;
      MessageBox(handle, '照片更新成功!', '提示', mb_IconWarning + mb_Ok);
      imgi.Picture.LoadFromFile(path + 'images\' + photo);
    end
    else
    begin
      MessageBox(handle, '此照片文件名已存在,请改名!', '提示', mb_IconWarning + mb_Ok);
      exit;
    end;
  end;

end;

procedure Thm_pinfForm.button2Click(Sender: TObject);
var
  path: string;
begin
  if MessageBox(handle, '真的要删除此员工照片吗?', '提示', mb_IconQuestion + mb_OkCancel) = idOk then
  begin
    path := ExtractFilePath(Application.ExeName);
    ADOQuery5.Close;
    ADOQuery5.sql.Clear;
    ADOQuery5.SQL.Text := 'select 照片 from 基本信息 where 编号=' + trim(DBGrid1.Fields[0].AsString);
    ADOQuery5.open;
    if FileExists(path + 'images\' + trim(ADOQuery5.Fieldbyname('照片').AsString)) then
    begin
      SpeedButton5Click(nil);
      deletefile(path + 'images\' + trim(ADOQuery5.Fieldbyname('照片').AsString));
      MessageBox(handle, '照片删除成功!', '提示', mb_IconWarning + mb_Ok);
      imgi.Picture.LoadFromFile(path + 'images\1.bmp');
      ADOQuery5.Close;
      ADOQuery5.sql.Clear;
      ADOQuery5.SQL.Text := 'update 基本信息 set 照片 = '''' where 编号=' + trim(DBGrid1.Fields[0].AsString);
      ADOQuery5.ExecSQL;
    end
    else
      MessageBox(handle, '没有此员工照片!', '提示', mb_IconWarning + mb_Ok);
  end;
end;
procedure Thm_pinfForm.ADOQuery2BeforeScroll(DataSet: TDataSet);
begin
  SpeedButton2.Enabled := ADOQuery2.RecordCount > 0;
  //SpeedButton3.Enabled := ADOQuery2.RecordCount > 0;
  SpeedButton4.Enabled := ADOQuery2.RecordCount > 0;
end;

procedure Thm_pinfForm.ADOQuery2AfterOpen(DataSet: TDataSet);
begin
  SpeedButton2.Enabled := ADOQuery2.RecordCount > 0;
  //SpeedButton3.Enabled := ADOQuery2.RecordCount > 0;
  SpeedButton4.Enabled := ADOQuery2.RecordCount > 0;
  ShowData;
end;

procedure Thm_pinfForm.ShowData;
var
  i: integer;
  FileName: string;
begin
  ADOQuery1.close;
  ADOQuery1.Open;
  //提取部门信息
  if not ADOQuery1.Eof then
  begin
    hm_pdep.Clear;
    for i :=0 to ADOQuery1.RecordCount - 1 do
    begin
      hm_pdep.AddItem(Trim(ADOQuery1.FieldByName('名称').AsString), nil);
      ADOQuery1.next;
    end;
  end;
  ADOQuery3.close;
  if (DBGrid1.Enabled =true) and (trim(DBGrid1.Fields[0].AsString)<>'') then
  begin
     //提取信息
    ADOQuery3.SQL.Clear;
    ADOQuery3.SQL.Text := 'select * from 基本信息 where 编号=' + DBGrid1.Fields[0].AsString;
    ADOQuery3.Open;
    //显示照片
    FileName := ExtractFilePath(Application.ExeName) + 'images\' + trim(ADOQuery3.FieldByName('照片').AsString);
    if FileExists(FileName) then
        imgi.Picture.LoadFromFile(FileName)
    else
    begin
        FileName := ExtractFilePath(Application.ExeName) + 'images\1.bmp';
        if FileExists(FileName) then
          imgi.Picture.LoadFromFile(FileName);
    end;
  end;
  ADOQuery3.close;
  ADOQuery3.SQL.Clear;
  ADOQuery3.SQL.Text := 'select * from 基本信息 where 编号 ='+ QuotedStr(Trim(DBGrid1.Fields[0].AsString));
  ADOQuery3.Open;
  hm_pdep.ItemIndex := hm_pdep.Items.IndexOf(Trim(ADOQuery3.FieldByName('部门').AsString));
  hm_pmarried.ItemIndex := hm_pmarried.Items.IndexOf(Trim(ADOQuery3.FieldByName('婚姻状况').AsString));
  hm_pslevel.ItemIndex := hm_pslevel.Items.IndexOf(Trim(ADOQuery3.FieldByName('学历').AsString));
  hm_psex.ItemIndex := hm_psex.Items.IndexOf(Trim(ADOQuery3.FieldByName('性别').AsString));
end;



procedure Thm_pinfForm.ButtonState;
begin
SpeedButton5.Visible:=false;
  SpeedButton6.Visible:=false;
  SpeedButton2.Enabled:=true;
  SpeedButton3.Enabled:=true;
  SpeedButton4.Enabled:=true;
  Button1.Enabled:=false;
  Button2.Enabled:=false;
end;

procedure Thm_pinfForm.TabSheetState(Index: Integer);
var
  B: Boolean;
  i: Integer;
begin
  B := SpeedButton5.Visible and SpeedButton6.Visible;
  for i := 0 to PageControl1.PageCount - 1 do
  begin
    PageControl1.Pages[i].Enabled := B
  end;
  if Index > -1 then
  begin
    for i := 0 to PageControl1.PageCount - 1 do
    begin
      if i = Index then
        PageControl1.Pages[i].Enabled := True
      else
        PageControl1.Pages[i].Enabled := False;

    end;
  end;
  ActiveIndex := Index;
end;

procedure Thm_pinfForm.PageControl1Change(Sender: TObject);
var
  i,Index: Integer;
begin
  if ActiveIndex > - 1 then
  begin
    if PageControl1.ActivePageIndex = ActiveIndex then
    begin
      SpeedButton5.Visible := True;
      SpeedButton6.Visible := True;
    end
    else
    begin
      SpeedButton5.Visible := False;
      SpeedButton6.Visible := False;
    end;
  end;
end;

end.

⌨️ 快捷键说明

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