📄 ustainfo.pas
字号:
end
end;
procedure TfrmStainfo.tsinfoShow(Sender: TObject);
var
i: integer;
aqDep: TADOQuery;
begin
if btnAppend.Enabled = false then btnAppend.Enabled := true;
aqDep := TADOQuery.Create(nil);
aqDep.Connection := dmPer.acPer;
aqDep.SQL.Text := 'select dep from dept order by ornum';
aqDep.Open;
if not aqDep.Eof then
begin
dcbodep.Clear;
for i :=0 to aqdep.RecordCount - 1 do
begin
dcbodep.AddItem(aqdep.FieldByName('dep').AsString, nil);
aqdep.next;
end;
end;
aqsta.close;
aqsta.SQL.Clear;
aqsta.SQL.Text := 'select * from stainfo where id=' + IntToStr(id);
aqsta.Open;
try
if FileExists(ExtractFilePath(Application.ExeName) + 'images\' + aqsta.FieldByName('image').AsString) then
imgi.Picture.LoadFromFile(ExtractFilePath(Application.ExeName) + 'images\' + aqsta.FieldByName('image').AsString)
else
imgi.Picture.LoadFromFile(ExtractFilePath(Application.ExeName) + 'images\imgd.jpg');
except
end;
aqsta.Refresh;
end;
procedure TfrmStainfo.tsexperShow(Sender: TObject);
begin
FreeTSfami;
FreeTSap;
FreeTStrain;
if btnDelete.Caption = '取 消' then btnDeleteClick(nil);
if (tvper.Selected.HasChildren) or (tvper.Selected.Data = nil) then
btnAppend.Enabled := false
else
btnAppend.Enabled := true;
dedtsdate.SetFocus;
aqo.close;
aqo.SQL.Clear;
aqo.SQL.Text := 'select * from wexper where sid=' + IntToStr(id);
aqo.Open;
dbgexper.DataSource := dso;
dedtsdate.DataSource := dso;
dedtsdate.DataField := 'sdate';
dedtedate.DataSource := dso;
dedtedate.DataField := 'edate';
dedtcom.DataSource := dso;
dedtcom.DataField := 'company';
dedtdep.DataSource := dso;
dedtdep.DataField := 'dep';
dedtdutyd.DataSource := dso;
dedtdutyd.DataField := 'duty';
end;
procedure TfrmStainfo.tsfamiShow(Sender: TObject);
begin
FreeTSexper;
FreeTSap;
FreeTStrain;
if btnDelete.Caption = '取 消' then btnDeleteClick(nil);
if (tvper.Selected.HasChildren) or (tvper.Selected.Data = nil) then
btnAppend.Enabled := false
else
btnAppend.Enabled := true;
dbename.SetFocus;
aqo.close;
aqo.SQL.Clear;
aqo.SQL.Text := 'select * from family where sid=' + IntToStr(id);
aqo.Open;
dbgfami.DataSource := dso;
dbename.DataSource := dso;
dbename.DataField := 'name';
dbcfami.DataSource := dso;
dbcfami.DataField := 'fami';
dbetel.DataSource := dso;
dbetel.DataField := 'tel';
dbecom.DataSource := dso;
dbecom.DataField := 'com';
dbedes.DataSource := dso;
dbedes.DataField := 'des';
end;
procedure TfrmStainfo.tsapShow(Sender: TObject);
begin
FreeTSexper;
FreeTSfami;
FreeTStrain;
if btnDelete.Caption = '取 消' then btnDeleteClick(nil);
if (tvper.Selected.HasChildren) or (tvper.Selected.Data = nil) then
btnAppend.Enabled := false
else
btnAppend.Enabled := true;
dbcsort.SetFocus;
aqo.close;
aqo.SQL.Clear;
aqo.SQL.Text := 'select * from aandp where sid=' + IntToStr(id);
aqo.Open;
dbgap.DataSource := dso;
dbcsort.DataSource := dso;
dbcsort.DataField := 'sort';
dbetopic.DataSource := dso;
dbetopic.DataField := 'topic';
dbeddep.DataSource := dso;
dbeddep.DataField := 'dep';
dbedate.DataSource := dso;
dbedate.DataField := 'mdate';
dbmdes.DataSource := dso;
dbmdes.DataField := 'des';
end;
procedure TfrmStainfo.tstrainShow(Sender: TObject);
begin
FreeTSexper;
FreeTSfami;
FreeTSap;
if btnDelete.Caption = '取 消' then btnDeleteClick(nil);
if (tvper.Selected.HasChildren) or (tvper.Selected.Data = nil) then
btnAppend.Enabled := false
else
btnAppend.Enabled := true;
dbecourse.SetFocus;
aqo.close;
aqo.SQL.Clear;
aqo.SQL.Text := 'select * from train where sid=' + IntToStr(id);
aqo.Open;
dbgtrain.DataSource := dso;
dbecourse.DataSource := dso;
dbecourse.DataField := 'course';
dbedlimit.DataSource := dso;
dbedlimit.DataField := 'dlimit';
dbestdate.DataSource := dso;
dbestdate.DataField := 'sdate';
dbeenddate.DataSource := dso;
dbeenddate.DataField := 'edate';
dbetrcom.DataSource := dso;
dbetrcom.DataField := 'trcom';
dbecerti.DataSource := dso;
dbecerti.DataField := 'certi';
end;
procedure TfrmStainfo.dedtsdateEnter(Sender: TObject);
begin
if (dedtsdate.Text <> '') or (btnAppend.Caption = '提 交') then dedtsdate.ReadOnly := false;
end;
procedure TfrmStainfo.dbenameEnter(Sender: TObject);
begin
if (dbename.Text <> '') or (btnAppend.Caption = '提 交') then dbename.ReadOnly := false;
end;
procedure TfrmStainfo.dbcsortEnter(Sender: TObject);
begin
if (dbcsort.Text <> '') or (btnAppend.Caption = '提 交') then dbcsort.ReadOnly := false;
end;
procedure TfrmStainfo.dbecourseEnter(Sender: TObject);
begin
if (dbecourse.Text <> '') or (btnAppend.Caption = '提 交') then dbecourse.ReadOnly := false;
end;
procedure TfrmStainfo.FormResize(Sender: TObject);
begin
if self.WindowState = wsNormal then
begin
end;
end;
procedure TfrmStainfo.btneditiClick(Sender: TObject);
var
aqimg: TADOQuery;
imgstr, path: string;
begin
if odimg.Execute then
begin
imgstr := ExtractFileName(odimg.FileName);
path := ExtractFilePath(Application.ExeName);
if not FileExists(path + 'images\' + imgstr) then
begin
aqimg := TADOQuery.Create(nil);
aqimg.Connection := dmper.acper;
aqimg.Close;
aqimg.sql.Clear;
aqimg.SQL.Text := 'select image from stainfo where id=' + IntToStr(id);
aqimg.open;
if FileExists(path + 'images\' + aqimg.Fieldbyname('image').AsString) then
DeleteFile(path + 'images\' + aqimg.Fieldbyname('image').AsString);
CopyFile(Pchar(odimg.FileName), pchar(path + 'images\' + imgstr), false);
aqimg.Close;
aqimg.sql.Clear;
aqimg.SQL.Text := 'update stainfo set [image]="' + imgstr + '" where id=' + IntToStr(id);
aqimg.ExecSQL;
MessageBox(handle, '照片更新成功!', '提示', mb_IconWarning + mb_Ok);
imgi.Picture.LoadFromFile(path + 'images\' + imgstr);
FreeAndNil(aqimg);
end
else
begin
MessageBox(handle, '此照片文件名已存在,请改名先!', '提示', mb_IconWarning + mb_Ok);
exit;
end;
end;
end;
procedure TfrmStainfo.btndeliClick(Sender: TObject);
var
aqimg: TADOQuery;
path: string;
begin
if MessageBox(handle, '真的要删除此员工照片吗?', '提示', mb_IconQuestion + mb_OkCancel) = idOk then
begin
path := ExtractFilePath(Application.ExeName);
aqimg := TADOQuery.Create(nil);
aqimg.Connection := dmper.acper;
aqimg.Close;
aqimg.sql.Clear;
aqimg.SQL.Text := 'select image from stainfo where id=' + IntToStr(id);
aqimg.open;
if FileExists(path + 'images\' + aqimg.Fieldbyname('image').AsString) then
begin
deletefile(path + 'images\' + aqimg.Fieldbyname('image').AsString);
MessageBox(handle, '照片删除成功!', '提示', mb_IconWarning + mb_Ok);
imgi.Picture.LoadFromFile(path + 'images\imgd.jpg');
end
else
MessageBox(handle, '没有此员工照片!', '提示', mb_IconWarning + mb_Ok);
end;
end;
procedure TfrmStainfo.pmiDeleteClick(Sender: TObject);
begin
if (not tvper.Selected.HasChildren) and (tvper.Selected.Data <> nil) then
btnDeleteClick(nil)
else
if tvper.Selected.IsFirstNode then
MessageBox(handle, '根节点不能删除!', '提示', mb_IconWarning + mb_Ok)
else
if MessageBox(handle, '要删除此节点么?', '提示', mb_IconQuestion + mb_OkCancel) = idOk then
frmdep.btnDeleteClick(nil);
end;
procedure TfrmStainfo.mnuExpandClick(Sender: TObject);
begin
tvper.FullExpand;
end;
procedure TfrmStainfo.mnuCloseClick(Sender: TObject);
begin
tvper.FullCollapse;
end;
procedure TfrmStainfo.btnCancelClick(Sender: TObject);
begin
FreeTree;
//self.Release;
close;
end;
procedure TfrmStainfo.btnDeleteClick(Sender: TObject);
var
sid: integer;
begin
if pcsta.ActivePageIndex = 0 then
begin
if MessageBox(handle, '真的要删除此员工记录么?', '提示', mb_IconQuestion + mb_OkCancel) = idOk then
if aqsta.Active = true then
begin
sid := tvper.selected.AbsoluteIndex;
aqsta.Delete;
sleep(200);
DrawTree;
if sid - 1 > 0 then
tvper.Selected := tvper.Items[sid - 1]
else if sid < tvper.Items.Count then
tvper.Selected := tvper.Items[sid + 1]
end
else
MessageBox(handle, '还没有记录!', '提示', mb_IconWarning + mb_Ok);
end
else
begin
if MessageBox(handle, '真的要删除此记录么?', '提示', mb_IconQuestion + mb_OkCancel) = idOk then
aqo.Delete;
end;
end;
procedure TfrmStainfo.btnPrintClick(Sender: TObject);
begin
if btnprint.Caption = '打 印' then
begin
MessageBox(self.Handle, '正在制作中!', '提示', mb_IconInformation + mb_Ok);
end
else
begin
aqsta.Cancel;
btnprint.Caption := '打 印';
btnAppend.Caption := '添 加';
btnModify.Visible := true;
btnSearch.Visible := true;
btnPre.Visible := true;
btnNext.Visible := true;
btnDelete.Visible := true;
btnCancel.Visible := true;
end;
end;
procedure TfrmStainfo.btnNextClick(Sender: TObject);
begin
if tvper.Selected.AbsoluteIndex < tvper.Items.Count - 1 then
begin
tvper.Selected := tvper.Items[tvper.Selected.AbsoluteIndex + 1];
if tvper.Selected.Data <> nil then
begin
tvperClick(nil);
tvper.SetFocus;
end
else
btnnextClick(nil);
end;
end;
procedure TfrmStainfo.btnPreClick(Sender: TObject);
begin
if tvper.Selected.AbsoluteIndex > 0 then
begin
tvper.Selected := tvper.Items[tvper.Selected.AbsoluteIndex - 1];
if tvper.Selected.Data <> nil then
begin
tvperClick(nil);
tvper.SetFocus;
end
else
btnPreClick(nil);
end;
end;
procedure TfrmStainfo.btnSearchClick(Sender: TObject);
begin
frmFind.show;
end;
procedure TfrmStainfo.btnAppendClick(Sender: TObject);
var
aqt: TADOQuery;
begin
if btnAppend.Caption = '添 加' then
begin
btnAppend.Caption := '提 交';
btnprint.Caption := '取 消';
btnModify.Visible := false;
btnSearch.Visible := false;
btnPre.Visible := false;
btnNext.Visible := false;
btnDelete.Visible := false;
btnCancel.Visible := false;
if pcsta.ActivePageIndex = 0 then
begin
aqsta.Append;
dedtstano.SetFocus;
end
else
begin
aqo.Append;
if pcsta.ActivePageIndex = 1 then dedtsdate.SetFocus;
if pcsta.ActivePageIndex = 2 then dbename.SetFocus;
if pcsta.ActivePageIndex = 3 then dbcsort.SetFocus;
if pcsta.ActivePageIndex = 4 then dbecourse.SetFocus;
end;
end
else
begin
if pcsta.ActivePageIndex = 0 then
begin
if (trim(dedtstano.Text) <> '') and (trim(dedtname.Text) <> '') and (trim(dcbodep.Text) <> '') then
begin
aqt := TADOQuery.Create(nil);
aqt.Connection := dmper.acper;
aqt.SQL.Text := 'select * from stainfo where stano="' + trim(dedtstano.Text) + '"';
aqt.Open;
if not aqt.Eof then
begin
MessageBox(handle, '此工号已存在,请另输入!', '提示', mb_IconWarning + mb_Ok);
dedtstano.SetFocus;
exit;
end
else
begin
aqsta.FieldByName('ename').AsString := GetEn(dedtname.Text);
aqsta.post;
DrawTree;
aqsta.Append;
end;
aqt.Free;
end
else
begin
MessageBox(handle, '工号和姓名及部门不能为空!', '提示', mb_IconWarning + mb_Ok);
if dedtstano.Text = '' then
dedtstano.SetFocus
else if dedtname.Text = '' then
dedtname.SetFocus
else
dcbodep.SetFocus;
exit;
end;
end
else
begin
if pcsta.ActivePageIndex = 1 then
if (trim(dedtsdate.Text) = '') or (trim(dedtedate.Text) = '') or (trim(dedtcom.Text) = '') then
begin
MessageBox(handle, '开始时间,结束时间和公司不能为空!', '提示', mb_IconWarning + mb_Ok);
if trim(dedtsdate.Text) = '' then
dedtsdate.SetFocus
else if trim(dedtedate.Text) = '' then
dedtedate.SetFocus
else
dedtcom.SetFocus;
exit;
end;
if pcsta.ActivePageIndex = 2 then
if (trim(dbename.Text) = '') or (trim(dbcfami.Text) = '') then
begin
MessageBox(handle, '家庭成员姓名和关系不能为空!', '提示', mb_IconWarning + mb_Ok);
if trim(dbename.Text) = '' then
dbename.SetFocus
else
dbcfami.SetFocus;
exit;
end;
if pcsta.ActivePageIndex = 3 then
if (trim(dbcsort.Text) = '') or (trim(dbetopic.Text) = '') then
begin
MessageBox(handle, '类别和事件不能为空!', '提示', mb_IconWarning + mb_Ok);
if trim(dbcsort.Text) = '' then
dbcsort.SetFocus
else
dbetopic.SetFocus;
exit;
end;
if pcsta.ActivePageIndex = 4 then
if (trim(dbecourse.Text) = '') or (trim(dbedlimit.Text) = '') then
begin
MessageBox(handle, '培训课程和期限不能为空!', '提示', mb_IconWarning + mb_Ok);
if trim(dbecourse.Text) = '' then
dbecourse.SetFocus
else
dbedlimit.SetFocus;
exit;
end;
aqo.FieldByName('sid').AsInteger := id;
aqo.post;
aqo.Append;
end;
end;
end;
procedure TfrmStainfo.btnModifyClick(Sender: TObject);
begin
if pcsta.ActivePageIndex = 0 then
begin
aqsta.Edit;
aqsta.Post;
MessageBox(self.Handle, '信息更新成功!', '提示', mb_IconInformation + mb_Ok);
end
else
begin
aqo.Edit;
aqo.Post;
MessageBox(self.Handle, '信息更新成功!', '提示', mb_IconInformation + mb_Ok);
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -