📄 ustainfo.pas
字号:
dbeName.SetFocus;
Abort;
end;
UpdateRecord;
end;
ssAP:
begin
if dbSort.Text = '' then
begin
MessageBox(self.Handle, '请选择类别!', '提示', mb_IconInformation + mb_Ok);
dbSort.SetFocus;
Abort;
end;
if deTopic.Text = '' then
begin
MessageBox(self.Handle, '请输入事件!', '提示', mb_IconInformation + mb_Ok);
deTopic.SetFocus;
Abort;
end;
UpdateRecord;
end;
ssTrain:
begin
if deCourse.Text = '' then
begin
MessageBox(self.Handle, '请输入培训课程!', '提示', mb_IconInformation + mb_Ok);
deCourse.SetFocus;
Abort;
end;
if deDLimit.Text = '' then
begin
MessageBox(self.Handle, '请输入培训期限!', '提示', mb_IconInformation + mb_Ok);
deDLimit.SetFocus;
Abort;
end;
UpdateRecord;
end;
end;
end;
procedure TfrmStainfo.FillData;
var
aqFillData: TADOQuery;
i: integer;
begin
dmPer.OpenDep;
aqFillData := dmPer.aqDep;
dcbDep.Clear;
if not aqFillData.Eof then
begin
for i := 0 to aqFillData.RecordCount - 1 do
begin
dcbDep.Items.add(aqFillData.FieldByName('dep').AsString);
aqFillData.Next;
end;
end;
dmPer.OpenSDep;
aqFillData := dmPer.aqSDep;
dcbSDep.Clear;
if not aqFillData.Eof then
begin
for i := 0 to aqFillData.RecordCount - 1 do
begin
dcbSDep.Items.add(aqFillData.FieldByName('sdep').AsString);
aqFillData.Next;
end;
end;
dcbSDep.Items.Insert(0, '[不 限]');
dcbSDep.ItemIndex := 0;
aqFillData := TADOQuery.Create(self);
dmPer.OpenQuery(aqFillData, 'select sname, iflag from oinfo');
with aqFillData do
begin
Filtered := false;
Filter := 'iflag = 1';
Filtered := true;
end;
dcbSort.Items.Clear;
if not aqFillData.Eof then
begin
for i := 0 to aqFillData.RecordCount - 1 do
begin
dcbSort.Items.add(aqFillData.FieldByName('sname').AsString);
aqFillData.Next;
end;
end;
with aqFillData do
begin
Filtered := false;
Filter := 'iflag = 2';
Filtered := true;
end;
dcbCap.Items.Clear;
if not aqFillData.Eof then
begin
for i := 0 to aqFillData.RecordCount - 1 do
begin
dcbCap.Items.add(aqFillData.FieldByName('sname').AsString);
aqFillData.Next;
end;
end;
with aqFillData do
begin
Filtered := false;
Filter := 'iflag = 3';
Filtered := true;
end;
dcbFolk.Items.Clear;
if not aqFillData.Eof then
begin
for i := 0 to aqFillData.RecordCount - 1 do
begin
dcbFolk.Items.add(aqFillData.FieldByName('sname').AsString);
aqFillData.Next;
end;
end;
with aqFillData do
begin
Filtered := false;
Filter := 'iflag = 4';
Filtered := true;
end;
dcbLevel.Items.Clear;
if not aqFillData.Eof then
begin
for i := 0 to aqFillData.RecordCount - 1 do
begin
dcbLevel.Items.add(aqFillData.FieldByName('sname').AsString);
aqFillData.Next;
end;
end;
with aqFillData do
begin
Filtered := false;
Filter := 'iflag = 5';
Filtered := true;
end;
dcbSpecial.Items.Clear;
if not aqFillData.Eof then
begin
for i := 0 to aqFillData.RecordCount - 1 do
begin
dcbSpecial.Items.add(aqFillData.FieldByName('sname').AsString);
aqFillData.Next;
end;
end;
if not dmPer.aqDep.Active then dmPer.OpenDep;
aqStaInfo := dmPer.aqDep;
aqStaInfo.First;
if not aqStaInfo.Eof then
begin
aqStaInfo.First;
dbDep.Clear;
for i := 0 to aqStaInfo.RecordCount - 1 do
begin
dbDep.AddItem(aqStaInfo.FieldByName('dep').AsString, nil);
aqStaInfo.Next;
end;
end;
end;
procedure TfrmStainfo.FormCreate(Sender: TObject);
begin
dmPer.OpenStaInfo;
dmPer.OpenExper;
dmPer.OpenFami;
dmPer.OpenAP;
dmPer.OpenTrain;
FillData;
self.DoubleBuffered := true;
if frmPer.WindowState <> wsMaximized then self.WindowState := wsMaximized;
end;
procedure TfrmStainfo.FormShow(Sender: TObject);
begin
if bStaffBirth then
meoBirth.Visible := true
else
meoBirth.Visible := false;
DrawTree;
dcbDepExit(Sender);
pcsta.ActivePageIndex := 0;
SetState(ssSta, true);
meoBirth.Left := tvPer.Left;
meoBirth.Top := tvPer.Top + tvPer.Height - meoBirth.Height;
meoBirth.Width := tvPer.Width;
end;
procedure TfrmStainfo.tvPerCollapsed(Sender: TObject; Node: TTreeNode);
begin
tvPer.Repaint;
end;
procedure TfrmStainfo.tvPerChange(Sender: TObject; Node: TTreeNode);
begin
if Node.IsFirstNode then
gbPer.Caption := Node.Text
else if (not Node.IsFirstNode) and Node.HasChildren then
gbPer.Caption := '部门: ' + Node.Text
else if not Node.HasChildren then
begin
if Node.Data <> nil then
begin
gbPer.Caption := '员工: ' + Node.Parent.Text + ' --> ' + Node.Text;
ID := Integer(Psid(Node.Data)^.ID);
btnEditi.Enabled := true;
btnDeli.Enabled := true;
case pcSta.ActivePageIndex of
0: tsStainfoShow(Sender);
1: tsExperShow(Sender);
2: tsFamiShow(Sender);
3: tsAPShow(Sender);
4: tstrainShow(Sender);
end;
end
else
begin
btnEditi.Enabled := false;
btnDeli.Enabled := false;
end;
end;
end;
procedure TfrmStainfo.tvPerClick(Sender: TObject);
begin
if tvPer.Selected.Data <> nil then dcbDepExit(Sender);
if not tvPer.Selected.HasChildren then
begin
if tvPer.Selected.Data <> nil then
begin
ID := Integer(Psid(tvPer.Selected.Data)^.ID);
btnEditi.Enabled := true;
btnDeli.Enabled := true;
case pcSta.ActivePageIndex of
0: tsStainfoShow(Sender);
1: tsExperShow(Sender);
2: tsFamiShow(Sender);
3: tsAPShow(Sender);
4: tstrainShow(Sender);
end;
end
else
begin
btnEditi.Enabled := false;
btnDeli.Enabled := false;
end;
end;
if pcSta.ActivePageIndex = 5 then tsStainfo.Show;
end;
//******************************
procedure TfrmStainfo.BeforeShow;
begin
if aqStaInfo.State in [dsEdit, dsInsert] then
begin
aqStaInfo.Cancel;
aqStaInfo.CancelBatch;
end;
end;
procedure TfrmStainfo.AfterShow(aStatType: TSetState);
begin
if aStatType <> ssSta then
begin
aqStaInfo.Filtered := false;
aqStaInfo.Filter := 'sid=' + IntToStr(ID);
aqStaInfo.Filtered := true;
end;
if (btnAdd.Caption = '提 交') and (aqStaInfo.State <> dsInsert) then
begin
aqStaInfo.Append;
SetState(aStatType, false);
Exit;
end
else if (btnAdd.Caption = '确 定') and (aqStaInfo.State <> dsEdit) then
begin
aqStaInfo.Edit;
SetState(aStatType, false);
Exit;
end;
SetState(aStatType, true);
if aqStaInfo.RecordCount = 0 then
btnEdit.Enabled := false
else
btnEdit.Enabled := true;
btnDel.Enabled := btnEdit.Enabled;
end;
procedure TfrmStainfo.tsStainfoShow(Sender: TObject);
begin
BeforeShow;
if not dmPer.aqSta.Active then dmPer.OpenStaInfo;
aqStaInfo := dmPer.aqSta;
if not aqStaInfo.Locate('id', IntToStr(ID), []) then Exit;
if FileExists(sPath + 'images\' + aqStaInfo.FieldByName('image').AsString) then
imgi.Picture.LoadFromFile(sPath + 'images\' + aqStaInfo.FieldByName('image').AsString)
else
imgi.Picture.LoadFromFile(sPath + 'images\imgd.jpg');
aqStaInfo.Refresh;
AfterShow(ssSta);
end;
procedure TfrmStainfo.tsExperShow(Sender: TObject);
begin
BeforeShow;
if not dmPer.aqExper.Active then dmPer.OpenExper;
aqStaInfo := dmPer.aqExper;
AfterShow(ssExper);
end;
procedure TfrmStainfo.tsFamiShow(Sender: TObject);
begin
BeforeShow;
if not dmPer.aqFami.Active then dmPer.OpenFami;
aqStaInfo := dmPer.aqFami;
AfterShow(ssFami);
end;
procedure TfrmStainfo.tsAPShow(Sender: TObject);
begin
BeforeShow;
if not dmPer.aqAP.Active then dmPer.OpenAP;
aqStaInfo := dmPer.aqAP;
AfterShow(ssAP);
end;
procedure TfrmStainfo.tsTrainShow(Sender: TObject);
begin
BeforeShow;
if not dmPer.aqTrain.Active then dmPer.OpenTrain;
aqStaInfo := dmPer.aqTrain;
AfterShow(ssTrain);
end;
procedure TfrmStainfo.tsStatShow(Sender: TObject);
begin
sbDepClick(Sender);
end;
procedure TfrmStainfo.btnEditClick(Sender: TObject);
begin
if pcSta.ActivePageIndex = 5 then
tsStainfo.Show;
btnEdit.Visible := false;
aqStaInfo.Edit;
case pcSta.ActivePageIndex of
0: SetState(ssSta, otEdit);
1: SetState(ssExper, otEdit);
2: SetState(ssFami, otEdit);
3: SetState(ssAP, otEdit);
4: SetState(ssTrain, otEdit);
end;
end;
procedure TfrmStainfo.btnAddClick(Sender: TObject);
begin
if tvPer.Items.Count = 1 then
begin
MessageBox(self.Handle, '请先添加部门!', '提示', mb_IconInformation + mb_Ok);
Exit;
end;
if pcSta.ActivePageIndex = 5 then
tsStainfo.Show;
if btnAdd.Caption = '添 加' then
begin
aqStaInfo.Append;
case pcSta.ActivePageIndex of
0: SetState(ssSta, otAdd);
1: SetState(ssExper, otAdd);
2: SetState(ssFami, otAdd);
3: SetState(ssAP, otAdd);
4: SetState(ssTrain, otAdd);
end;
end
else if btnAdd.Caption = '提 交' then
begin
case pcSta.ActivePageIndex of
0:
begin
AddData(ssSta);
meoBirth.Clear;
meoBirth.Lines.BeginUpdate;
GetBrithStaff(true);
GetBrithStaff(false);
meoBirth.Lines.EndUpdate;
end;
1: AddData(ssExper);
2: AddData(ssFami);
3: AddData(ssAP);
4: AddData(ssTrain);
end;
end
else
begin
case pcSta.ActivePageIndex of
0:
begin
UpdateData(ssSta);
meoBirth.Clear;
meoBirth.Lines.BeginUpdate;
GetBrithStaff(true);
GetBrithStaff(false);
meoBirth.Lines.EndUpdate;
end;
1: UpdateData(ssExper);
2: UpdateData(ssFami);
3: UpdateData(ssAP);
4: UpdateData(ssTrain);
end;
end;
end;
procedure TfrmStainfo.btnInquClick(Sender: TObject);
begin
frmPer.actInquExecute(Sender);
end;
procedure TfrmStainfo.btnPriorClick(Sender: TObject);
begin
if tvPer.Selected.AbsoluteIndex > 0 then
begin
tvPer.Selected := tvPer.Selected.GetPrev;
if tvPer.Selected.Data <> nil then
begin
tvPerClick(Sender);
tvPer.SetFocus;
end
else
btnPriorClick(Sender);
end;
end;
procedure TfrmStainfo.btnNextClick(Sender: TObject);
begin
if tvPer.Selected.AbsoluteIndex < tvPer.Items.Count - 1 then
begin
tvPer.Selected := tvPer.Selected.GetNext;
if tvper.Selected.Data <> nil then
begin
tvPerClick(Sender);
tvPer.SetFocus;
end
else
btnNextClick(Sender);
end;
end;
procedure TfrmStainfo.btnDelClick(Sender: TObject);
var
sid: integer;
begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -