ab56a9bcf7
SVN-Revision: r240
950 lines
36 KiB
C#
950 lines
36 KiB
C#
using DevExpress.XtraEditors.Repository;
|
|
using DevExpress.XtraGrid.Columns;
|
|
using DevExpress.XtraGrid.Views.Grid;
|
|
using DevExpress.XtraTreeList;
|
|
using DevExpress.XtraTreeList.Nodes;
|
|
using Lskj.Business;
|
|
using Lskj.Business.Impl;
|
|
using Lskj.Control;
|
|
using Lskj.Control.Model;
|
|
using Lskj.Core;
|
|
using Lskj.Data;
|
|
using Lskj.Model;
|
|
using Lskj.Util;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Data.SqlClient;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Windows.Forms;
|
|
|
|
namespace Lskj.PubUserTomodule
|
|
{
|
|
public partial class FrmShortcutSettings : BaseForm
|
|
{
|
|
|
|
#region 私有字段
|
|
/// <summary>
|
|
/// 复选框字段名称
|
|
/// </summary>
|
|
private string _checkFieldName = "_check";
|
|
/// <summary>
|
|
/// The _id
|
|
/// </summary>
|
|
private string _id = "_id";
|
|
#endregion
|
|
#region 公有字段
|
|
/// <summary>
|
|
/// 数据源
|
|
/// </summary>
|
|
/// <value>The data source.</value>
|
|
public DataTable DataSource
|
|
{
|
|
get
|
|
{
|
|
return this.AllQuickControlEx.gridControl.DataSourceTable();
|
|
}
|
|
set
|
|
{
|
|
this.AllQuickControlEx.gridControl.DataSource = value;
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 控件类型
|
|
/// </summary>
|
|
/// <value>The type.</value>
|
|
public int IsType { get; set; }
|
|
/// <summary>
|
|
/// 绑定ValueMember
|
|
/// </summary>
|
|
public string ValueMember { get; set; }
|
|
/// <summary>
|
|
/// 隐藏值字段
|
|
/// </summary>
|
|
public string ValueField { get; set; }
|
|
/// <summary>
|
|
/// 显示值字段
|
|
/// </summary>
|
|
public string TextField { get; set; }
|
|
/// <summary>
|
|
/// 备注字段
|
|
/// </summary>
|
|
public string RemarkField = "remark";
|
|
/// <summary>
|
|
/// 数据源
|
|
/// </summary>
|
|
/// <value>The source SQL.</value>
|
|
public string SourceSQL { get; set; }
|
|
/// <summary>
|
|
/// 隐藏值
|
|
/// </summary>
|
|
/// <value>The edit value.</value>
|
|
//public string EditValue { get; set; }
|
|
/// <summary>
|
|
/// 显示值
|
|
/// </summary>
|
|
/// <value>The edit text.</value>
|
|
//public string EditText { get; set; }
|
|
/// <summary>
|
|
/// CurrentOperColumnKey值
|
|
/// </summary>
|
|
/// <value>The data source.</value>
|
|
public string CurrentOperColumnKey = string.Empty;
|
|
/// <summary>
|
|
/// CurrentOperModel值
|
|
/// </summary>
|
|
/// <value>The data source.</value>
|
|
public GridColumnModel CurrentOperModel = null;
|
|
/// <summary>
|
|
/// 配置的关联ModuleCodel值
|
|
/// </summary>
|
|
/// <value>The Union ModuleCodel.</value>
|
|
public string UnionModuleCodel;
|
|
/// <summary>
|
|
/// 左侧树数据
|
|
/// </summary>
|
|
public DataRow LeftRowObj;
|
|
/// <summary>
|
|
/// 系统模块实体对象
|
|
/// </summary>
|
|
/// <value>The system model.</value>
|
|
public ModuleModel SysModel { get; private set; }
|
|
/// <summary>
|
|
/// 分割条位置
|
|
/// </summary>
|
|
public int PositionSplitter;
|
|
/// <summary>
|
|
/// 分割条位置
|
|
/// </summary>
|
|
public int WindowHeight;
|
|
/// <summary>
|
|
/// 选中人员id
|
|
/// </summary>
|
|
public string employeeId;
|
|
/// <summary>
|
|
/// 操作通道
|
|
/// </summary>
|
|
public DataTable OperatingDt;
|
|
/// <summary>
|
|
/// 报表通道
|
|
/// </summary>
|
|
public DataTable ReportDt;
|
|
/// <summary>
|
|
/// 全部的快捷设置
|
|
/// </summary>
|
|
public DataTable AllShortcutSettings;
|
|
/// <summary>
|
|
/// 人员id或者角色id
|
|
/// </summary>
|
|
public string EmployeeID;
|
|
/// <summary>
|
|
///人员 ture 角色 false
|
|
/// </summary>
|
|
public bool Operatorflag;
|
|
|
|
#endregion
|
|
public FrmShortcutSettings(string id, bool oeratorflag)
|
|
{
|
|
EmployeeID = id;
|
|
Operatorflag = oeratorflag;
|
|
InitializeComponent();
|
|
this.AllQuickControlEx.GridView.OptionsBehavior.EditorShowMode = DevExpress.Utils.EditorShowMode.MouseDown;
|
|
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.OnFormClosing);
|
|
|
|
GridDragGrid dragGrid = new GridDragGrid(this.AllQuickControlEx.GridView, this.QuickOperationControlEx.GridView);
|
|
GridDragGrid backdragGrid = new GridDragGrid(this.QuickOperationControlEx.GridView, this.AllQuickControlEx.GridView);
|
|
GridDragGrid dragGridNew = new GridDragGrid(this.AllQuickControlEx.GridView, this.QuickReportFormControlEx.GridView);
|
|
GridDragGrid backdragGridNew = new GridDragGrid(this.QuickReportFormControlEx.GridView, this.AllQuickControlEx.GridView);
|
|
|
|
//加载复选框
|
|
GridDragGrid.GridAddCheckBox(this.AllQuickControlEx.GridView);
|
|
GridDragGrid.GridAddCheckBox(this.QuickOperationControlEx.GridView);
|
|
GridDragGrid.GridAddCheckBox(this.QuickReportFormControlEx.GridView);
|
|
|
|
this.QuickOperationControlEx.GridView.OptionsSelection.EnableAppearanceFocusedCell = false;
|
|
this.QuickReportFormControlEx.GridView.OptionsSelection.EnableAppearanceFocusedCell = false;
|
|
this.Resize += new System.EventHandler(maximization);
|
|
this.splitMain_Right.SplitterMoved += new EventHandler(PositionChange);
|
|
|
|
GetExistingSettings(id);
|
|
InitControls();
|
|
|
|
this.QuickOperationControlEx.GridView.BestFitColumns();//设置根据内容填充列宽
|
|
this.QuickReportFormControlEx.GridView.BestFitColumns();//设置根据内容填充列宽
|
|
this.AllQuickControlEx.GridView.BestFitColumns();//设置根据内容填充列宽
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#region 方法
|
|
|
|
#region 获取选择人员已有的快捷通道设置
|
|
public void GetExistingSettings(string UserId)
|
|
{
|
|
GridColumn treeListColumnName = new GridColumn();
|
|
treeListColumnName.Caption = "系统名称";
|
|
treeListColumnName.FieldName = "DllShowCaption";
|
|
treeListColumnName.MinWidth = 38;
|
|
treeListColumnName.Visible = true;
|
|
treeListColumnName.VisibleIndex = 0;
|
|
treeListColumnName.Width = 300;
|
|
|
|
GridColumn treeListColumnMenuId = new GridColumn();
|
|
treeListColumnMenuId.Caption = "菜单id";
|
|
treeListColumnMenuId.FieldName = "LMenuid";
|
|
treeListColumnMenuId.Visible = true;
|
|
treeListColumnMenuId.VisibleIndex = 1;
|
|
|
|
GridColumn treeListColumnModuleId = new GridColumn();
|
|
treeListColumnModuleId.Caption = "模块编号";
|
|
treeListColumnModuleId.FieldName = "PurviewId";
|
|
treeListColumnModuleId.Visible = true;
|
|
treeListColumnModuleId.VisibleIndex = 1;
|
|
|
|
this.QuickOperationControlEx.GridView.Columns.AddRange(new GridColumn[] {
|
|
treeListColumnName,
|
|
treeListColumnMenuId,
|
|
treeListColumnModuleId
|
|
});
|
|
|
|
this.QuickReportFormControlEx.GridView.Columns.AddRange(new GridColumn[] {
|
|
treeListColumnName,
|
|
treeListColumnMenuId,
|
|
treeListColumnModuleId
|
|
});
|
|
|
|
|
|
if (Operatorflag)
|
|
{
|
|
AllShortcutSettings = MainImpl.newGetGallerysByUserId(UserId);
|
|
}
|
|
else
|
|
{
|
|
try
|
|
{
|
|
string sql = @" Create Table P_RoleShortcut -- 角色快捷通道表
|
|
(
|
|
Id int identity(1,1) primary key, -- 分类ID,主键,自动增长
|
|
EmployeeID int not null, -- 角色编号
|
|
GroupTagid int not null, -- 1为操作 2为报表
|
|
ItemTagid int not null, --
|
|
ObjDll varchar(50) not null, --dll名
|
|
DllShowCaption varchar(50) not null, --模块名字
|
|
LinkModeTag int not null, --cs端为1 手机段为2
|
|
LMenuid int not null, --Menuid
|
|
Lsubsysid int not null, --1级目录id
|
|
orderid int, --cs段默认0
|
|
UrlParams varchar(50), --默认空
|
|
)";
|
|
SqlHelper.ExecuteNonQuery(sql);
|
|
}
|
|
catch { }
|
|
AllShortcutSettings = MainImpl.GetGallerysByRoleId(UserId);
|
|
}
|
|
DataRow[] OperatingDr = AllShortcutSettings.Select("grouptagid=1");
|
|
DataRow[] ReportDr = AllShortcutSettings.Select("grouptagid=2");
|
|
|
|
DataTable OperatingDt = AllShortcutSettings.Clone();
|
|
DataTable ReportDt = AllShortcutSettings.Clone();
|
|
|
|
if (OperatingDr != null && OperatingDr.Length > 0)
|
|
{
|
|
foreach (DataRow row in OperatingDr)
|
|
{
|
|
OperatingDt.ImportRow(row);
|
|
}
|
|
|
|
}
|
|
if (ReportDr != null && ReportDr.Length > 0)
|
|
{
|
|
foreach (DataRow row in ReportDr)
|
|
{
|
|
ReportDt.ImportRow(row);
|
|
}
|
|
|
|
}
|
|
this.QuickOperationControlEx.gridControl.DataSource = OperatingDt;
|
|
this.QuickReportFormControlEx.gridControl.DataSource = ReportDt;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region 上方数据勾选,下方增加
|
|
public void AccessPermissions(DataRow rowItem, string grouptagid)
|
|
{
|
|
DataRow dr = AllShortcutSettings.NewRow();
|
|
dr["LMenuid"] = rowItem["LMenuid"] + "";
|
|
dr["PurviewId"] = rowItem["PurviewId"] + "";
|
|
dr["ObjDll"] = rowItem["DllFilename"] + "";
|
|
dr["DllShowCaption"] = rowItem["DllShowCaption"] + "";
|
|
dr["Lsubsysid"] = (this.PrimaryDirectory.EditValue + "").Split('.')[0];
|
|
dr["GroupTagid"] = grouptagid;
|
|
dr["EmployeeID"] = EmployeeID;
|
|
dr["LinkModeTag"] = "1";
|
|
dr["orderid"] = "0";
|
|
|
|
//数据源如果原本不存在选中行,则增加
|
|
if ((AllShortcutSettings.Rows.Cast<DataRow>().Where(x => x["LMenuid"] + "" == dr["LMenuid"] + "" && x["PurviewId"] + "" == dr["PurviewId"] + "")).Count() == 0)
|
|
{
|
|
this.AllShortcutSettings.Rows.Add(dr);
|
|
if (grouptagid.Equals("1"))
|
|
{
|
|
DataTable QoDt = this.QuickOperationControlEx.gridControl.DataSource as DataTable;
|
|
QoDt.Rows.Add(dr.ItemArray);
|
|
}
|
|
else
|
|
{
|
|
DataTable QrDt = this.QuickReportFormControlEx.gridControl.DataSource as DataTable;
|
|
QrDt.Rows.Add(dr.ItemArray);
|
|
}
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region 下方数据删除,上方取消勾选
|
|
public void RemovePermissions(DataRow rowItem)
|
|
{
|
|
string menuid = rowItem["LMenuid"] + "";
|
|
DataRow[] dr = AllShortcutSettings.Select(string.Format("LMenuid='{0}' and EmployeeID='{1}'", menuid, EmployeeID));
|
|
if (dr.Length == 1)
|
|
{
|
|
AllShortcutSettings.Rows.Remove(dr[0]);
|
|
}
|
|
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region 设置分割条位置
|
|
/// <summary>
|
|
/// <para>说明:设置分割条位置</para>
|
|
/// <para>创建人:王一帆</para>
|
|
/// <para>创建日期:2021-07-21 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
protected void InitlizeSpiltLocation()
|
|
{
|
|
try
|
|
{
|
|
string width = IniHelper.Read(string.Format("base_width_{0}", this.UnionModuleCodel));//通过Key获取Value值
|
|
if (!string.IsNullOrEmpty(width))
|
|
{
|
|
this.splitMain.SplitterPosition = Convert.ToInt32(width);
|
|
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Instance.WriteError(ex);
|
|
MessageUtil.Show(ex);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#region 获取选中行数据
|
|
/// <summary>
|
|
/// <para>说明:获取选中行数据</para>
|
|
/// <para>创建人:王一帆</para>
|
|
/// <para>创建日期:2021-07-20 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
/// <returns>DataRow[].</returns>
|
|
public DataRow[] GetViewFocusedDataRows(GridView gridView)
|
|
{
|
|
int[] rows = gridView.GetSelectedRows();
|
|
DataRow[] dataRows = new DataRow[rows.Length];
|
|
for (int i = 0; i < rows.Length; i++)
|
|
{
|
|
dataRows[i] = gridView.GetDataRow(rows[i]);
|
|
}
|
|
return dataRows;
|
|
}
|
|
#endregion
|
|
#region 刷新左侧树数据
|
|
/// <summary>
|
|
/// 点击二级目录,加载具体模块
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void OnGridLeftGridViewClick(object sender, EventArgs e)
|
|
{
|
|
DataRow mSelectRow = this.gridLeft.GridView.GetFocusedDataRow();
|
|
if (mSelectRow != null)
|
|
{
|
|
string sql = string.Format("select MenuId as LMenuid,MenuCaption as DllShowCaption,PurviewId,subsysid,Menustruct,DllFilename from P_FormMenuConfigTab where subsysid='{0}' and left(menustruct,2)='{1}' and menustruct!='{1}' and useFlag='1' and len(menustruct)=4 ", mSelectRow["subsysid"] + "", mSelectRow["menustruct"] + "");
|
|
DataTable Alldt = SqlHelper.ExecuteDataTable(sql);
|
|
|
|
string menuid = string.Empty;
|
|
string purviewId = string.Empty;
|
|
//DataTable HasBeenSetDt = Alldt.Clone();//已设置快捷通道的模块
|
|
List<string> primaryKeys = new List<string>();
|
|
//DataTable IsNotSetDt = Alldt.Clone();//为设置快捷通道的模块
|
|
for (int i = 0; i < Alldt.Rows.Count; i++)
|
|
{
|
|
menuid = Alldt.Rows[i]["LMenuid"] + "";
|
|
purviewId = Alldt.Rows[i]["purviewId"] + "";
|
|
if (string.IsNullOrWhiteSpace(menuid)) continue;
|
|
|
|
//判断已有的快捷通道设置中是否有当前模块id
|
|
if ((AllShortcutSettings.Rows.Cast<DataRow>().Where(x => x["LMenuid"] + "" == menuid && x["PurviewId"] + "" == purviewId)).Count() > 0)
|
|
{
|
|
//HasBeenSetDt.Rows.Add(Alldt.Rows[i].ItemArray);
|
|
primaryKeys.Add(Alldt.Rows[i]["LMenuid"] + "");
|
|
}
|
|
else
|
|
{
|
|
//IsNotSetDt.Rows.Add(Alldt.Rows[i].ItemArray);
|
|
}
|
|
}
|
|
|
|
//this.AllQuickControlEx.gridControl.DataSource = IsNotSetDt;
|
|
this.AllQuickControlEx.gridControl.DataSource = Alldt;
|
|
for (int i = 0; i < Alldt.Rows.Count; i++)
|
|
{
|
|
if (primaryKeys.Contains(Alldt.Rows[i]["LMenuid"] + "")) this.AllQuickControlEx.GridView.SelectRow(i);
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
#endregion
|
|
#region 创建界面
|
|
/// <summary>
|
|
/// <para>说明:创建界面</para>
|
|
/// <para>创建人:王一帆</para>
|
|
/// <para>创建日期:2021-07-21 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
/// <param name="menuCode">The menu code.</param>
|
|
public void InitControls()
|
|
{
|
|
|
|
//this.gcDetail.OptionsView.ColumnAutoWidth = true;
|
|
//this.gcMain.OptionsView.ColumnAutoWidth = true;
|
|
PositionSplitter = this.splitMain_Right.SplitterPosition;
|
|
WindowHeight = this.Height;
|
|
//this.pl_left_top.Visible = false;
|
|
this.gridLeft.Visible = true;
|
|
this.treeLeft.Visible = false;
|
|
this.InitlizeSpiltLocation();//设置分割条位置
|
|
|
|
|
|
|
|
GridColumn treeListColumnName = new GridColumn();
|
|
treeListColumnName.Caption = "系统名称";
|
|
treeListColumnName.FieldName = "DllShowCaption";
|
|
treeListColumnName.MinWidth = 38;
|
|
treeListColumnName.Visible = true;
|
|
treeListColumnName.VisibleIndex = 0;
|
|
treeListColumnName.Width = 300;
|
|
|
|
GridColumn treeListColumnMenuId = new GridColumn();
|
|
treeListColumnMenuId.Caption = "菜单id";
|
|
treeListColumnMenuId.FieldName = "LMenuid";
|
|
treeListColumnMenuId.Visible = true;
|
|
treeListColumnMenuId.VisibleIndex = 1;
|
|
|
|
GridColumn treeListColumnModuleId = new GridColumn();
|
|
treeListColumnModuleId.Caption = "模块编号";
|
|
treeListColumnModuleId.FieldName = "PurviewId";
|
|
treeListColumnModuleId.Visible = true;
|
|
treeListColumnModuleId.VisibleIndex = 1;
|
|
|
|
|
|
|
|
this.AllQuickControlEx.GridView.Columns.AddRange(new GridColumn[] {
|
|
treeListColumnName,
|
|
treeListColumnMenuId,
|
|
treeListColumnModuleId
|
|
});
|
|
|
|
|
|
|
|
//SetExistingPermissions(); //设置已有权限
|
|
//this.SetLeftTreeView();//设置左侧树数据
|
|
|
|
|
|
|
|
this.SettingOperation.Click += new EventHandler(OnSettingOperationRightsClick);
|
|
this.SettingReport.Click += new EventHandler(OnSettingReportClick);
|
|
|
|
this.SetRemovePermissions.Click += new EventHandler(OnRemovePermissionsClick);
|
|
this.SetRemovePermissions.Click += new EventHandler(OnRemovePermissionsClick2);
|
|
this.btnOk.Click += new EventHandler(OnbtnOkClick);
|
|
this.btnCancel.Click += new EventHandler(btnCancel_Click);
|
|
|
|
SetLevelOneDirectory();
|
|
this.PrimaryDirectory.SelectedValueChanged += new EventHandler(PrimaryDirectoryValueChanged);
|
|
this.gridLeft.GridView.Click += new EventHandler(OnGridLeftGridViewClick);
|
|
this.PrimaryDirectory.SelectedIndex = 0;
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 改变一级目录,加载对应的二级目录
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void PrimaryDirectoryValueChanged(object sender, EventArgs e)
|
|
{
|
|
string text = (this.PrimaryDirectory.EditValue + "").Split('.')[0];
|
|
DataTable dt = SqlHelper.ExecuteDataTable(string.Format("select * from P_FormMenuConfigTab where len(menustruct)=2 and useFlag=1 and subsysid='{0}' order by menustruct", text));
|
|
if (dt.Rows.Count > 0)
|
|
{
|
|
this.gridLeft.gridControl.DataSource = dt;
|
|
this.gridLeft.GridView.SelectRowHandler(0);
|
|
OnGridLeftGridViewClick(null, null);
|
|
}
|
|
else
|
|
{
|
|
this.gridLeft.gridControl.DataSource = null;
|
|
this.AllQuickControlEx.gridControl.DataSource = null;
|
|
this.QuickOperationControlEx.gridControl.DataSource = null;
|
|
this.QuickReportFormControlEx.gridControl.DataSource = null;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 设置一级目录,创建二级目录的表格列
|
|
/// </summary>
|
|
protected void SetLevelOneDirectory()
|
|
{
|
|
//获取一级目录
|
|
DataTable treeTable = SqlHelper.ExecuteDataTable("select subsysid,subsysname from P_SubSystemTab where useed=1");
|
|
string text = string.Empty;
|
|
foreach (DataRow dr in treeTable.Rows)
|
|
{
|
|
text = string.Empty;
|
|
text = dr["subsysid"] + "." + dr["subsysname"];
|
|
PrimaryDirectory.Properties.Items.Add(text);
|
|
}
|
|
|
|
//二级目录列
|
|
//GridColumn subsysidColumn = new GridColumn();
|
|
//subsysidColumn.Caption = "ID";
|
|
//subsysidColumn.FieldName = "SubSysId";
|
|
//subsysidColumn.VisibleIndex = 0;
|
|
|
|
GridColumn MenuIdColumn = new GridColumn();
|
|
MenuIdColumn.Caption = "编号";
|
|
MenuIdColumn.FieldName = "MenuId";
|
|
MenuIdColumn.VisibleIndex = 1;
|
|
|
|
GridColumn MenuStructColumn = new GridColumn();
|
|
MenuStructColumn.Caption = "菜单号";
|
|
MenuStructColumn.FieldName = "MenuStruct";
|
|
MenuStructColumn.VisibleIndex = 2;
|
|
|
|
GridColumn MenuCaptionColumn = new GridColumn();
|
|
MenuCaptionColumn.Caption = "菜单名称";
|
|
MenuCaptionColumn.FieldName = "MenuCaption";
|
|
MenuCaptionColumn.VisibleIndex = 3;
|
|
|
|
|
|
this.gridLeft.GridView.Columns.AddRange(new GridColumn[] {
|
|
//subsysidColumn,
|
|
MenuIdColumn,
|
|
MenuStructColumn,
|
|
MenuCaptionColumn
|
|
});
|
|
}
|
|
|
|
#endregion
|
|
#region 子节点状态改变时
|
|
/// <summary>
|
|
/// <para>说明:子节点状态改变时</para>
|
|
/// <para>创建人:王一帆</para>
|
|
/// <para>创建日期:2021-09-22 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
/// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
|
|
private void SetCheckedChildNodes(TreeListNode node, CheckState check)
|
|
{
|
|
for (int i = 0; i < node.Nodes.Count; i++)
|
|
{
|
|
node.Nodes[i].CheckState = check;
|
|
SetCheckedChildNodes(node.Nodes[i], check);
|
|
}
|
|
}
|
|
#endregion
|
|
#region 父节点状态改变时
|
|
/// <summary>
|
|
/// <para>说明:父节点状态改变时</para>
|
|
/// <para>创建人:王一帆</para>
|
|
/// <para>创建日期:2021-09-22 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
/// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
|
|
private void SetCheckedParentNodes(TreeListNode node, CheckState check)
|
|
{
|
|
if (node.ParentNode != null)
|
|
{
|
|
bool b = false;
|
|
CheckState state;
|
|
for (int i = 0; i < node.ParentNode.Nodes.Count; i++)
|
|
{
|
|
state = (CheckState)node.ParentNode.Nodes[i].CheckState;
|
|
if (!check.Equals(state))
|
|
{
|
|
b = !b;
|
|
break;
|
|
}
|
|
}
|
|
node.ParentNode.CheckState = b ? CheckState.Indeterminate : check;
|
|
SetCheckedParentNodes(node.ParentNode, check);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region 事件
|
|
#region 设置按钮点击事件
|
|
//设置操作快捷通道按钮点击事件
|
|
private void OnSettingOperationRightsClick(object sender, EventArgs e)
|
|
{
|
|
|
|
int[] rowNumbers = this.AllQuickControlEx.GridView.GetSelectedRows();
|
|
List<DataRow> addRows = new List<DataRow>();
|
|
foreach (int rowIndex in rowNumbers)
|
|
{
|
|
DataRow rowItem = this.AllQuickControlEx.GridView.GetDataRow(rowIndex);
|
|
addRows.Add(rowItem);
|
|
}
|
|
foreach (DataRow dr in addRows)
|
|
{
|
|
AccessPermissions(dr, "1");
|
|
}
|
|
}
|
|
// 设置报表快捷通道按钮点击事件
|
|
private void OnSettingReportClick(object sender, EventArgs e)
|
|
{
|
|
int[] rowNumbers = this.AllQuickControlEx.GridView.GetSelectedRows();
|
|
List<DataRow> addRows = new List<DataRow>();
|
|
foreach (int rowIndex in rowNumbers)
|
|
{
|
|
DataRow rowItem = this.AllQuickControlEx.GridView.GetDataRow(rowIndex);
|
|
addRows.Add(rowItem);
|
|
}
|
|
foreach (DataRow dr in addRows)
|
|
{
|
|
AccessPermissions(dr, "2");
|
|
}
|
|
|
|
|
|
}
|
|
|
|
//删除权限 QuickOperationControlEx表
|
|
private void OnRemovePermissionsClick(object sender, EventArgs e)
|
|
{
|
|
int[] rowNumbers = this.QuickOperationControlEx.GridView.GetSelectedRows();
|
|
if (rowNumbers.Length == 0) return;
|
|
List<DataRow> deleteRows = new List<DataRow>();
|
|
List<string> primaryKeys = new List<string>();
|
|
|
|
foreach (int rowIndex in rowNumbers)
|
|
{
|
|
DataRow rowItem = this.QuickOperationControlEx.GridView.GetDataRow(rowIndex);
|
|
deleteRows.Add(rowItem);
|
|
primaryKeys.Add(rowItem["LMenuid"] + "");
|
|
}
|
|
|
|
DataTable gcDetailDt = this.QuickOperationControlEx.gridControl.DataSource as DataTable;
|
|
foreach (DataRow dr in deleteRows)
|
|
{
|
|
RemovePermissions(dr);
|
|
gcDetailDt.Rows.Remove(dr);
|
|
}
|
|
|
|
DataTable gcMainDt = this.AllQuickControlEx.gridControl.DataSource as DataTable;
|
|
for (int i = 0; i < gcMainDt.Rows.Count; i++)
|
|
{
|
|
if (primaryKeys.Contains(gcMainDt.Rows[i]["LMenuid"] + "")) this.AllQuickControlEx.GridView.UnselectRow(i);
|
|
}
|
|
}
|
|
|
|
//QuickReportFormControlEx表
|
|
private void OnRemovePermissionsClick2(object sender, EventArgs e)
|
|
{
|
|
int[] rowNumbers = this.QuickReportFormControlEx.GridView.GetSelectedRows();
|
|
if (rowNumbers.Length == 0) return;
|
|
List<DataRow> deleteRows = new List<DataRow>();
|
|
List<string> primaryKeys = new List<string>();
|
|
|
|
foreach (int rowIndex in rowNumbers)
|
|
{
|
|
DataRow rowItem = this.QuickReportFormControlEx.GridView.GetDataRow(rowIndex);
|
|
deleteRows.Add(rowItem);
|
|
primaryKeys.Add(rowItem["LMenuid"] + "");
|
|
}
|
|
|
|
DataTable gcDetailDt = this.QuickReportFormControlEx.gridControl.DataSource as DataTable;
|
|
foreach (DataRow dr in deleteRows)
|
|
{
|
|
RemovePermissions(dr);
|
|
gcDetailDt.Rows.Remove(dr);
|
|
}
|
|
|
|
DataTable gcMainDt = this.AllQuickControlEx.gridControl.DataSource as DataTable;
|
|
for (int i = 0; i < gcMainDt.Rows.Count; i++)
|
|
{
|
|
if (primaryKeys.Contains(gcMainDt.Rows[i]["LMenuid"] + "")) this.AllQuickControlEx.GridView.UnselectRow(i);
|
|
}
|
|
}
|
|
|
|
//点击确定按钮
|
|
private void OnbtnOkClick(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
WaitForm.ShowForm(ResourceKeys.DataSaving);
|
|
|
|
string TableName = string.Empty;
|
|
if (Operatorflag)
|
|
{
|
|
TableName = "P_MessageToolLinkDllTab";
|
|
}
|
|
else
|
|
{
|
|
TableName = "P_RoleShortcut";
|
|
}
|
|
string deleteSql = string.Format("delete {0} where EmployeeID='{1}'", TableName, EmployeeID);
|
|
SqlHelper.ExecuteNonQuery(deleteSql);
|
|
|
|
string sql = string.Empty;
|
|
foreach (DataRow dr in AllShortcutSettings.Rows)
|
|
{
|
|
|
|
sql = string.Format(@"insert into {10}(EmployeeID,GroupTagid,ItemTagid,ObjDll,DllShowCaption,LinkModeTag,LMenuid,Lsubsysid,orderid,UrlParams)
|
|
values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}')",
|
|
dr["EmployeeID"], dr["GroupTagid"], dr["ItemTagid"], dr["ObjDll"], dr["DllShowCaption"], dr["LinkModeTag"],
|
|
dr["LMenuid"], dr["Lsubsysid"], dr["orderid"], dr["UrlParams"], TableName);
|
|
SqlHelper.ExecuteNonQuery(sql);
|
|
}
|
|
|
|
//把角色的快捷信息保存到对应的人员中
|
|
if (!Operatorflag)
|
|
{
|
|
//获得角色表对应的全部人员
|
|
DataTable Roledetailed = PowerImpl.GetWorkUsers(EmployeeID);
|
|
|
|
foreach (DataRow RoledetailedDr in Roledetailed.Rows)
|
|
{
|
|
DataTable EmployeesQuicklyDt = MainImpl.newGetGallerysByUserId(RoledetailedDr["员工ID"] + "");
|
|
|
|
deleteSql = string.Format("delete P_MessageToolLinkDllTab where EmployeeID='{0}'",RoledetailedDr["员工ID"]);
|
|
SqlHelper.ExecuteNonQuery(deleteSql);
|
|
foreach (DataRow dr in AllShortcutSettings.Rows)
|
|
{
|
|
sql = string.Format(@"insert into P_MessageToolLinkDllTab(EmployeeID,GroupTagid,ItemTagid,ObjDll,DllShowCaption,LinkModeTag,LMenuid,Lsubsysid,orderid,UrlParams)
|
|
values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}')",
|
|
RoledetailedDr["员工ID"], dr["GroupTagid"], dr["ItemTagid"], dr["ObjDll"], dr["DllShowCaption"], dr["LinkModeTag"],
|
|
dr["LMenuid"], dr["Lsubsysid"], dr["orderid"], dr["UrlParams"]);
|
|
SqlHelper.ExecuteNonQuery(sql);
|
|
}
|
|
foreach (DataRow dr in EmployeesQuicklyDt.Rows)
|
|
{
|
|
//判断是否存在员工独立的快捷设置
|
|
if ((AllShortcutSettings.Rows.Cast<DataRow>().Where(x => x["LMenuid"] + "" == dr["LMenuid"] + "" && x["PurviewId"] + "" == dr["PurviewId"] + "")).Count() == 0)
|
|
{
|
|
sql = string.Format(@"insert into P_MessageToolLinkDllTab(EmployeeID,GroupTagid,ItemTagid,ObjDll,DllShowCaption,LinkModeTag,LMenuid,Lsubsysid,orderid,UrlParams)
|
|
values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}')",
|
|
RoledetailedDr["员工ID"], dr["GroupTagid"], dr["ItemTagid"], dr["ObjDll"], dr["DllShowCaption"], dr["LinkModeTag"],
|
|
dr["LMenuid"], dr["Lsubsysid"], dr["orderid"], dr["UrlParams"]);
|
|
SqlHelper.ExecuteNonQuery(sql);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
//MessageUtil.Show(d" 保存失败");
|
|
}
|
|
finally
|
|
{
|
|
WaitForm.HideForm();
|
|
}
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#region 分割条位置改变
|
|
/// <summary>
|
|
/// <para>说明:分割条位置包含时记录位置</para>
|
|
/// <para>创建人:曹屹峰</para>
|
|
/// <para>创建日期:2021-08-25 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
private void PositionChange(object sender, EventArgs e)
|
|
{
|
|
PositionSplitter = this.splitMain_Right.SplitterPosition;
|
|
}
|
|
#endregion
|
|
#region 窗口大小改变
|
|
/// <summary>
|
|
/// <para>说明:窗口大小改变时改变分割条位置</para>
|
|
/// <para>创建人:曹屹峰</para>
|
|
/// <para>创建日期:2021-08-25 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
private void maximization(object sender, EventArgs e)
|
|
{
|
|
double a = (double)PositionSplitter / (double)WindowHeight;
|
|
this.splitMain_Right.SplitterPosition = Convert.ToInt32(Math.Round((double)this.Height * a));
|
|
WindowHeight = this.Height;
|
|
}
|
|
#endregion
|
|
|
|
|
|
#region 已有权限改变
|
|
/// <summary>
|
|
/// <para>说明:已有权限框内容改变事件</para>
|
|
/// <para>创建人:曹屹峰</para>
|
|
/// <para>创建日期:2022-06-15 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
/// <param name="sender">The source of the event.</param>
|
|
/// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
|
|
//private void gridControlChange(object sender, RowCellClickEventArgs e)
|
|
//{
|
|
// if (this.gcDetail.RowCount == 0) return;
|
|
// //DataRow rowItem = this.gcDetail.GetFocusedDataRow();
|
|
|
|
//}
|
|
#endregion
|
|
#region 关闭时清空唯一键
|
|
/// <summary>
|
|
/// <para>说明:关闭时清空唯一键</para>
|
|
/// <para>创建人:王一帆</para>
|
|
/// <para>创建日期:2021-07-20 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
/// <param name="sender">The source of the event.</param>
|
|
/// <param name="e">The <see cref="PopupMenuShowingEventArgs"/> instance containing the event data.</param>
|
|
private void OnFormClosing(object sender, FormClosingEventArgs e)
|
|
{
|
|
CurrentOperColumnKey = "";
|
|
CurrentOperModel = null;
|
|
}
|
|
#endregion
|
|
|
|
#region 确定
|
|
/// <summary>
|
|
/// <para>说明:确定</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2018-03-20 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
/// <param name="sender">The source of the event.</param>
|
|
/// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
|
|
private void btnOk_Click(object sender, EventArgs e)
|
|
{
|
|
//this.EditValue = string.Empty;
|
|
//this.EditText = string.Empty;
|
|
|
|
DataRow[] rowItems = this.DataSource.Select(_checkFieldName + "=True");
|
|
|
|
//foreach (DataRow item in rowItems)
|
|
//{
|
|
// this.EditValue += item[ValueMember] + ",";
|
|
// this.EditText += item[TextField] + ",";
|
|
//}
|
|
|
|
//this.EditValue = this.EditValue.Trim(',');
|
|
//this.EditText = this.EditText.Trim(',');
|
|
|
|
this.DialogResult = DialogResult.OK;
|
|
this.Close();
|
|
}
|
|
#endregion
|
|
|
|
#region 取消
|
|
/// <summary>
|
|
/// <para>说明:取消</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2018-03-20 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
/// <param name="sender">The source of the event.</param>
|
|
/// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
|
|
private void btnCancel_Click(object sender, EventArgs e)
|
|
{
|
|
this.DialogResult = DialogResult.Cancel;
|
|
}
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
}
|
|
}
|