using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using DevComponents.DotNetBar; namespace Cyberpipe { public partial class FrmRegionRoleMgr : Office2007Form { public FrmRegionRoleMgr() { InitializeComponent(); } /// <summary> /// 窗体初始化事件处理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void FrmRegionRoleMgr_Load(object sender, EventArgs e) { string sql = "select \"id\",\"name\" from casic_region where \"parent\" = -1"; DataTable dt = OledbHelper.QueryTable(sql); if (dt != null && dt.Rows.Count > 0) { foreach(DataRow row in dt.Rows) { TreeNode node = new TreeNode(); node.Text = row[1].ToString().Trim(); node.Tag = row[0].ToString(); treeView2.Nodes[0].Nodes.Add(node); GetChildNode(node); } treeView2.Nodes[0].ExpandAll(); } sql = "select \"id\",\"name\" from casic_role"; DataTable dt1 = OledbHelper.QueryTable(sql); if (dt1 != null && dt1.Rows.Count > 0) { foreach(DataRow row in dt1.Rows) { TreeNode node = new TreeNode(); node.Text = row[1].ToString().Trim(); node.Tag = row[0].ToString(); treeView1.Nodes[0].Nodes.Add(node); } treeView1.Nodes[0].ExpandAll(); } } /// <summary> /// 获取指定节点的子节点 /// </summary> /// <param name="ParentNode"></param> private void GetChildNode(TreeNode ParentNode) { string sql = "select \"id\",\"name\" from casic_region where \"parent\" =" + ParentNode.Tag.ToString(); DataTable dt = OledbHelper.QueryTable(sql); if (dt != null && dt.Rows.Count > 0) { foreach (DataRow row in dt.Rows) { TreeNode node = new TreeNode(); node.Text = row[1].ToString().Trim(); node.Tag = row[0].ToString(); ParentNode.Nodes.Add(node); GetChildNode(node); } } } /// <summary> /// 应用按钮事件处理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void buttonX1_Click(object sender, EventArgs e) { if (treeView2.SelectedNode == null) { MessageBox.Show("请选择部门!"); return; } if (treeView2.SelectedNode.Text == "部门信息") { MessageBox.Show("请选择\"部门信息\"之外的其他节点!"); return; } int checkedItemCount = 0; for (int i = 0; i < treeView1.Nodes[0].Nodes.Count; i++) { if (treeView1.Nodes[0].Nodes[i].Checked) { checkedItemCount++; } } if (checkedItemCount <= 0) { MessageBox.Show("请选择角色!"); return; } try { string sql = "delete from casic_regionrole where reid =" + treeView2.SelectedNode.Tag.ToString(); OledbHelper.sqlExecuteNonQuery(sql); for (int j = 0; j < treeView1.Nodes[0].Nodes.Count; j++) { if (treeView1.Nodes[0].Nodes[j].Checked) { sql = "insert into casic_regionrole(\"rid\",\"reid\") values(" + treeView1.Nodes[0].Nodes[j].Tag.ToString().Trim() + "," + treeView2.SelectedNode.Tag.ToString().Trim() + ")"; OledbHelper.sqlExecuteNonQuery(sql); } } MessageBox.Show("保存成功!"); return; } catch (Exception ex) { LogError.PublishError(ex); } } /// <summary> /// 节点单击事件处理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void treeView2_Click(object sender, EventArgs e) { if (treeView2.SelectedNode != null) { for (int m = 0;m < treeView1.Nodes[0].Nodes.Count; m++) { treeView1.Nodes[0].Nodes[m].Checked = false; } if (treeView2.SelectedNode.Text != "部门信息") { string sql = "select * from casic_regionrole where \"reid\"=" + treeView2.SelectedNode.Tag.ToString(); DataTable dt = OledbHelper.QueryTable(sql); if (dt != null && dt.Rows.Count > 0) { for (int i = 0; i < treeView1.Nodes[0].Nodes.Count; i++) { for (int j = 0; j < dt.Rows.Count; j++) { if (treeView1.Nodes[0].Nodes[i].Tag.ToString() == dt.Rows[j]["rid"].ToString()) { treeView1.Nodes[0].Nodes[i].Checked = true; //treeView1.SelectedNode = treeView1.Nodes[0].Nodes[i]; //treeView1.SelectedNode.NodeFont = new Font("宋体", 9, FontStyle.Bold); //treeView1.SelectedNode.ForeColor = Color.Blue; break; } } } } } } } TreeNode preNode1 = null; private void treeView2_AfterSelect(object sender, TreeViewEventArgs e) { treeView2.SelectedNode = e.Node; TreeNode currentNode = treeView2.SelectedNode; if (currentNode != null) { if (preNode1 != null) { if (preNode1 != currentNode) { preNode1.NodeFont = new Font("宋体", 9, FontStyle.Regular); preNode1.ForeColor = Color.Black; } } currentNode.NodeFont = new Font("宋体", 9, FontStyle.Bold); currentNode.ForeColor = Color.Blue; preNode1 = currentNode; } else { return; } } /// <summary> /// 节点单击事件处理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void treeView2_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) { treeView2.SelectedNode = e.Node; } /// <summary> /// 取消事件处理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void buttonX2_Click(object sender, EventArgs e) { Close(); } } }