📄 frmdept.cs
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace HRP.BaseInfo
{
public partial class frmDept : Form
{
public frmDept()
{
InitializeComponent();
}
private SqlDataAdapter sda;
BaseClass.BaseClass baseclass = new HRP.BaseClass.BaseClass();
BaseClass.SqlClass sqlclass = new HRP.BaseClass.SqlClass();
private DataTable tblinfo = new DataTable();
private void frmDept_Load(object sender, EventArgs e)
{
this.sda = sqlclass.sqlsda("SELECT * FROM tb_dept ORDER BY DeptId");
this.sda.Fill(tblinfo);//读入数据
DataTable temptbl = tblinfo.Copy();//将部门表另存一份为temptbl
DataView viewinfo = new DataView(temptbl);
viewinfo.RowFilter = "DeptID = 1";
//将数据集中的所有记录逐个根据他们之间的关系添加到树形表中去
if (viewinfo.Count > 0)
{
foreach (DataRowView myRow in viewinfo)
{
string strdeptName = myRow["DeptName"].ToString().Trim();
//此处是添加第一个节点“首席执行官”
this.trvDept.Nodes.Add(new TreeNode(strdeptName));
//此处初始化参数是第一个节点“首席执行官”,然后该函数会递归添加所有子节点
PopulateTreeView(strdeptName, trvDept.Nodes[0], myRow);
trvDept.SelectedNode = trvDept.Nodes[0]; //选中第一个节点
}
}
}
private void PopulateTreeView(string parentPart, TreeNode parentNode, DataRowView parentRow)
{
string strdeptName = "";
DataTable temptbl = tblinfo.Copy();
DataView viewinfo = new DataView(temptbl);
//筛选获得当前传递过来的节点的子项,并将其添加到树形图中
//判断方法是凡parentIndex等于传递过来的节点的absIndex的,就是该节点的子项
viewinfo.RowFilter = "ParentIndex = '" + parentRow["DeptID"].ToString().Trim() + "'";
//递归的添加每一个节点的所有子节点
foreach (DataRowView myRow in viewinfo)
{
strdeptName = myRow["DeptName"].ToString().Trim();
TreeNode myNode = new TreeNode(strdeptName);
parentNode.Nodes.Add(myNode);
//函数递归调用,将所有节点按顺序添加完毕
PopulateTreeView(strdeptName, myNode, myRow);
}
}
private void tlClose_Click(object sender, EventArgs e)
{
this.Close();
}
//修改部门
private void tlEdit_Click(object sender, EventArgs e)
{
if (baseclass.RepeatName(txtDeptName.Text, "edit"))
{
MessageBox.Show("部门已经存在!");
}
else
{
try
{
baseclass.SqlComDeptEdit(txtDeptName.Text, txtDeptDirector.Text, txtDeptTel.Text, txtDeptID.Text);
this.trvDept.SelectedNode.Text = txtDeptName.Text;
}
catch (Exception express)
{
MessageBox.Show(express.ToString(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
//删除部门
private void tlDelete_Click(object sender, EventArgs e)
{
string deptname = this.txtDeptName.Text.Trim();
if (txtDeptID.Text == "1")
{
MessageBox.Show("此部门不能删除!");
}
else
{
try
{
if (baseclass.InferiorDept(txtDeptID.Text))
{
MessageBox.Show("存在下级部门,不能删除!");
}
else
{
baseclass.SqlComDept(deptname);
this.trvDept.SelectedNode.Remove();
}
}
catch (Exception express)
{
MessageBox.Show(express.ToString(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
//添家同级部门
private void tlAddRoot_Click(object sender, EventArgs e)
{
if (txtParentIndex.Text=="-1")
{
MessageBox.Show("此部门不能添加同级部门!");
return;
}
if (baseclass.RepeatName("新建部门", "add"))
{
MessageBox.Show("部门已经存在!");
}
else
{
try
{
baseclass.SqlComDeptAdd("新建部门", "无主管", "无电话", txtParentIndex.Text);
this.trvDept.SelectedNode.Parent.Nodes.Add("新建部门");
}
catch (Exception express)
{
MessageBox.Show(express.ToString(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
//添家子级部门
private void tlAddChild_Click(object sender, EventArgs e)
{
if (baseclass.RepeatName("新建部门", "add"))
{
MessageBox.Show("部门已经存在!");
}
else
{
try
{
baseclass.SqlComDeptAdd("新建部门", "无主管", "无电话", txtDeptID.Text);
this.trvDept.SelectedNode.Nodes.Add("新建部门");
}
catch (Exception express)
{
MessageBox.Show(express.ToString(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
//选中部门
private void trvDept_AfterSelect(object sender, TreeViewEventArgs e)
{
this.txtDeptName.Text = e.Node.Text.Trim();
DataSet ds = sqlclass.SqlDaAd("select * from tb_Dept where DeptName='" + this.txtDeptName.Text + "'", "tb_Dept");
DataRowView rowview = ds.Tables["tb_Dept"].DefaultView[0];
this.txtDeptDirector.Text = rowview["DeptDirector"].ToString();
this.txtDeptTel.Text = rowview["DeptTel"].ToString();
this.txtDeptID.Text = rowview["DeptID"].ToString();
this.txtParentIndex.Text = rowview["ParentIndex"].ToString();
ds.Dispose();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -