Newer
Older
GHFX_REFACTOR / FrmRegionRoleMgr.cs
wxn on 9 Nov 2016 7 KB 冗余代码整理
using System;
using System.Data;
using System.Drawing;
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;
            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;
                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("保存成功!");
            }
            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;
                    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;
        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
            {
            }
        }      
        /// <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();
        }
    }
}