Newer
Older
GHFX_REFACTOR / Forms / FrmDepartMgr.cs
wxn on 2 Nov 2016 6 KB 提交
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;

using System.Text;
using System.Windows.Forms;
using DevComponents.DotNetBar;
using System.Data.SqlClient;

namespace PipeLine.Forms
{
    public partial class FrmDepartMgr : Office2007Form
    {
        private string currentUser;
        public FrmDepartMgr(string username)
        {
            InitializeComponent();
            currentUser = username;
        }

        private void FrmAddRole_Load(object sender, EventArgs e)
        {
            showUser();
            showPipeLine();
        }
        private void showUser()
        {
            lstDepartment.Items.Clear();
            string sql = "select department from department";
            DataTable dtshowPartment = OledbHelper.ExecuteDataTable(sql);
            foreach (DataRow row in dtshowPartment.Rows)
            {
                lstDepartment.Items.Add(row[0].ToString());
            }
        }
        private void showPipeLine()
        {
            string sql = "select pipeline from pipelineType";
            DataTable dtshowpipeLine = OledbHelper.ExecuteDataTable(sql);
            foreach (DataRow row in dtshowpipeLine.Rows)
            {
                clbDeparts.Items.Add(row[0].ToString());
            }
        }
        private void btnApply_Click(object sender, EventArgs e)
        {
            if (lstDepartment.SelectedItem == null)
            {
                MessageBox.Show("请选择要授权的部门!");
                return;
            }
            string selectedDepartment = lstDepartment.SelectedItem.ToString();
            try
            {
                string sqldel = "delete from de_pipeLine where departmentId = (select id from department where department='" + selectedDepartment + "')";
                OledbHelper.sqlExecuteNonQuery(sqldel);
                for (int i = 0; i < this.clbDeparts.CheckedItems.Count; i++)
                {
                    string checkedDepart = clbDeparts.CheckedItems[i].ToString();
                    string sqldepartmentid = "select id from department where department='" + selectedDepartment + "'";
                    DataTable dtdepartmentid = OledbHelper.ExecuteDataTable(sqldepartmentid);
                    int departmentid =Convert.ToInt32(dtdepartmentid.Rows[0][0]);
                    string sqlpipelineid = "select id from pipelineType where pipeline='" + checkedDepart + "'";
                    DataTable dtpipelineid = OledbHelper.ExecuteDataTable(sqlpipelineid);
                    int pipelineid = Convert.ToInt32(dtpipelineid.Rows[0][0]);
                    string insertpartment = "insert into de_pipeLine(departmentId,pipelineTypeId) values('" + departmentid + "','" + pipelineid + "')";
                    OledbHelper.sqlExecuteNonQuery(insertpartment);
                }
               
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                return;
            }

        }
       
        private void btnCancel_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnSelectAll_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < this.clbDeparts.Items.Count; i++)
            {
                this.clbDeparts.SetItemChecked(i, true);
            }
        }

        private void btnUnCheck_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < this.clbDeparts.Items.Count; i++)
            {
                if (clbDeparts.GetItemChecked(i) == true)
                {
                    this.clbDeparts.SetItemChecked(i, false);
                }
                else
                {
                    this.clbDeparts.SetItemChecked(i, true);
                }
            }
        }

        private void lstDepartment_SelectedValueChanged(object sender, EventArgs e)
        {
            string selectedDepartment = lstDepartment.SelectedItem.ToString();
            string sqlSetPipeLine = "select pipeline from pipeLineType where id in (select pipelineTypeId from de_pipeLine where departmentId =(select id from department where department = '" + selectedDepartment + "'))";
            //查询记录数
            //listDeparts.SelectedItems.Clear();
            for (int i = 0; i < this.clbDeparts.Items.Count; i++)
            {
                this.clbDeparts.SetItemChecked(i, false);
            }
            string department = "";
            DataTable dtdepartment = OledbHelper.ExecuteDataTable(sqlSetPipeLine);
            foreach (DataRow row in dtdepartment.Rows)
            {
                department += row[0].ToString() + ",";
            }
            string[] depart_Split = department.Split(new char[] { ',' });

            for (int i = 0; i < clbDeparts.Items.Count; i++)
            {
                string tempDepart = clbDeparts.Items[i].ToString();
                for (int j = 0; j < depart_Split.Length; j++)
                {
                    if (tempDepart == depart_Split[j] && depart_Split[j] != "")
                    {
                        clbDeparts.SetItemChecked(i, true);
                        continue;
                    }
                }
            }

        }

        private void btnAddPartment_Click(object sender, EventArgs e)
        {
            if (txtNewPartment.Text == "")
            {
                MessageBox.Show("请输入部门名称!");
                return;
            }
            try
            {
                string sql = "insert into department(department) values('" + txtNewPartment.Text.Trim() + "')";
                OledbHelper.sqlExecuteNonQuery(sql);
                showUser();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                return;
            }
        }

        private void btnDelDepartment_Click(object sender, EventArgs e)
        {
            if (lstDepartment.SelectedItem == null)
            {
                MessageBox.Show("请选择要删除的部门!");
                return;
            }
            string delDepartment = lstDepartment.SelectedItem.ToString();
            string sqlDelDepartment = "delete from department where department='"+delDepartment+"'";
            string sqlDeluserDepartment = "delete from user_department where departmentId=(select id from department where department='" + delDepartment + "')";
            string sqlDelDePipelineType = "delete from de_pipeLine where departmentId =(select id from department where department='" + delDepartment + "')";
            try
            {
                OledbHelper.sqlExecuteNonQuery(sqlDelDePipelineType);
                OledbHelper.sqlExecuteNonQuery(sqlDeluserDepartment);
                OledbHelper.sqlExecuteNonQuery(sqlDelDepartment);
                showUser();
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message);
                return;
            }
        }
    }
}