⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 untdptemp.~pas

📁 是分布式粮库程序,是采用Delphi实现的
💻 ~PAS
📖 第 1 页 / 共 4 页
字号:
        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 + -