📄 hm_pinf.pas
字号:
//------------------选择添加--------------------
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 + -