📄 change.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 + -