/// <summary> /// 删除 /// </summary> private void btnDelete_Click(object sender, EventArgs e) { if (SelectedNode == null || SelectedNode.Tag == null) { MessageDialog.ShowPromptMessage("请选择需要删除的信息!"); return; } else { View_HR_Dept dept = m_departmentServer.GetDeptByDeptCode(SelectedNode.Tag.ToString()); if (MessageDialog.ShowEnquiryMessage("您是否确定要删除部门 [" + dept.部门名称 + "] 信息?") == DialogResult.Yes) { if (!m_departmentServer.DeleteDeptInfo(dept, out m_error)) { MessageDialog.ShowPromptMessage(m_error); return; } 刷新toolStripButton1_Click(null, null); } else { return; } } }
/// <summary> /// 生成树节点 /// </summary> /// <param name="dept">部门信息</param> /// <returns>返回生成的树节点</returns> TreeNode GenerateTreeNode(View_HR_Dept dept) { TreeNode node = new TreeNode(); node.Name = dept.部门代码; node.Text = string.Format("({0}) {1}", dept.部门代码, dept.部门名称); node.Tag = dept; return(node); }
/// <summary> /// 点击选择按钮 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnSelectField_Click(object sender, EventArgs e) { int index = 0; if (AllUser != null) { m_selectedUser = new List <View_SelectPersonnel>(); foreach (DataGridViewRow item in dataGridView.Rows) { if ((bool)item.Cells["选中"].Value) { View_SelectPersonnel user = (from r in m_lstAllUser where r.员工编号 == item.Cells["员工编号"].Value.ToString() select r).Single(); m_selectedUser.Add(user); } index++; } if (m_selectedUser.Count() == 0) { MessageDialog.ShowPromptMessage("请在【选中】框内勾选人员"); return; } } else if (AllDept != null) { m_selectedDept = new List <View_HR_Dept>(); foreach (DataGridViewRow item in dataGridView.Rows) { if ((bool)item.Cells["选中"].Value) { View_HR_Dept user = (from r in m_lstAllDept where r.部门代码 == item.Cells["部门代码"].Value.ToString() select r).Single(); m_selectedDept.Add(user); } index++; } if (m_selectedDept.Count == index) { m_count = "全部"; } } this.DialogResult = DialogResult.OK; }
/// <summary> /// 修改 /// </summary> private void btnUpdate_Click(object sender, EventArgs e) { if (SelectedNode == null || SelectedNode.Tag == null) { MessageDialog.ShowPromptMessage("请选择需要删除的信息!"); return; } View_HR_Dept viewDept = m_departmentServer.GetDeptByDeptCode(SelectedNode.Tag.ToString()); if (viewDept.部门代码 != txtCode.Text) { MessageDialog.ShowPromptMessage("部门编码不允许修改!"); txtCode.Text = viewDept.部门代码; return; } HR_Dept dept = new HR_Dept(); dept.DeptCode = txtCode.Text; dept.DeptName = txtName.Text; dept.DeptTypeID = m_deptTypes[cmbDeptType.SelectedIndex].TypeID; dept.OrderID = Convert.ToInt32(numOrder.Value); dept.Telephone = txtTelephone.Text; dept.Fax = txtFax.Text; dept.DeleteFlag = false; dept.Remark = txtRemark.Text; dept.Recorder = BasicInfo.LoginID; dept.RecordTime = ServerTime.Time; dept.FatherCode = txtFatherCode.Text.Trim(); if (!m_departmentServer.UpdataDeptInfo(dept, out m_error)) { MessageDialog.ShowErrorMessage(m_error); return; } SelectedNode.Text = string.Format("({0}) {1}", dept.DeptCode, dept.DeptName); SelectedNode.Tag = dept.DeptCode; MessageDialog.ShowPromptMessage("修改成功!"); 刷新toolStripButton1_Click(null, null); }
/// <summary> /// 递归生成树 /// </summary> /// <param name="parent">父节点</param> /// <param name="deptInfo">部门信息</param> void RecursionGenerateTree(TreeNode parent, List <View_HR_Dept> deptInfo) { for (int i = 0; deptInfo.Count > 0; i++) { View_HR_Dept curDept = deptInfo[i]; if ((parent.Tag as View_HR_Dept).部门代码 != curDept.父级编码) { continue; } TreeNode node = GenerateTreeNode(curDept); parent.Nodes.Add(node); if (deptInfo.Count > 0 && deptInfo[0].父级编码 == curDept.部门代码) { RecursionGenerateTree(node, deptInfo); } } }
/// <summary> /// 递归生成树 /// </summary> /// <param name="parent">父节点</param> /// <param name="deptInfo">部门信息</param> void RecursionGenerateTree(TreeNode parent, List <View_HR_Dept> deptInfo) { for (; deptInfo.Count > 0;) { View_HR_Dept curDept = deptInfo[0]; if ((parent.Tag as View_HR_Dept).部门代码 != curDept.父级编码) { break; } TreeNode node = GenerateTreeNode(curDept); parent.Nodes.Add(node); deptInfo.RemoveAt(0); if (deptInfo.Count > 0 && deptInfo[0].父级编码 == curDept.部门代码) { RecursionGenerateTree(node, deptInfo); } } }
/// <summary> /// 通过部门编码删除某一部门 /// </summary> /// <param name="dept">部门信息</param> /// <param name="error">出错时返回错误信息,无错时返回null</param> /// <returns>返回是否成功删除某一部门</returns> public bool DeleteDeptInfo(View_HR_Dept dept, out string error) { try { error = null; DepotManagementDataContext dataContxt = CommentParameter.DepotDataContext; var result = from c in dataContxt.HR_Dept where c.DeptCode == dept.部门代码 select c; if (result.Count() == 1) { HR_Dept deptInfo = result.Single(); var varData = from a in dataContxt.HR_PersonnelArchive where a.Dept == dept.部门代码 && a.PersonnelStatus == 1 select a; if (varData.Count() > 0) { throw new Exception("此部门存在在职人员 无法删除,如需删除请将此部门所属人员调离此部门,再进行删除操作"); } deptInfo.DeleteFlag = true; } dataContxt.SubmitChanges(); return(true); } catch (Exception exce) { error = exce.Message; return(false); } }
/// <summary> /// 刷新树视图 /// </summary> /// <param name="findStore"></param> void RefreshTreeView(IQueryable <View_HR_Dept> findDepartmentBill) { if (findDepartmentBill.Count() == 0) { return; } List <View_HR_Dept> deptInfo = findDepartmentBill.ToList(); for (int i = 0; deptInfo.Count > 0;) { View_HR_Dept curDept = deptInfo[i]; TreeNode node = GenerateTreeNode(curDept); this.treeView1.Nodes[0].Nodes.Add(node); deptInfo.RemoveAt(i); if (deptInfo.Count > 0 && deptInfo[i].父级编码 != "") { RecursionGenerateTree(node, deptInfo); } } }
/// <summary> /// 刷新控件 /// </summary> void RefreshControl() { ClearControl(); if (SelectedNode == null || SelectedNode.Tag == null || SelectedNode.Tag.ToString() == "system") { return; } View_HR_Dept dept = m_departmentServer.GetDeptByDeptCode(SelectedNode.Tag.ToString()); txtCode.Text = dept.部门代码; txtName.Text = dept.部门名称; // 获取部门负责人 IQueryable <View_SelectPersonnel> directorGroup = m_personnerServer.GetDirector(dept.部门代码, "1"); if (directorGroup != null && directorGroup.Count() > 0) { foreach (var item in directorGroup) { cmbPrincipal.Items.Add(item.员工姓名); } cmbPrincipal.SelectedIndex = 0; cmbPrincipal.Tag = directorGroup.ToList(); } // 获取部门主管 directorGroup = null; directorGroup = m_personnerServer.GetDirector(dept.部门代码, "0"); if (directorGroup != null && directorGroup.Count() > 0) { foreach (var item in directorGroup) { cmbDirector.Items.Add(item.员工姓名); } cmbDirector.SelectedIndex = 0; cmbDirector.Tag = directorGroup.ToList(); } // 获取部门分管领导 directorGroup = null; directorGroup = m_personnerServer.GetDirector(dept.部门代码, "2"); if (directorGroup != null && directorGroup.Count() > 0) { foreach (var item in directorGroup) { cmbLeader.Items.Add(item.员工姓名); } cmbLeader.SelectedIndex = 0; cmbLeader.Tag = directorGroup.ToList(); } if (dept.电话 != null) { txtTelephone.Text = dept.电话; } if (dept.真 != null) { txtFax.Text = dept.真; } if (dept.备注 != null) { txtRemark.Text = dept.备注; } cmbDeptType.Text = dept.部门类型; numOrder.Value = dept.排序号; txtFatherCode.Text = dept.父级编码; }