using Lskj.Business.Impl; using Lskj.Control; using Lskj.Control.Model; using Lskj.Util; 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; namespace Lskj.PubUserTomodule { public partial class FrmPermissionClassification : BaseForm { /// /// 角色表 /// /// The parent value. public DataTable RoleTable { get { return this.RoleControlEx.gridControl.DataSource as DataTable; } set { this.RoleControlEx.gridControl.DataSource = value; } } /// ///人员表 /// /// The parent value. public DataTable PersonnelTable { get { return this.PeopleControlEx.gridControl.DataSource as DataTable; } set { this.PeopleControlEx.gridControl.DataSource = value; } } /// /// 传入的权限人员 /// public string AuthorizedName { get { return this.textPersonnelList.Text; } set { this.textPersonnelList.Text = value; } } public string Promptinformation { get { return this.groupBox4.Text; } set { this.groupBox4.Text = value; } } public bool SaveRole = false; /// /// 点击确定事件,把当前的选中的名字传出了 /// /// The sender. public event ClickTheOKButton onClickTheOKButton; public delegate void ClickTheOKButton(string Name); public FrmPermissionClassification() { InitializeComponent(); //添加角色,人员表的表格列 InitializeColumns(); //拖拽 InitializeDrag(); InitSpliterPosition(); this.splitMain.SplitterPositionChanged += SplitMain_SplitterPositionChanged; } /// /// 说明:初始化分割条位置 /// 创建人:龚宇超 /// 创建日期:2017-12-15 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// private void InitSpliterPosition() { string spliterPosition = IniHelper.Read(string.Format("FrmPermissionClassification__splitMain{0}", "PubUserTomodule"));; if (!string.IsNullOrEmpty(spliterPosition)) this.splitMain.SplitterPosition = Convert.ToInt32(spliterPosition); } /// /// 分割条改变时 /// /// /// private void SplitMain_SplitterPositionChanged(object sender, EventArgs e) { IniHelper.Write(string.Format("FrmPermissionClassification__splitMain{0}", "PubUserTomodule"), this.splitMain.SplitterPosition + ""); } /// /// 默认绑定列数据 /// private void InitializeColumns() { this.PeopleControlEx.GridView.Columns.AddVisible("员工ID", "员工ID"); this.PeopleControlEx.GridView.Columns.AddVisible("员工工号", "员工工号"); this.PeopleControlEx.GridView.Columns.AddVisible("员工姓名", "员工姓名"); this.PeopleControlEx.GridView.Columns.AddVisible("所属部门", "所属部门"); this.RoleControlEx.GridView.Columns.AddVisible("roleName", "角色"); this.PeopleControlEx.GridView.OptionsBehavior.Editable = false; this.RoleControlEx.GridView.OptionsBehavior.Editable = false; } /// /// 默认绑定拖拽 /// private void InitializeDrag() { //角色,人员拖拽到人员文本框 //角色 GridDragMemo dragMemo = new GridDragMemo(this.RoleControlEx.GridView, this.textPersonnelList); dragMemo.OnDragComplete += DragMemo_OnDragComplete; //人员 GridDragMemo dragMemo2 = new GridDragMemo(this.PeopleControlEx.GridView, this.textPersonnelList); dragMemo2.OnDragComplete += DragMemo_OnDragComplete; } /// /// 角色或人员拖拽到文本 /// /// /// private void DragMemo_OnDragComplete(object sender, GridDragMemoArgs e) { try { if (e.GridViewSelectRows == null || e.GridViewSelectRows.Length == 0) return; string userNames = string.Empty; List texts = textPersonnelList.Text.Split(',').ToList(); int index = this.xtraTabControl2.SelectedTabPageIndex;//0为角色,1为人员 if (index==1) { if (textPersonnelList.Text.Contains("{&")) { textPersonnelList.Text = ""; } //人员 foreach (DataRow item in e.GridViewSelectRows) { if (!texts.Contains(item["员工姓名"] + "")) { userNames += item["员工姓名"] + ","; texts.Add(item["员工姓名"] + ""); } } } else { //角色 foreach (DataRow item in e.GridViewSelectRows) { string id = item["id"] + ""; if (SaveRole) { //直接保存角色(只能保存单个) textPersonnelList.Text = "{&"+item["id"] +","+ item["roleName"]+"&}"; } else { //把角色换成对应人员保存 DataTable Roledetailed = PowerImpl.GetWorkUsers(id); if (Roledetailed != null && Roledetailed.Rows.Count > 0) { foreach (DataRow dr in Roledetailed.Rows) { if (!texts.Contains(dr["员工姓名"] + "")) { userNames += dr["员工姓名"] + ","; texts.Add(dr["员工姓名"] + ""); } } } } } } textPersonnelList.Text += userNames; } catch (Exception ex) { } } private void btnOk_Click(object sender, EventArgs e) { if (onClickTheOKButton != null) onClickTheOKButton(this.textPersonnelList.Text); this.Close(); } } }