基线 SVN r240
SVN-Revision: r240
This commit is contained in:
@@ -0,0 +1,453 @@
|
||||
using DevExpress.XtraEditors.Repository;
|
||||
using DevExpress.XtraTreeList.Columns;
|
||||
using DevExpress.XtraTreeList.Nodes;
|
||||
using Lskj.Business.Impl;
|
||||
using Lskj.Control;
|
||||
using Lskj.Control.Model;
|
||||
using Lskj.Core;
|
||||
using Lskj.Model;
|
||||
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 FrmPermissionToCopy : BaseForm
|
||||
{
|
||||
|
||||
public DynamicPowerModel PubPowerModel;
|
||||
/// <summary>
|
||||
/// 选中行的集合
|
||||
/// </summary>
|
||||
private List<DataRow> rows = new List<DataRow>();
|
||||
public List<string> readPurview = new List<string>();
|
||||
public List<string> editPurview = new List<string>();
|
||||
private List<string> idlist = new List<string>();
|
||||
/// <summary>
|
||||
/// 记录选中角色选中行的行号之后
|
||||
/// </summary>
|
||||
private string rolePositionAfter = string.Empty;
|
||||
/// <summary>
|
||||
/// 记录选中人员选中行的行号之后
|
||||
/// </summary>
|
||||
private string operPositionAfter = string.Empty;
|
||||
/// <summary>
|
||||
/// 记录选中角色选中行的行号之前
|
||||
/// </summary>
|
||||
private string rolePositionBefore = string.Empty;
|
||||
/// <summary>
|
||||
/// 记录选中人员选中行的行号之前
|
||||
/// </summary>
|
||||
private string operPositionBefore = string.Empty;
|
||||
/// <summary>
|
||||
/// 获取左侧选中的名称
|
||||
/// </summary>
|
||||
private string id = string.Empty;
|
||||
/// <summary>
|
||||
/// 获取临时选中的名称
|
||||
/// </summary>
|
||||
private string empid = string.Empty;
|
||||
private bool Operatorflag = false;
|
||||
/// <summary>
|
||||
/// treeList绑定的表
|
||||
/// </summary>
|
||||
DataTable dt = new DataTable();
|
||||
/// <summary>
|
||||
/// 角色表
|
||||
/// </summary>
|
||||
DataTable Roletable = new DataTable();
|
||||
/// <summary>
|
||||
/// 员工表
|
||||
/// </summary>
|
||||
DataTable employeetable = new DataTable();
|
||||
|
||||
|
||||
public FrmPermissionToCopy()
|
||||
{
|
||||
if (DBConfig.Instance.CreateConnection())
|
||||
{
|
||||
InitializeComponent();
|
||||
//InitializeDeps();
|
||||
InitializeColumns();
|
||||
InitializeUsers();
|
||||
creatTreeListControl();
|
||||
BindGridTreeView();
|
||||
this.gridControlEx4.GridView.Click += new EventHandler(OnGridView2Click);//人员表点击
|
||||
this.gridControlEx4.GridView.BestFitColumns();//设置根据内容填充列宽
|
||||
xtraTabControl1_SelectedPageChanged();
|
||||
this.employeeName.TextEdit.EditValueChanged += new EventHandler(OnUserEditValueChanged);
|
||||
this.employeeId.TextEdit.EditValueChanged += new EventHandler(OnUserEditValueChanged);
|
||||
|
||||
//this.department.TextEdit.EditValueChanged += new EventHandler(OnDepEditValueChanged);
|
||||
Lskj.Control.Model.AutoSizeChange.ControllInitializeSize(this);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#region 私有方法
|
||||
|
||||
/// <summary>
|
||||
/// 筛选赋权限表
|
||||
/// </summary>
|
||||
/// <param name="dt"></param>
|
||||
/// <returns></returns>
|
||||
private DataTable GetNewDt(DataTable newdt)
|
||||
{
|
||||
idlist.Clear();
|
||||
string sqlwhere = string.Empty;
|
||||
foreach (DataRow item in newdt.Rows)
|
||||
{
|
||||
idlist.Add(item["员工ID"] + " and ");
|
||||
}
|
||||
foreach (string id in idlist)
|
||||
{
|
||||
sqlwhere = sqlwhere + string.Format("员工ID !={0}", id);
|
||||
}
|
||||
|
||||
sqlwhere = !string.IsNullOrEmpty(sqlwhere) ? sqlwhere.Trim().Substring(0, sqlwhere.Length - 4) : "1=1";
|
||||
newdt = SqlHelper.ExecuteDataTable("select * from P_employeeBaseView where " + sqlwhere);
|
||||
return newdt;
|
||||
}
|
||||
/// <summary>
|
||||
/// <para>说明:获取选中行数据</para>
|
||||
/// <para>创建人:王一帆</para>
|
||||
/// <para>创建日期:2019-09-27 </para>
|
||||
/// <para>修改人:</para>
|
||||
/// <para>修改日期:</para>
|
||||
/// <para>修改备注:</para>
|
||||
/// <para>版本:1.0</para>
|
||||
/// </summary>
|
||||
/// <param name="node">The node.</param>
|
||||
/// <returns>DataRow.</returns>
|
||||
private DataRow GetForcedNodeDataRow(TreeListNode node)
|
||||
{
|
||||
DataRowView dataRowView = this.treeList1.GetDataRecordByNode(node) as DataRowView;
|
||||
return dataRowView != null ? dataRowView.Row : null;
|
||||
}
|
||||
/// <summary>
|
||||
/// 默认绑定列数据
|
||||
/// </summary>
|
||||
private void InitializeColumns()
|
||||
{
|
||||
this.gridControlEx4.GridView.Columns.AddVisible("员工ID", "员工ID");
|
||||
this.gridControlEx4.GridView.Columns.AddVisible("员工工号", "员工工号");
|
||||
this.gridControlEx4.GridView.Columns.AddVisible("员工姓名", "员工姓名");
|
||||
this.gridControlEx4.GridView.Columns.AddVisible("所属部门", "所属部门");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>说明:默认加载表格数据</para>
|
||||
/// <para>创建人:王一帆</para>
|
||||
/// <para>创建日期:2019-09-19 </para>
|
||||
/// <para>修改人:</para>
|
||||
/// <para>修改日期:</para>
|
||||
/// <para>修改备注:</para>
|
||||
/// <para>版本:1.0</para>
|
||||
/// </summary>
|
||||
private void InitializeUsers()
|
||||
{
|
||||
/// <summary>
|
||||
/// 人员和角色绑定的表
|
||||
/// </summary>
|
||||
Roletable = PowerImpl.GetWorkRole("", "");
|
||||
employeetable = PowerImpl.GetWorkEmployee();
|
||||
this.gridControlEx4.GridControl.DataSource = employeetable;
|
||||
}
|
||||
/// <summary>
|
||||
/// 动态创建TreeList的Column,一列为图层名,一列为是否统计列Check控件
|
||||
/// </summary>
|
||||
private void creatTreeListControl()
|
||||
{
|
||||
|
||||
TreeListColumn treeListColumnName = new TreeListColumn();
|
||||
treeListColumnName.Caption = "系统名称";
|
||||
treeListColumnName.FieldName = "Caption";
|
||||
treeListColumnName.MinWidth = 38;
|
||||
treeListColumnName.Visible = true;
|
||||
treeListColumnName.VisibleIndex = 0;
|
||||
treeListColumnName.Width = 400;
|
||||
|
||||
TreeListColumn treeListColumnMenuId = new TreeListColumn();
|
||||
treeListColumnMenuId.Caption = "菜单id";
|
||||
treeListColumnMenuId.FieldName = "MenuId";
|
||||
treeListColumnMenuId.Visible = true;
|
||||
treeListColumnMenuId.VisibleIndex = 1;
|
||||
|
||||
TreeListColumn treeListColumnReadflag = new TreeListColumn();
|
||||
RepositoryItemCheckEdit checkEdit = new RepositoryItemCheckEdit();
|
||||
checkEdit.ValueChecked = 1;
|
||||
checkEdit.ValueUnchecked = 0;
|
||||
checkEdit.ValueGrayed = 3;
|
||||
treeListColumnReadflag.ColumnEdit = checkEdit;
|
||||
treeListColumnReadflag.Caption = "只读权限";
|
||||
treeListColumnReadflag.FieldName = "Readflag";
|
||||
treeListColumnReadflag.Name = "treeListColumnReadflagValue";
|
||||
treeListColumnReadflag.Visible = true;
|
||||
treeListColumnReadflag.VisibleIndex = 2;
|
||||
|
||||
TreeListColumn treeListColumnEditflag = new TreeListColumn();
|
||||
treeListColumnEditflag.ColumnEdit = checkEdit;
|
||||
treeListColumnEditflag.Caption = "操作权限";
|
||||
treeListColumnEditflag.FieldName = "Editflag";
|
||||
treeListColumnEditflag.Name = "treeListColumnEditflagValue";
|
||||
treeListColumnEditflag.Visible = true;
|
||||
treeListColumnEditflag.VisibleIndex = 3;
|
||||
|
||||
this.treeList1.Columns.AddRange(new DevExpress.XtraTreeList.Columns.TreeListColumn[] {
|
||||
treeListColumnName,
|
||||
treeListColumnMenuId,
|
||||
treeListColumnReadflag,
|
||||
treeListColumnEditflag
|
||||
});
|
||||
this.treeList1.Nodes.Clear();
|
||||
this.treeList1.Refresh();
|
||||
}
|
||||
/// <summary>
|
||||
/// <para>说明:绑定表格树结构</para>
|
||||
/// <para>创建人:王一帆</para>
|
||||
/// <para>创建日期:2017-09-04 </para>
|
||||
/// <para>修改人:</para>
|
||||
/// <para>修改日期:</para>
|
||||
/// <para>修改备注:</para>
|
||||
/// <para>版本:1.0</para>
|
||||
/// </summary>
|
||||
/// <param name="treeTable">The tree table.</param>
|
||||
public void BindGridTreeView()
|
||||
{
|
||||
DataTable treeTable = PowerImpl.GetMenuTreeViewData();
|
||||
//节点前显示复选框
|
||||
//this.treeList1.OptionsView.ShowCheckBoxes = true;
|
||||
// this.treeList1.OptionsBehavior.Editable = false;
|
||||
|
||||
dt.Columns.Add("ID");
|
||||
dt.Columns.Add("PARENTID");
|
||||
//(节点编码的名称)
|
||||
dt.Columns.Add("Caption");
|
||||
dt.Columns.Add("MenuId");
|
||||
dt.Columns.Add("Readflag", typeof(int));
|
||||
dt.Columns.Add("Editflag", typeof(int));
|
||||
if (treeTable != null && treeTable.Rows.Count > 0)
|
||||
{
|
||||
List<string> idlist = new List<string>();
|
||||
this.Tag = treeTable.Rows[0];
|
||||
DataColumnCollection dcc = treeTable.Columns;
|
||||
for (int i = 0; i < treeTable.Rows.Count; i++)
|
||||
{
|
||||
DataRow dr = treeTable.Rows[i];
|
||||
DataRow dr1 = dt.NewRow();
|
||||
string tnKey = dr["id"] + "";
|
||||
string tnStr = dr["MenuCaption"] + "";
|
||||
string pKey = dr["parentId"] + "";
|
||||
string MenuId = dr["MenuId"] + "";
|
||||
if (idlist.Contains(tnKey))
|
||||
{
|
||||
tnKey += "re" + i;
|
||||
}
|
||||
dr1["ID"] = tnKey;
|
||||
dr1["PARENTID"] = pKey;
|
||||
dr1["Caption"] = tnStr;
|
||||
dr1["MenuId"] = MenuId;
|
||||
dr1["Readflag"] = 0;
|
||||
dr1["editflag"] = 0;
|
||||
dt.Rows.Add(dr1);
|
||||
idlist.Add(tnKey);
|
||||
}
|
||||
this.treeList1.DataSource = dt;
|
||||
this.treeList1.KeyFieldName = "ID";
|
||||
this.treeList1.ParentFieldName = "PARENTID";
|
||||
//this.treeList1.Columns[0].Caption = "系统名称";
|
||||
//this.treeList1.Columns[0].Width = 500;
|
||||
this.treeList1.Columns[0].OptionsColumn.AllowEdit = false;
|
||||
this.treeList1.Columns[1].Visible = false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>说明:用户值改变后</para>
|
||||
/// <para>创建人:王一帆</para>
|
||||
/// <para>创建日期:2019-06-24 </para>
|
||||
/// <para>修改人:</para>
|
||||
/// <para>修改日期:</para>
|
||||
/// <para>修改备注:</para>
|
||||
/// <para>版本:1.0</para>
|
||||
/// </summary>
|
||||
/// <param name="sender">The sender.</param>
|
||||
/// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
|
||||
void OnUserEditValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
string mc = this.employeeName.EditText;
|
||||
string dc = this.employeeId.EditText;
|
||||
DataTable table = PowerImpl.GetWorkFlowUsers(mc, dc);
|
||||
this.gridControlEx4.gridControl.DataSource = table;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
string Message = ErrorMessage.PromptErrorMessage(ex);
|
||||
MessageUtil.Show(Message, ex.Message);
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// <para>说明:初始化部门数据</para>
|
||||
/// <para>创建人:王一帆</para>
|
||||
/// <para>创建日期:2019-06-24 </para>
|
||||
/// <para>修改人:</para>
|
||||
/// <para>修改日期:</para>
|
||||
/// <para>修改备注:</para>
|
||||
/// <para>版本:1.0</para>
|
||||
/// </summary>
|
||||
//private void InitializeDeps()
|
||||
//{
|
||||
|
||||
// DataTable table = WorkFlowBillImpl.GetDeps();
|
||||
// this.department.ValueMember = "departmentid";
|
||||
// this.department.ValueField = "departmentid";
|
||||
// this.department.TextField = "departmentname";
|
||||
// this.department.SetDataSource(table);
|
||||
//}
|
||||
/// <summary>
|
||||
/// 获取所有选中的集合
|
||||
/// </summary>
|
||||
/// <param name="parentNode"></param>
|
||||
private void GetListKeyID()
|
||||
{
|
||||
editPurview.Clear();
|
||||
readPurview.Clear();
|
||||
DataTable masterdt = (DataTable)treeList1.DataSource;
|
||||
for (int i = 0; i < masterdt.Rows.Count; i++)
|
||||
{
|
||||
if (masterdt.Rows[i]["ID"].ToString().Length > 4 && masterdt.Rows[i]["Editflag"] + "" == "1")
|
||||
{
|
||||
editPurview.Add(masterdt.Rows[i]["MenuId"] + "");
|
||||
}
|
||||
else
|
||||
if (masterdt.Rows[i]["ID"].ToString().Length > 4 && masterdt.Rows[i]["Readflag"] + "" == "1")
|
||||
{
|
||||
readPurview.Add(masterdt.Rows[i]["MenuId"] + "");
|
||||
}
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取选择状态有权限的节点集合
|
||||
/// </summary>
|
||||
/// <param name="parentNode">父级节点</param>
|
||||
private void GetNodeCheckedID(string[] ReadPurview, string[] EditPurview)
|
||||
{
|
||||
rows.Clear();
|
||||
foreach (DataRow item in dt.Rows)
|
||||
{
|
||||
if (ReadPurview.Contains(item["MenuId"] + ""))
|
||||
{
|
||||
item["Readflag"] = "1";
|
||||
}
|
||||
if (EditPurview.Contains(item["MenuId"] + ""))
|
||||
{
|
||||
item["editflag"] = "1";
|
||||
}
|
||||
if (!EditPurview.Contains(item["MenuId"] + ""))
|
||||
{
|
||||
item["editflag"] = "0";
|
||||
}
|
||||
if (!ReadPurview.Contains(item["MenuId"] + ""))
|
||||
{
|
||||
item["Readflag"] = "0";
|
||||
}
|
||||
rows.Add(item);
|
||||
}
|
||||
this.treeList1.DataSource = rows.CopyToDataTable();
|
||||
this.treeList1.CollapseAll();
|
||||
}
|
||||
|
||||
#endregion
|
||||
#region 点击事件
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 单击查询人员表里的数据
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void OnGridView2Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
DataRow mSelectRow = this.gridControlEx4.GridView.GetFocusedDataRow();
|
||||
operPositionAfter = this.gridControlEx4.GridView.FocusedRowHandle.ToString();
|
||||
if (mSelectRow != null)
|
||||
{
|
||||
id = mSelectRow["员工ID"] + "";
|
||||
operPositionBefore = id;
|
||||
Second(id);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
string Message = ErrorMessage.PromptErrorMessage(ex);
|
||||
MessageUtil.Show(Message, ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 点击人员详细信息的方法
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
private void Second(string Secondid)
|
||||
{
|
||||
id = Secondid;
|
||||
// 验证删除存储过程
|
||||
string tipMsg = string.Empty;
|
||||
try
|
||||
{
|
||||
DataSet ds = BaseImpl.getAuthorityByEmpid(1, id, "", "", out tipMsg);
|
||||
string editPurview = ds.Tables.Count > 0 ? ds.Tables[0].Rows[0]["pid"] + "" : string.Empty;
|
||||
string[] EditPurview = editPurview.Trim().TrimEnd(',').Split(',');
|
||||
DataSet ds2 = BaseImpl.getAuthorityByEmpid(2, id, "", "", out tipMsg);
|
||||
string readPurview = ds2.Tables.Count > 0 ? ds2.Tables[0].Rows[0]["pid"] + "" : string.Empty;
|
||||
string[] ReadPurview = readPurview.Trim().TrimEnd(',').Split(',');
|
||||
GetNodeCheckedID(ReadPurview, EditPurview);
|
||||
Operatorflag = true;
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
//MessageUtil.Show("权限表无此人!");
|
||||
this.gridControlEx4.GridView.SelectRowHandler(0);
|
||||
Second("1");
|
||||
string Message = ErrorMessage.PromptErrorMessage(ex);
|
||||
MessageUtil.Show(Message, ex.Message);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 默认选中第一行
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void xtraTabControl1_SelectedPageChanged()
|
||||
{
|
||||
operPositionAfter = string.IsNullOrWhiteSpace(operPositionAfter) ? "0" : operPositionAfter;
|
||||
operPositionBefore = string.IsNullOrWhiteSpace(operPositionBefore) ? employeetable.Rows[0]["员工ID"] + "" : operPositionBefore;
|
||||
this.gridControlEx4.GridView.SelectRowHandler(int.Parse(operPositionAfter));//设置默认选中行
|
||||
Second(operPositionBefore);
|
||||
|
||||
}
|
||||
|
||||
private void btn_determine_Click(object sender, EventArgs e)
|
||||
{
|
||||
GetListKeyID();
|
||||
this.DialogResult = System.Windows.Forms.DialogResult.OK;
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user