📄 untdptemp.~pas
字号:
frameEmp.tblEmp.FieldByname('USER_ID').asinteger := iMaxEmpid;
frameEmp.tblEmp.FieldByname('DptID').asinteger := iSelectnodeparent;
frameEmp.tblEmp.Post;
SetCtrlStatus([FrameEmp], false);
// frameEmp.tblEmp.EnableControls;
application.MessageBox('增加员工信息保存成功!', Pchar(_sAppTitle), MB_ICONINFORMATION + MB_OK);
bAdd := false;
except
on E: Exception do
begin
ErrorHandler(E, 'TfrmDptEmp.btnOkClick');
Application.MessageBox('增加员工数据表出错!', Pchar(_sAppTitle), MB_ICONERROR + MB_OK);
end;
end;
end;
end;
if bEdit then //判断是否处于修改状态
begin
if frameDpt.Visible then
//修改部门信息
begin
try
if tblEmp.Locate('name', frameDpt.cbxupDptmaneger.text, []) then
frameDpt.tblDpt.FieldByname('upDptmaneger').asinteger := tblEmp.FieldByname('USER_ID').asinteger;
//frameDpt.tblDpt.FieldByname('Dptmaneger').asstring := EmpNametoEmpID(frameDpt.edtDptmaneger.text);
frameDpt.tblDpt.Post;
SetCtrlStatus([frameDpt], false);
application.MessageBox('修改部门信息成功!', Pchar(_sAppTitle), MB_ICONINFORMATION + MB_OK);
bEdit := false;
except
on E: Exception do
begin
ErrorHandler(E, 'TfrmDptEmp.btnOkClick');
Application.MessageBox('修改部门数据表出错!', Pchar(_sAppTitle), MB_ICONERROR + MB_OK);
end;
end;
end
else
//修改员工信息
begin
if sUserName <> frameEmp.dedtUserName.Text then
begin
if (not CheckEmpcode(frameEmp.dedtUserName.Text)) then
begin
if frameEmp.dedtUserName.Text <> '' then application.MessageBox('该员工用户名已被别人使用,请重新输入!', Pchar(_sAppTitle), MB_ICONINFORMATION + MB_OK);
frameEmp.dedtUserName.SetFocus;
exit;
end;
end;
try
{tblEmp.Active:=true;
tblEmp.edit;
// tblEmp.FieldByname('EmpID').asinteger:=iMaxEmpid;
tblEmp.FieldByname('DptID').asstring:=stcEmpDpt.Caption;
tblEmp.FieldByname('Name').asstring:=edtEmpName.Text;
tblEmp.FieldByname('UserName').asstring:=edtEmpCode.text;
tblEmp.FieldByname('Sex').asstring:=edtEmtSex.Text;
if edtEmpdate.Text<>'' then
tblEmp.FieldByname('Birthday').asdatetime:=strtodatetime(edtEmpdate.Text);
tblEmp.FieldByname('HomeAddress').asstring:=edtAdress.Text;
tblEmp.FieldByname('Politics').asstring:=edtpolite.Text;
tblEmp.FieldByname('Marriay').asstring:=edtMarry.Text;
tblEmp.post; }
frameEmp.tblEmp.Post;
SetCtrlStatus([FrameEmp], false);
// frameEmp.tblEmp.EnableControls;
application.MessageBox('修改员工信息成功!', Pchar(_sAppTitle), MB_ICONINFORMATION + MB_OK);
bEdit := false;
except
on E: Exception do
begin
ErrorHandler(E, 'TfrmDptEmp.btnOkClick');
Application.MessageBox('修改人员数据表出错!', Pchar(_sAppTitle), MB_ICONERROR + MB_OK);
end;
end;
end;
end;
bbtnCancel.Enabled := false;
bbtnOk.Enabled := false;
if treeview1.Selected.ImageIndex = 2 then
begin
bbtnAddDpt.Enabled := false;
bbtnAddEmp.Enabled := false;
end
else
begin
bbtnAddDpt.Enabled := true;
bbtnAddEmp.Enabled := true;
end;
bbntDelete.Enabled := true;
bbtnmodify.Enabled := true;
InitAllComboBox;
// pnlTree.Enabled := true;
end;
procedure TfrmDptEmp.bbtnCancelClick(Sender: TObject);
begin
if frameEmp.Visible then
begin
frameEmp.tblEmp.cancel;
SetCtrlStatus([FrameEmp], false);
treeview1.Selected.Text := frameEmp.dedtName.text;
// frameEmp.tblEmp.EnableControls;
end
else
begin
frameDpt.tblDpt.Cancel;
//不是数据库感应控件的取消操作实行手工设置
if frameDpt.tblDpt.Locate('DptID', strtoint(frameDpt.stcDepcode.Caption), []) then
begin
iUpDptmaneger := 0;
sDptmaneger := '';
iUpDptmaneger := frameDpt.tblDpt.FieldByname('upDptmaneger').asinteger;
sDptmaneger := frameDpt.tblDpt.FieldByname('Dptmaneger').asstring;
if (frameEmp.tblEmp.Locate('USER_ID', iUpDptmaneger, [])) and (iUpDptmaneger >= 0) then
frameDpt.cbxupDptmaneger.text := frameEmp.tblEmp.fieldbyname('name').asstring;
//if sDptmaneger<>'' then
// frameDpt.edtDptmaneger.text := EmpIDToEmpName(sDptmaneger)
// else
// frameDpt.edtDptmaneger.text:='';
end;
SetCtrlStatus([frameDpt], false);
treeview1.Selected.Text := frameDpt.dedtDptName.Text;
// frameDpt.tblDpt.EnableControls;
end;
if bAdd then
begin
nodeSelect := treeview1.Selected.Parent;
TreeView1.Items.Delete(TreeView1.Selected);
nodeSelect.Selected := true;
showselectdp(treeview1.Selected);
if treeview1.Selected.ImageIndex = 2 then
nodeselect.Text := frameEmp.dedtName.text
else
nodeselect.Text := frameDpt.dedtDptName.Text;
end;
bbtnCancel.Enabled := false;
bbtnOk.Enabled := false;
if treeview1.Selected.ImageIndex = 2 then
begin
bbtnAddDpt.Enabled := false;
bbtnAddEmp.Enabled := false;
end
else
begin
bbtnAddDpt.Enabled := true;
bbtnAddEmp.Enabled := true;
end;
bbntDelete.Enabled := true;
bbtnmodify.Enabled := true;
bAdd := false;
bEdit := false;
// pnlTree.Enabled := true;
end;
procedure TfrmDptEmp.bbtnExitClick(Sender: TObject);
begin
close;
end;
procedure TfrmDptEmp.SetCtrlStatus(ParentControls: array of TWincontrol;
CtrlEnable: boolean);
var
i, j, k: integer;
parent: TWinControl;
begin
for k := 0 to length(parentControls) - 1 do
begin
parent := parentControls[k];
for i := 0 to parent.ControlCount - 1 do
begin
//TEdit
if parent.controls[i] is TEdit then
TEdit(parent.controls[i]).enabled := CtrlEnable
else if parent.controls[i] is TDBEdit then
TDBEdit(parent.controls[i]).enabled := CtrlEnable
else if parent.controls[i] is TDBMemo then
TDBMemo(parent.controls[i]).enabled := CtrlEnable
else if parent.controls[i] is TDBImage then
TDBImage(parent.controls[i]).enabled := CtrlEnable
else if parent.controls[i] is TComboBox then
TComboBox(parent.controls[i]).enabled := CtrlEnable
else if parent.controls[i] is TDBComboBox then
TDBComboBox(parent.controls[i]).enabled := CtrlEnable;
end;
end;
end;
procedure TfrmDptEmp.fillComboBox(qryname: TQuery; sSql: string;
cmBox: TCustomComboBox; default_value: integer);
var
tmpStr: string;
begin
//先把组合框里的下拉内容删除
cmBox.items.clear;
try
qryname.active := false;
qryname.sql.clear;
qryname.sql.add(sSql);
qryname.active := true;
except
on E: Exception do
begin
ErrorHandler(E, 'Tfrm_YW_Main.fillComboBox');
Application.MessageBox('打开数据表出错!', Pchar(_sAppTitle), MB_ICONERROR + MB_OK);
end;
end;
qryname.first;
//依次从表中特定字段的值取出增加到下拉列表框中的内容
while not qryname.Eof do
begin
tmpStr := qryname.fields[0].asstring;
cmbox.items.add(tmpStr);
qryname.next;
end;
if qryname.RecordCount > 0 then
cmbox.ItemIndex := default_value;
end;
procedure TfrmDptEmp.InitAllComboBox;
begin
fillComboBox(qryDptEmp, 'select DISTINCT Sex from OA where sex<>''''',
frameEmp.dcbxSex, -1);
fillComboBox(qryDptEmp, 'select DISTINCT nation from OA where nation<>''''',
frameEmp.dcbxNation, -1);
end;
procedure TfrmDptEmp.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
var iResult: integer;
begin
if bbtnOk.Enabled then
begin
iResult := application.MessageBox(#13 + ' 确定要保存数据吗?' + #13 + #13, Pchar(_sAppTitle), MB_ICONINFORMATION + MB_YESNOCANCEL);
if iResult = idyes then
bbtnOkClick(nil)
else if iResult = idcancel then
canclose := false
else
exit;
end;
end;
procedure TfrmDptEmp.TreeView1Click(Sender: TObject);
begin
{showselectdp(treeview1.Selected);
if treeview1.Selected.ImageIndex=2 then
begin
bbtnAddDpt.Enabled:=false ;
bbtnAddEmp.Enabled:=false;
end
else
begin
bbtnAddDpt.Enabled:=true;
bbtnAddEmp.Enabled:=true;
end; }
// nodeSelect:=treeview1.Selected;
end;
procedure TfrmDptEmp.FormCreate(Sender: TObject);
begin
//imgPhoto1.Insert(10, _bmpUnitLogoS, nil); //加入用户图标
//
imgPhoto1.Insert(11, _bmpUnitLogoS, nil); //加入用户图标
try
frameDpt.tbldpt.Active := true;
FrameEmp.tblEmp.Active := true;
tblDpt.Active := true;
tblEmp.Active := true;
except
on E: Exception do
begin
ErrorHandler(E, 'TfrmDptEmp.createtreeview');
Application.MessageBox('打开部门或人员数据表出错!', Pchar(_sAppTitle), MB_ICONERROR + MB_OK);
end;
end;
createtreeview;
bAdd := false;
bEdit := false;
ClearCtrl([frameDpt, frameEmp]);
bbtnOk.Enabled := false;
bbtnCancel.Enabled := false;
SetCtrlStatus([frameDpt, FrameEmp], false);
InitAllComboBox;
end;
procedure TfrmDptEmp.TreeView1Change(Sender: TObject; Node: TTreeNode);
begin
if (not bAdd) and (not bEdit) then
begin
showselectdp(treeview1.Selected);
end;
if treeview1.Selected.ImageIndex = 2 then
begin
bbtnAddDpt.Enabled := false;
bbtnAddEmp.Enabled := false;
end
else
begin
bbtnAddDpt.Enabled := true;
bbtnAddEmp.Enabled := true;
end;
nodeSelect := treeview1.Selected;
// bbtnmodify.Enabled:=false;
end;
function TfrmDptEmp.EmpIDToEmpName(sEmpID: string): string;
var
i,j:integer;
sEmpName:string;
begin
sEmpID:=sEmpID+',';
sEmpName:='';
j:=0;
frameEmp.tblEmp.Filtered := false;
frameEmp.tblEmp.Active:=true;
if sEmpID<>',' then
begin
for i:=1 to length(sEmpiD) do
if sEmpID[i]=',' then
begin
if frameEmp.tblEmp.Locate('USER_ID', copy(sEmpID,j+1,i-j-1), []) then
if sEmpName<>'' then
sEmpName:= sEmpName+','+frameEmp.tblEmp.fieldbyname('name').asstring
else
sEmpName:= frameEmp.tblEmp.fieldbyname('name').asstring;
j:=i;
end;
end;
result:=sEmpName;
end;
function TfrmDptEmp.EmpNametoEmpID(sEmpName: string): string;
var
i,j:integer;
sEmpID:string;
begin
sEmpName:=sEmpName+',';
sEmpID:='';
j:=0;
frameEmp.tblEmp.Filtered := false;
frameEmp.tblEmp.Active:=true;
if sEmpName<>',' then
begin
for i:=1 to length(sEmpName) do
if sEmpName[i]=',' then
begin
if frameEmp.tblEmp.Locate('Name', copy(sEmpName,j+1,i-j-1), []) then
if sEmpID<>'' then
sEmpID:= sEmpID+','+frameEmp.tblEmp.fieldbyname('USER_ID').asstring
else
sEmpID:= frameEmp.tblEmp.fieldbyname('USER_ID').asstring;
j:=i;
end;
end;
result:=sEmpID;
end;
procedure TfrmDptEmp.FrameEmpdedtNameChange(Sender: TObject);
begin
FrameEmp.dedtNameChange(Sender);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -