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

📄 change.pas

📁 人事管理系统 具备了很强的功能 你看了就知道!
💻 PAS
字号:
unit change;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  childwin, StdCtrls, ExtCtrls, DBCtrls, Mask;

type
  TF_change = class(TMDIChild)
    Label1: TLabel;
    i_id: TEdit;
    GroupBox1: TGroupBox;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    i_change: TRadioGroup;
    Button1: TButton;
    Label5: TLabel;
    i_department: TDBLookupComboBox;
    i_name: TDBEdit;
    i_job: TDBLookupComboBox;
    Label6: TLabel;
    i_description: TMemo;
    i_time: TMaskEdit;
    procedure i_idChange(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
    procedure ChangeInit;
  public
    { Public declarations }
  end;

var
  F_change: TF_change;

implementation

uses DataModule, mainwin;

{$R *.DFM}

procedure TF_change.ChangeInit; //自定义过程 (初始化表单)
begin
  i_id.Text:='';                //清空员工号输入框
  DataModule1.T_user.Close;     //关闭员工查询数据表
  i_change.ItemIndex:=0;        //默认员工变动为职务变更
  i_time.Text:=DateToStr(Now);  //加入当前时间
  i_description.Clear;          //清空描述
end;

procedure TF_change.i_idChange(Sender: TObject);
begin
  With DataModule1 do         //设置默认前缀为DataModule1
  begin
    T_user.Filter:='ID='''+i_id.Text+'''';   //设置过滤器
    T_user.Filtered:=True;
    T_user.Open;
  end;
end;

procedure TF_change.FormCreate(Sender: TObject);
begin
  F_main.M_change.Enabled:=False;     //禁止主窗口"人事变更"菜单项
  F_main.TB_change.Enabled:=False;    //禁止主窗口"人事变更"按钮
  Width:=282;                         //设置窗口宽度
  Height:=429;                        //设置窗口高度
  With DataModule1 do                 //设置默认前缀为DataModule1
  begin
    if not T_department.Active then T_department.Open; //打开部门代码表
    if not T_job.Active then T_job.Open;               //打开职位代码表
  end;
  ChangeInit;                                          //初始化表单
end;

procedure TF_change.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  inherited;     //继承父类的关闭事件
  F_main.M_change.Enabled:=True;      // 恢复菜单的使用
  F_main.TB_change.Enabled:=True;     //恢复按钮的使用
end;

procedure TF_change.Button1Click(Sender: TObject);
var
  counter:integer;      //保存计数器
begin
  With DataModule1 do   //设置默认前缀为DataModule1
  begin
    if T_user.RecordCount=1 then  //判断是否存在该员工
    begin
      //获取人事变动记录号
      T_counter.Filter:='ID=''C''';
      T_counter.Filtered:=True;
      T_counter.Open;
      counter:=T_counter['COUNTER_VALUE']; //从计数器表中取出计数器的值
      counter:=counter+1;;                 //计数器加1
      T_counter.Edit;                      //设置计数器这个表为修改状态
      T_counter['COUNTER_VALUE']:=counter; //把新的计数器的值写入表中
      T_counter.Post;                      //保存表的记录
      T_counter.Close;                     //关闭表
      //追加人事变动记录
      T_user.Edit;                         //设置T_user表为编辑状态
      if i_change.ItemIndex=1 then         //判断如果为辞职退休
        T_user['STATE']:='F';              //取消员工帐号
        T_user.Post;                       //保存
        T_change.Open;                     //修改人事变动记录
        T_change.Append;
        T_change['ID']:=counter;
        T_change['PERSON']:=i_id.Text;
        T_change['CHANGE']:=IntToStr(i_change.ItemIndex);
        T_change['RECORD_TIME']:=StrToDate(i_time.Text);
        T_change['DESCRIPTION']:=i_description.Text;
        T_change.Post;                     //保存
        T_change.Close;                    //关闭
        ChangeInit;                        //在初始化表单
    end
    else
      Application.MessageBox('请确认员工号!','输入错误',MB_OK);
  end;
end;

end.

⌨️ 快捷键说明

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