From 000a69ce15e39f672231ef673ca32e8e2537c0e1 Mon Sep 17 00:00:00 2001 From: cyf Date: Mon, 10 Aug 2026 09:59:46 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9B=B4=E6=96=B0=E4=B8=9A=E5=8A=A1?= =?UTF-8?q?=E3=80=81=E6=8E=A7=E4=BB=B6=E5=8F=8A=E5=8D=95=E6=8D=AE=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 插件库/Lskj.Business/Impl/BaseImpl.cs | 19 +- 插件库/Lskj.Business/Impl/BaseModuleImpl.cs | 128 +++++-- 插件库/Lskj.Business/Impl/BillImpl.cs | 42 ++- 插件库/Lskj.Business/Impl/LogUtil.cs | 40 +- 插件库/Lskj.Business/Impl/SystemInfo.cs | 7 + 插件库/Lskj.Control/FrmWebBrowser2.cs | 21 +- 插件库/Lskj.Control/GridControlEx.cs | 272 ++++++++++---- 插件库/Lskj.Control/Model/GridExtend.cs | 1 + 插件库/Lskj.Control/Model/MyControl.cs | 4 +- 插件库/Lskj.Control/ModuleGridEx.cs | 8 +- 插件库/Lskj.Control/ModulePanelEx.cs | 6 +- .../MultiModelLookUp/FrmModelLookUp.cs | 23 +- .../FrmModelLookUp2.Designer.cs | 27 +- .../MultiModelLookUp/FrmModelLookUp2.cs | 22 +- .../Lskj.Main/Control/MainPanelControlEx.cs | 8 + 插件库/Lskj.Main/FrmLogin.cs | 3 + 插件库/Lskj.Main/Model/Manager.cs | 33 +- 插件库/Lskj.Model/ERPInfo.cs | 6 +- 插件库/Lskj.Model/ModuleModel.cs | 7 +- 插件库/Lskj.PubBill/BillModule.Designer.cs | 13 +- 插件库/Lskj.PubBill/BillModule.cs | 341 ++++++++++++++++-- 插件库/Lskj.PubModule/FrmMain.cs | 47 ++- 插件库/Lskj.PubPower/FrmMain.cs | 3 + 插件库/Lskj.PubSpec/FrmMain.cs | 16 +- 插件库/Lskj.PubSpec2/FrmMain.cs | 34 +- .../Lskj.PubUserTomodule/FrmMain.Designer.cs | 131 +++---- .../FrmShortcutSettings.Designer.cs | 4 + .../PermissionSettings.cs | 10 +- .../PersonnelInformation.Designer.cs | 2 +- 29 files changed, 919 insertions(+), 359 deletions(-) diff --git a/插件库/Lskj.Business/Impl/BaseImpl.cs b/插件库/Lskj.Business/Impl/BaseImpl.cs index 622667a..af2c8f0 100644 --- a/插件库/Lskj.Business/Impl/BaseImpl.cs +++ b/插件库/Lskj.Business/Impl/BaseImpl.cs @@ -290,15 +290,16 @@ namespace Lskj.Business.Impl return 1; } + //2026-08-08 pz说不要判断,工具统一处理 //P_MessageToolLinkDllTab表中cardId=-99为通用模块(右侧快捷通道通用模块),默认有权限 2023-12-4 徐成说的cardId=-99的配置 - string sql = string.Format("select a.*,b.PurviewId,b.MouseOutImg,b.MouseOverImg1 from(" - + " select * from P_MessageToolLinkDllTab where cardId=-99 and ( grouptagid=2 or grouptagid=1) " - + ")a join p_formmenuconfigtab b on a.LMenuId=b.MenuId where LinkModeTag=1 and LMenuid='{1}' order by grouptagid,ItemTagId", ERPInfo.Instance.UserId, menuId); - DataTable table = SqlHelper.ExecuteDataTable(sql); - if (table.Rows.Count > 0) - { - return 1; - } + //string sql = string.Format("select a.*,b.PurviewId,b.MouseOutImg,b.MouseOverImg1 from(" + // + " select * from P_MessageToolLinkDllTab where cardId=-99 and ( grouptagid=2 or grouptagid=1) " + // + ")a join p_formmenuconfigtab b on a.LMenuId=b.MenuId where LinkModeTag=1 and LMenuid='{1}' order by grouptagid,ItemTagId", ERPInfo.Instance.UserId, menuId); + //DataTable table = SqlHelper.ExecuteDataTable(sql); + //if (table.Rows.Count > 0) + //{ + // return 1; + //} if (ERPInfo.Instance.UserName == ERPInfo.Instance.UserManager) return 1; @@ -1234,7 +1235,7 @@ namespace Lskj.Business.Impl public static bool GetOpenRestrictions(string MenuId) { - if (BaseImpl.HasExistsColumn("p_formmenuconfigtab", "SingleOpenMode")) + if (ERPInfo.Instance.SingleOpenMode) { string sqlValue = string.Format("SELECT SingleOpenMode from p_formmenuconfigtab where MenuId='{0}'", MenuId); DataTable dtTable = SqlHelper.ExecuteDataTable(sqlValue); diff --git a/插件库/Lskj.Business/Impl/BaseModuleImpl.cs b/插件库/Lskj.Business/Impl/BaseModuleImpl.cs index 20734a0..57d8de8 100644 --- a/插件库/Lskj.Business/Impl/BaseModuleImpl.cs +++ b/插件库/Lskj.Business/Impl/BaseModuleImpl.cs @@ -1168,26 +1168,86 @@ namespace Lskj.Business.Impl where = " and isnull(menutype,0)=0"; break; } - string sqlTemplate = @"WITH UserRoles AS ( - SELECT r.roleName - FROM p_systemRoleOperSetTab AS ro - JOIN p_systemRoleSetTab AS r ON r.id = ro.roleId - WHERE ro.operatorname = '{0}' - ) - SELECT pm.* - FROM P_systempopupmenu AS pm WITH (NOLOCK) - WHERE ISNULL(pm.visible, 0) = 0 - AND pm.tab = '{1}' - AND ( - ISNULL(pm.privilegeOper, '') = '' - OR CHARINDEX(',' + '{0}' + ',', ',' + pm.privilegeOper + ',') > 0 - OR EXISTS ( - SELECT 1 - FROM UserRoles AS ur - WHERE CHARINDEX('{{&' + ur.roleName + '&}}', pm.privilegeOper) > 0) - ) {2} ORDER BY pm.orderid;"; - string sqlValue = string.Format(sqlTemplate, ERPInfo.Instance.UserName, key, where); - return SqlHelper.ExecuteDataTable(sqlValue); + string sqlValue = string.Format(@"SELECT pm.* + FROM P_systempopupmenu AS pm WITH (NOLOCK) + WHERE ISNULL(pm.visible, 0) = 0 + AND pm.tab = @tab {0} + ORDER BY pm.orderid;", where); + DataTable rightMenuTable = SqlHelper.ExecuteDataTable(sqlValue, + new SqlParameter[] { new SqlParameter("@tab", key) }); + + return FilterRowsByOperatorPrivilege(rightMenuTable, "privilegeOper"); + } + + /// + /// 根据人员或角色权限过滤配置数据,只有存在角色配置时才读取角色表。 + /// + internal static DataTable FilterRowsByOperatorPrivilege(DataTable sourceTable, string privilegeField) + { + if (sourceTable == null || !sourceTable.Columns.Contains(privilegeField)) + { + return sourceTable; + } + + string operatorName = ERPInfo.Instance.UserName; + string operatorToken = "," + operatorName + ","; + List rolePermissionRows = new List(); + HashSet allowedRows = new HashSet(); + foreach (DataRow row in sourceTable.Rows) + { + string privilegeOper = row[privilegeField] + ""; + if (string.IsNullOrWhiteSpace(privilegeOper) || + ("," + privilegeOper + ",").IndexOf(operatorToken, StringComparison.OrdinalIgnoreCase) >= 0) + { + allowedRows.Add(row); + continue; + } + + // 只配置人员且当前人员不匹配时,无需读取角色表。 + if (privilegeOper.IndexOf("{&", StringComparison.Ordinal) >= 0 && + privilegeOper.IndexOf("&}", StringComparison.Ordinal) >= 0) + { + rolePermissionRows.Add(row); + } + } + + if (rolePermissionRows.Count == 0) + { + DataTable resultTable = sourceTable.Clone(); + foreach (DataRow row in sourceTable.Rows) + { + if (allowedRows.Contains(row)) resultTable.ImportRow(row); + } + return resultTable; + } + + string roleSql = @"SELECT r.roleName + FROM p_systemRoleOperSetTab AS ro + JOIN p_systemRoleSetTab AS r ON r.id = ro.roleId + WHERE ro.operatorname = @operatorname"; + DataTable roleTable = SqlHelper.ExecuteDataTable(roleSql, + new SqlParameter[] { new SqlParameter("@operatorname", operatorName) }); + string[] roleTokens = roleTable.Rows.Cast() + .Select(row => row["roleName"] + "") + .Where(roleName => !string.IsNullOrWhiteSpace(roleName)) + .Select(roleName => "{&" + roleName + "&}") + .ToArray(); + + foreach (DataRow row in rolePermissionRows) + { + string privilegeOper = row[privilegeField] + ""; + if (roleTokens.Any(token => privilegeOper.IndexOf(token, StringComparison.OrdinalIgnoreCase) >= 0)) + { + allowedRows.Add(row); + } + } + + DataTable resultTableWithRoles = sourceTable.Clone(); + foreach (DataRow row in sourceTable.Rows) + { + if (allowedRows.Contains(row)) resultTableWithRoles.ImportRow(row); + } + return resultTableWithRoles; } /// /// 获取单个右键菜单 @@ -1401,26 +1461,14 @@ namespace Lskj.Business.Impl { try { - string sqlTemplate = @"WITH UserRoles AS ( - SELECT r.roleName - FROM p_systemRoleOperSetTab AS ro - JOIN p_systemRoleSetTab AS r ON r.id = ro.roleId - WHERE ro.operatorname = '{0}' - ) - SELECT pm.* - FROM p_systemDlltabDetail AS pm WITH (NOLOCK) - WHERE ISNULL(pm.isvisible, 0) = 0 - AND pm.tab = '{1}' - AND ( - ISNULL(pm.privilegeOper, '') = '' - OR CHARINDEX(',' + '{0}' + ',', ',' + pm.privilegeOper + ',') > 0 - OR EXISTS ( - SELECT 1 - FROM UserRoles AS ur - WHERE CHARINDEX('{{&' + ur.roleName + '&}}', pm.privilegeOper) > 0) - ) ORDER BY pm.orderid;"; - string sqlValue = string.Format(sqlTemplate, ERPInfo.Instance.UserName, menuCode); - return SqlHelper.ExecuteDataTable(sqlValue); + string sqlValue = @"SELECT pm.* + FROM p_systemDlltabDetail AS pm WITH (NOLOCK) + WHERE ISNULL(pm.isvisible, 0) = 0 + AND pm.tab = @tab + ORDER BY pm.orderid;"; + DataTable detailPageTable = SqlHelper.ExecuteDataTable(sqlValue, + new SqlParameter[] { new SqlParameter("@tab", menuCode) }); + return FilterRowsByOperatorPrivilege(detailPageTable, "privilegeOper"); } catch (Exception) { diff --git a/插件库/Lskj.Business/Impl/BillImpl.cs b/插件库/Lskj.Business/Impl/BillImpl.cs index 5ce7a09..11b4ce4 100644 --- a/插件库/Lskj.Business/Impl/BillImpl.cs +++ b/插件库/Lskj.Business/Impl/BillImpl.cs @@ -677,33 +677,37 @@ namespace Lskj.Business.Impl conditions = "and isnull(mxflag,0)=0"; } string cond = !string.IsNullOrEmpty(sourceCond) ? string.Format(" and id in ({0})", sourceCond.Trim(',')) : string.Empty; - string sqlValue = string.Format(@"WITH UserRoles AS ( - SELECT r.roleName - FROM p_systemRoleOperSetTab AS ro - JOIN p_systemRoleSetTab AS r ON r.id = ro.roleId - WHERE ro.operatorname = '{0}' - ) - select * from p_systembillsource where typeCode=@typeCode" + cond + - @" and isnull(isVisible,0)=0 and (isnull(viewOper,'')='' or CHARINDEX(',' + '{0}' + ',', ',' + viewOper + ',')>0 OR EXISTS ( - SELECT 1 FROM UserRoles AS ur WHERE CHARINDEX('{{&' + ur.roleName + '&}}', viewOper) > 0)) order by orderid", ERPInfo.Instance.UserName); - string sqlDetail = string.Format(@"WITH UserRoles AS ( - SELECT r.roleName - FROM p_systemRoleOperSetTab AS ro - JOIN p_systemRoleSetTab AS r ON r.id = ro.roleId - WHERE ro.operatorname = '{1}' - ) - SELECT id,sourceId,fieldName,sysName,userName,orderid,isVisible,sourceKey,privilegeView,DataFormat,isSum,ifmerge,{2} + string sqlValue = @"select * from p_systembillsource + where typeCode=@typeCode" + cond + @" + and isnull(isVisible,0)=0 + order by orderid"; + DataTable sourceTable = SqlHelper.ExecuteDataTable(sqlValue, + new SqlParameter[] { new SqlParameter("@typeCode", menuCode) }); + sourceTable = BaseModuleImpl.FilterRowsByOperatorPrivilege(sourceTable, "viewOper"); + htTable["master"] = sourceTable; + + string sqlDetail = string.Format(@"SELECT id,sourceId,fieldName,sysName,userName,orderid,isVisible,sourceKey,privilegeView,DataFormat,isSum,ifmerge,{2} isnull(CASE WHEN isVisible=1 OR (ISNULL(b.userList,'')='' AND ISNULL(a.PrivilegeView,'')<>'') THEN 0 ELSE width END,0) width FROM p_systembillsourcedetail a LEFT JOIN ( SELECT userList,privTypeId from p_systemPrivilege b where modId = '{0}' AND CHARINDEX(',' + '{1}' + ',', ',' + userList + ',') > 0 ) b on CHARINDEX(',' + CAST(b.privTypeId AS VARCHAR(5)) + ',',',' + PrivilegeView + ',') > 0 - where sourceId in (select id from p_systembillsource where typeCode=@typeCode" + cond + @" and isnull(isVisible,0)=0 and (isnull(viewOper,'')='' or CHARINDEX(',' + '{1}' + ',', ',' + viewOper + ',')>0) OR EXISTS ( - SELECT 1 FROM UserRoles AS ur WHERE CHARINDEX('{{&' + ur.roleName + '&}}', viewOper) > 0)) {3} ", menuCode, ERPInfo.Instance.UserName, otherfield, conditions); - htTable["master"] = SqlHelper.ExecuteDataTable(sqlValue, new SqlParameter[] { new SqlParameter("@typeCode", menuCode) }); + where sourceId in (select id from p_systembillsource where typeCode=@typeCode" + cond + @" and isnull(isVisible,0)=0) {3} ", menuCode, ERPInfo.Instance.UserName, otherfield, conditions); DataTable detailTable= SqlHelper.ExecuteDataTable(sqlDetail, new SqlParameter[] { new SqlParameter("@typeCode", menuCode) }); + HashSet sourceIds = new HashSet( + sourceTable.Rows.Cast().Select(row => row["id"] + "")); + if (detailTable != null && detailTable.Rows.Count > 0) + { + DataTable allowedDetailTable = detailTable.Clone(); + foreach (DataRow row in detailTable.Rows) + { + if (sourceIds.Contains(row["sourceId"] + "")) allowedDetailTable.ImportRow(row); + } + detailTable = allowedDetailTable; + } + // order by sourceId,orderid 数据库不排序,在表格中排序(解决慢查询) if (detailTable != null && detailTable.Rows.Count > 0) { diff --git a/插件库/Lskj.Business/Impl/LogUtil.cs b/插件库/Lskj.Business/Impl/LogUtil.cs index cb37c32..25f96a6 100644 --- a/插件库/Lskj.Business/Impl/LogUtil.cs +++ b/插件库/Lskj.Business/Impl/LogUtil.cs @@ -42,18 +42,18 @@ namespace Lskj.Business { try { - if (!BaseImpl.HasExistsColumn("P_LogTab", "IPAddress")) - { - SqlHelper.ExecuteNonQuery("alter table P_LogTab add IPAddress varchar(500)"); - } - if (!BaseImpl.HasExistsColumn("P_LogTab", "MacAddress")) - { - SqlHelper.ExecuteNonQuery("alter table P_LogTab add MacAddress varchar(500)"); - } - if (!BaseImpl.HasExistsColumn("P_LogTab", "ModuleId")) - { - SqlHelper.ExecuteNonQuery("alter table P_LogTab add ModuleId varchar(500)"); - } + //if (!BaseImpl.HasExistsColumn("P_LogTab", "IPAddress")) + //{ + // SqlHelper.ExecuteNonQuery("alter table P_LogTab add IPAddress varchar(500)"); + //} + //if (!BaseImpl.HasExistsColumn("P_LogTab", "MacAddress")) + //{ + // SqlHelper.ExecuteNonQuery("alter table P_LogTab add MacAddress varchar(500)"); + //} + //if (!BaseImpl.HasExistsColumn("P_LogTab", "ModuleId")) + //{ + // SqlHelper.ExecuteNonQuery("alter table P_LogTab add ModuleId varchar(500)"); + //} //string ModuleCode = string.Empty; //string ModuleId = string.Empty; @@ -108,14 +108,14 @@ namespace Lskj.Business string exmessage = Regex.Replace(ex.Message, "'", "''"); - if (!BaseImpl.HasExistsColumn("p_errlogtab", "IPAddress")) - { - SqlHelper.ExecuteNonQuery("alter table p_errlogtab add IPAddress varchar(500)"); - } - if (!BaseImpl.HasExistsColumn("p_errlogtab", "MacAddress")) - { - SqlHelper.ExecuteNonQuery("alter table p_errlogtab add MacAddress varchar(500)"); - } + //if (!BaseImpl.HasExistsColumn("p_errlogtab", "IPAddress")) + //{ + // SqlHelper.ExecuteNonQuery("alter table p_errlogtab add IPAddress varchar(500)"); + //} + //if (!BaseImpl.HasExistsColumn("p_errlogtab", "MacAddress")) + //{ + // SqlHelper.ExecuteNonQuery("alter table p_errlogtab add MacAddress varchar(500)"); + //} string sqlValue = string.Format("insert into p_errlogtab(Operatedate,Operator,Content,ErrMsg,Ws,IPAddress,MacAddress) values(getdate(),'{0}','{1}','{2}','{3}','{4}','{5}')", ERPInfo.Instance.UserName, content, exmessage + "\r\n" + ex.StackTrace, ERPInfo.Instance.WindowName, ERPInfo.Instance.LoginIPV4, ERPInfo.Instance.MacAddress); diff --git a/插件库/Lskj.Business/Impl/SystemInfo.cs b/插件库/Lskj.Business/Impl/SystemInfo.cs index c1e49a7..e2ed7d0 100644 --- a/插件库/Lskj.Business/Impl/SystemInfo.cs +++ b/插件库/Lskj.Business/Impl/SystemInfo.cs @@ -340,6 +340,8 @@ namespace Lskj.Business ResourceDynamic.PubBrower = System.Environment.OSVersion.Version.Major == 5 && (System.Environment.OSVersion.Version.Minor == 1 || System.Environment.OSVersion.Version.Minor == 2) ? "Lskj.PubBrowerXp.dll" : "Lskj.PubBrower2.dll"; } Instance.IsSpecialAuditSave = item.Table.Columns.Contains("IsSpecialAuditSave") && !string.IsNullOrEmpty(item["IsSpecialAuditSave"] + "") ? "1".Equals(item["IsSpecialAuditSave"] + "") : false; + + } /// /// 高拍仪AccessKey @@ -1172,5 +1174,10 @@ namespace Lskj.Business /// 特殊审核保存模式(修改语句只拼接修改后的控件) /// public bool IsSpecialAuditSave; + /// + /// 默认权限模块 + /// P_MessageToolLinkDllTab表中cardId=-99为通用模块(右侧快捷通道通用模块) 2023-12-4 徐成说的cardId=-99的配置 + /// + //public DataTable DefaultPermissionTable; } } diff --git a/插件库/Lskj.Control/FrmWebBrowser2.cs b/插件库/Lskj.Control/FrmWebBrowser2.cs index 3219225..923fd9c 100644 --- a/插件库/Lskj.Control/FrmWebBrowser2.cs +++ b/插件库/Lskj.Control/FrmWebBrowser2.cs @@ -64,24 +64,35 @@ namespace Lskj.Control private void bsClient_OnCreated(object sender, EventArgs e) { cefBrowserSettings = (CefBrowser)sender; - var handle = cefBrowserSettings.GetHost().GetWindowHandle(); - ResizeWindow(handle, this.Width, this.Height); + SyncBrowserBounds(); } protected override void OnResize(EventArgs e) { base.OnResize(e); - if (cefBrowserSettings != null) + SyncBrowserBounds(); + } + /// + /// 将CEF原生子窗口同步到当前控件的客户区,修正高DPI或父容器布局变化造成的位置偏移。 + /// + public void SyncBrowserBounds() + { + if (cefBrowserSettings == null || IsDisposed || Disposing || + ClientSize.Width <= 0 || ClientSize.Height <= 0) { - ResizeWindow(cefBrowserSettings.GetHost().GetWindowHandle(), Width, Height); + return; } + + ResizeWindow(cefBrowserSettings.GetHost().GetWindowHandle(), ClientSize.Width, ClientSize.Height); } public void ResizeWindow(IntPtr handle, int width, int height) { if (handle != IntPtr.Zero) { + const uint SWP_NOZORDER = 0x0004; + const uint SWP_NOACTIVATE = 0x0010; NativeMethod.SetWindowPos(handle, IntPtr.Zero, 0, 0, width, height, - 0x0002 | 0x0004 + SWP_NOZORDER | SWP_NOACTIVATE ); } } diff --git a/插件库/Lskj.Control/GridControlEx.cs b/插件库/Lskj.Control/GridControlEx.cs index c3e20a6..0bda692 100644 --- a/插件库/Lskj.Control/GridControlEx.cs +++ b/插件库/Lskj.Control/GridControlEx.cs @@ -181,6 +181,24 @@ namespace Lskj.Control protected GridView CurrentOperGridView = null; public List ImageList = new List(); + /// + /// 外部设置的右键菜单数据,用于创建每行操作列。 + /// + private DataTable rightMenuButtonTable; + private bool gridColumnsInitialized; + + /// + /// 新版模块选择框缓存。同一关联模块的单选和多选界面分别复用。 + /// + private readonly Dictionary selectReturnModelLookUpCache = + new Dictionary(StringComparer.OrdinalIgnoreCase); + + /// + /// 新版模块选择框显示数据缓存。同一轮列初始化中,相同关联模块只加载一次显示数据。 + /// + private readonly Dictionary selectReturnDisplaySourceCache = + new Dictionary(StringComparer.OrdinalIgnoreCase); + protected bool mLoading = false; protected Timer mTimer = new Timer(); /// @@ -482,6 +500,7 @@ namespace Lskj.Control { SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.ResizeRedraw | ControlStyles.Selectable | ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint | ControlStyles.SupportsTransparentBackColor, true); InitializeComponent(); + this.Disposed += OnGridControlExDisposed; // 自定义选中区域方式 this.gridView.CustomDrawRowIndicator += new RowIndicatorCustomDrawEventHandler(OnGridViewCustomDrawRowIndicator); @@ -997,6 +1016,8 @@ namespace Lskj.Control if (!string.IsNullOrEmpty(model.SqlSource) && !ControlType.IsNotLoadData(model.FieldType)) { + if (ControlType.LabTreeType == model.FieldType && IsSpecModel) return;//如果是树节点,并且是PubSpec模块就直接跳出 + Task sourceTask = new Task(() => { DataTable dataTable = new DataTable(); @@ -1386,8 +1407,10 @@ namespace Lskj.Control this.mLoading = false; this.InitGridColumsTab = table; this.CustomColumKey = customColumKey; + this.gridColumnsInitialized = false; this.GridView.Columns.Clear(); this.ColumnList.Clear(); + this.selectReturnDisplaySourceCache.Clear(); if (table == null) return; this.gridView.BeginUpdate(); for (int i = 0; i < table.Rows.Count; i++) @@ -1463,19 +1486,8 @@ namespace Lskj.Control } - //创建右键菜单列 - if (!dataCaches.GetValue(this, "RightMenuBtn", out DataTable rightMentTab)) - { - if (this.Model != null) - { - rightMentTab = BaseModuleImpl.GetBaseGridRightMenus(this.Model.ModuleCode); - } - } - //左侧如果配置表格,也和出现和主表一样的操作列。先限制为左侧固定不加载(要加载的话要获取左侧的fieldKey) - if (this.Model != null && BaseModuleImpl.IsGridViewRightMenuBtnEdit(rightMentTab) && !customColumKey.Contains("BaseLeftGridView_")) - { - this.InitRightMenuBtnEdit(); - } + this.gridColumnsInitialized = true; + this.TryInitRightMenuBtnEdit(false); if (!dataCaches.GetValue(this, "CustomColumnByDatabase", out DataTable customTable)) { customTable = this.gridView.GetCustomColumnByDatabase(this.CustomColumKey); @@ -1677,6 +1689,7 @@ namespace Lskj.Control this.CustomColumKey = customColumKey; this.GridView.Columns.Clear(); this.ColumnList.Clear(); + this.selectReturnDisplaySourceCache.Clear(); if (table == null) return; for (int i = 0; i < table.Rows.Count; i++) { @@ -1769,8 +1782,10 @@ namespace Lskj.Control this.mLoading = false; this.InitGridColumsTab = table; this.CustomColumKey = customColumKey; + this.gridColumnsInitialized = false; this.GridView.Columns.Clear(); this.ColumnList.Clear(); + this.selectReturnDisplaySourceCache.Clear(); if (table == null) return; Console.WriteLine(DateTime.Now); @@ -1887,32 +1902,15 @@ namespace Lskj.Control } } - if (Model != null) - { - if (!Model.DataCaches.GetValue(this, "RightMenuBtn", out DataTable rightMentTab)) - { - if (this.Model != null) - { - rightMentTab = BaseModuleImpl.GetBaseGridRightMenus(this.Model.ModuleCode); - } - } - //左侧如果配置表格,也和出现和主表一样的操作列。先限制为左侧固定不加载(要加载的话要获取左侧的fieldKey) - if (this.Model != null && BaseModuleImpl.IsGridViewRightMenuBtnEdit(rightMentTab) && !customColumKey.Contains("BaseLeftGridView_")) - { - this.InitRightMenuBtnEdit(); - } - } + this.gridColumnsInitialized = true; + this.TryInitRightMenuBtnEdit(false); - if (Model != null && !Model.DataCaches.GetValue(this, "CustomColumnByDatabase", out DataTable customTable)) + DataTable customTable; + if (Model == null || !Model.DataCaches.GetValue(this, "CustomColumnByDatabase", out customTable)) { customTable = this.gridView.GetCustomColumnByDatabase(this.CustomColumKey); - this.SetCustomColumns(customTable); - } - else - { - DataTable customTableNew = this.gridView.GetCustomColumnByDatabase(this.CustomColumKey); - this.SetCustomColumns(customTableNew); } + this.SetCustomColumns(customTable); @@ -1937,20 +1935,10 @@ namespace Lskj.Control /// public void GetDataCaches(Dictionary cachesDic, string customColumKey = "") { - Task dynamicModelTask = cachesDic.GetTask(this, "DynamicModel"); //Task existsSettingTableTask = cachesDic.AddTask(this, "HasExistsSettingTable", new Task(() => //{ // return BaseImpl.HasExistsTable(ResourceKeys.SettingTableName); //})); - Task setBaseGridRightMenusTask = cachesDic.AddTask(this, "RightMenuBtn", new Task(() => - { - DataTable dataTable = null; - if (dynamicModelTask != null) - { - dataTable = BaseModuleImpl.GetBaseGridRightMenus(dynamicModelTask.Result.ModuleCode); - } - return dataTable; - })); Task customColumnByDatabaseTask = cachesDic.AddTask(this, "CustomColumnByDatabase", new Task(() => { return this.GridView.GetCustomColumnByDatabase(customColumKey); @@ -3747,9 +3735,26 @@ namespace Lskj.Control else if (columnEdit is RepositoryItemCheckedComboBoxEdit) { RepositoryItemCheckedComboBoxEdit rccbe = columnEdit as RepositoryItemCheckedComboBoxEdit; - FrmModelLookUp modelLookUp = rccbe.Buttons[1].Tag as FrmModelLookUp; - if (!modelLookUp.SingleChoiceMode) moduleReturnCheck = true; - table = rccbe.DataSource as DataTable; + + if (rccbe.Buttons[1].Tag is FrmModelLookUp) + { + FrmModelLookUp modelLookUp = rccbe.Buttons[1].Tag as FrmModelLookUp; + if (!modelLookUp.SingleChoiceMode) moduleReturnCheck = true; + table = rccbe.DataSource as DataTable; + } + else if (rccbe.Buttons[1].Tag is FrmModelLookUp2) + { + FrmModelLookUp2 modelLookUp = rccbe.Buttons[1].Tag as FrmModelLookUp2; + if (!modelLookUp.SingleChoiceMode) moduleReturnCheck = true; + table = rccbe.DataSource as DataTable; + } + else if (rccbe.Buttons[1].Tag is FrmLookUp) + { + FrmLookUp frmLookUp = rccbe.Buttons[1].Tag as FrmLookUp; + table = frmLookUp.DataSource as DataTable; + } + + } if (table != null && table.Rows.Count > 0 && table.Columns.Count > 0) { @@ -5119,7 +5124,52 @@ namespace Lskj.Control } - private void InitRightMenuBtnEdit() + /// + /// 保存外部传入的右键数据,并在表格列就绪后创建操作列。 + /// + internal void SetRightMenuButtonTable(DataTable table) + { + // 树表格和多表头表格原来不在此处创建操作列,维持原有行为。 + if (this is TreeGridControlEx || this is BandedGridControlEx) + { + return; + } + + this.rightMenuButtonTable = table; + this.TryInitRightMenuBtnEdit(true); + } + + private void TryInitRightMenuBtnEdit(bool rebuild) + { + if (!this.gridColumnsInitialized || this.Model == null || + this.CustomColumKey.Contains("BaseLeftGridView_")) + { + return; + } + + GridColumn oldColumn = this.gridView.Columns.ColumnByFieldName("RightMenuBtnEdit"); + bool showButtonColumn = BaseModuleImpl.IsGridViewRightMenuBtnEdit(this.rightMenuButtonTable); + if (!showButtonColumn) + { + if (oldColumn != null) this.gridView.Columns.Remove(oldColumn); + return; + } + + if (oldColumn != null) + { + if (!rebuild) return; + this.gridView.Columns.Remove(oldColumn); + } + + this.InitRightMenuBtnEdit(this.rightMenuButtonTable); + DataTable dataSource = this.gridControl.DataSource as DataTable; + if (dataSource != null && !dataSource.Columns.Contains("RightMenuBtnEdit")) + { + dataSource.Columns.Add("RightMenuBtnEdit"); + } + } + + private void InitRightMenuBtnEdit(DataTable rightMenuTab) { GridColumn gridColumn = new GridColumn(); gridColumn.FieldName = "RightMenuBtnEdit"; @@ -5136,7 +5186,6 @@ namespace Lskj.Control ItemButtonEdit.ButtonsStyle = BorderStyles.UltraFlat; ItemButtonEdit.BorderStyle = BorderStyles.NoBorder; ItemButtonEdit.ButtonClick += new ButtonPressedEventHandler(OnItemButtonEdit_ButtonClick); - DataTable rightMenuTab = BaseModuleImpl.GetBaseGridRightMenus(this.Model.ModuleCode); int ColumnWidth = 0; if (rightMenuTab.Columns.Contains("IcoName")) { @@ -5287,14 +5336,13 @@ namespace Lskj.Control /// private void InitSelectReturnIdNew(GridColumn gridColumn, GridColumnModel model) { - FrmModelLookUp2 modelLookUp = new FrmModelLookUp2(model.addModuleld, model.IsRadio); - modelLookUp.ConfigureColumnMode = model.ConfigureColumnMode; - modelLookUp.ValueField = model.ValueMember; - modelLookUp.TextField = model.TextMember; - modelLookUp.SourceSQL = model.SqlSource; - modelLookUp.IsType = model.FieldType; - modelLookUp.ValueMember = model.FieldType == ControlType.LabSelectReturnIdNew ? model.ValueMember : model.TextMember; - modelLookUp.Tag = model; + // 只读列保留原有显示编辑器,但不初始化关联模块选择窗口。 + FrmModelLookUp2 modelLookUp = null; + if (model.Edit) + { + modelLookUp = GetSelectReturnModelLookUp(model); + ConfigureSelectReturnModelLookUp(modelLookUp, model); + } RepositoryItemCheckedComboBoxEdit btnEdit = new RepositoryItemCheckedComboBoxEdit(); btnEdit.NullText = ""; @@ -5306,8 +5354,7 @@ namespace Lskj.Control if (model.ModuleFrameDisplayText && model.FieldType == ControlType.LabSelectReturnIdNew) { - DataTable dataTable = MainImpl.GetDataTableResult(modelLookUp.SysModel.MenuSql); - btnEdit.DataSource = dataTable; + btnEdit.DataSource = GetSelectReturnDisplaySource(model, modelLookUp); } @@ -5315,9 +5362,12 @@ namespace Lskj.Control btnEdit.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Ellipsis) }); btnEdit.Tag = model; - btnEdit.Buttons[1].Tag = modelLookUp; - btnEdit.ButtonClick += new ButtonPressedEventHandler(OnModuleChoiceNew); - btnEdit.KeyDown += BtnEdit_KeyDown; + if (model.Edit) + { + btnEdit.Buttons[1].Tag = modelLookUp; + btnEdit.ButtonClick += new ButtonPressedEventHandler(OnModuleChoiceNew); + btnEdit.KeyDown += BtnEdit_KeyDown; + } gridControl.RepositoryItems.Add(btnEdit); gridColumn.OptionsColumn.ReadOnly = true; gridColumn.ColumnEdit = btnEdit; @@ -5326,6 +5376,83 @@ namespace Lskj.Control this.mControlList.Add(model); } + /// + /// 获取新版模块选择窗口。同一关联模块按单选、多选模式分别复用。 + /// + /// 当前表格列配置。 + /// 与当前模块及选择模式匹配的模块选择窗口。 + private FrmModelLookUp2 GetSelectReturnModelLookUp(GridColumnModel model) + { + string cacheKey = string.Format("{0}|{1}", model.addModuleld ?? string.Empty, model.IsRadio ? "Single" : "Multiple"); + if (!selectReturnModelLookUpCache.TryGetValue(cacheKey, out FrmModelLookUp2 modelLookUp) || modelLookUp.IsDisposed) + { + modelLookUp = new FrmModelLookUp2(model.addModuleld, model.IsRadio); + selectReturnModelLookUpCache[cacheKey] = modelLookUp; + } + + return modelLookUp; + } + + /// + /// 获取新版模块返回ID列的显示数据,用于将保存的ID显示为对应文本。 + /// + /// 当前表格列配置。 + /// 可编辑列已创建的模块选择窗口;只读列传入空值。 + /// 关联模块的数据源。 + private DataTable GetSelectReturnDisplaySource(GridColumnModel model, FrmModelLookUp2 modelLookUp) + { + string cacheKey = model.addModuleld ?? string.Empty; + if (selectReturnDisplaySourceCache.TryGetValue(cacheKey, out DataTable dataTable)) + { + return dataTable; + } + + string sourceSql = modelLookUp?.SysModel?.MenuSql; + if (string.IsNullOrWhiteSpace(sourceSql)) + { + DataRow moduleRow = MainImpl.GetSystemdllTab(model.addModuleld); + sourceSql = moduleRow?["SQL"] + ""; + } + + dataTable = string.IsNullOrWhiteSpace(sourceSql) ? null : MainImpl.GetDataTableResult(sourceSql); + selectReturnDisplaySourceCache[cacheKey] = dataTable; + return dataTable; + } + + /// + /// 将当前列的字段映射及返回配置应用到复用的模块选择窗口。 + /// + /// 模块选择窗口。 + /// 当前表格列配置。 + private static void ConfigureSelectReturnModelLookUp(FrmModelLookUp2 modelLookUp, GridColumnModel model) + { + modelLookUp.ConfigureColumnMode = model.ConfigureColumnMode; + modelLookUp.ValueField = model.ValueMember; + modelLookUp.TextField = model.TextMember; + modelLookUp.SourceSQL = model.SqlSource; + modelLookUp.IsType = model.FieldType; + modelLookUp.ValueMember = model.FieldType == ControlType.LabSelectReturnIdNew ? model.ValueMember : model.TextMember; + modelLookUp.Tag = model; + } + + /// + /// 表格控件销毁时释放缓存的模块选择窗口及显示数据。 + /// + /// 事件源。 + /// 事件参数。 + private void OnGridControlExDisposed(object sender, EventArgs e) + { + foreach (FrmModelLookUp2 modelLookUp in selectReturnModelLookUpCache.Values.Distinct()) + { + if (modelLookUp != null && !modelLookUp.IsDisposed) + { + modelLookUp.Dispose(); + } + } + selectReturnModelLookUpCache.Clear(); + selectReturnDisplaySourceCache.Clear(); + } + /// /// 说明:创建 模块返回行 /// 创建人:曹屹峰 @@ -6258,10 +6385,9 @@ namespace Lskj.Control continue; } } - if (model.FieldType == 160 || model.FieldType == 161) + if ((model.FieldType == 160 || model.FieldType == 161) && + col.ColumnEdit is RepositoryItemCheckedComboBoxEdit) { - RepositoryItemCheckedComboBoxEdit rccbe = col.ColumnEdit as RepositoryItemCheckedComboBoxEdit; - FrmModelLookUp2 modelLookUp = rccbe.Buttons[1].Tag as FrmModelLookUp2; value = ModuleReturnVerify(model, col.ColumnEdit, cellValue, out IsTextEqualValue); //// 避免下拉框值替换失败提示错误 if (model != null && !IsTextEqualValue && cellValue == value + "") @@ -6496,10 +6622,9 @@ namespace Lskj.Control } } - if (model.FieldType == 160 || model.FieldType == 161) + if ((model.FieldType == 160 || model.FieldType == 161) && + col.ColumnEdit is RepositoryItemCheckedComboBoxEdit) { - RepositoryItemCheckedComboBoxEdit rccbe = col.ColumnEdit as RepositoryItemCheckedComboBoxEdit; - FrmModelLookUp2 modelLookUp = rccbe.Buttons[1].Tag as FrmModelLookUp2; value = ModuleReturnVerify(model, col.ColumnEdit, cellValue, out IsTextEqualValue); //// 避免下拉框值替换失败提示错误 if (model != null && !IsTextEqualValue && cellValue == value + "") @@ -7667,8 +7792,15 @@ namespace Lskj.Control { CheckedComboBoxEdit btnEdit = (CheckedComboBoxEdit)sender; FrmModelLookUp2 modelLookUp = e.Button.Tag as FrmModelLookUp2; + GridColumnModel model = btnEdit.Properties.Tag as GridColumnModel; + if (model == null) return; - GridColumnModel model = modelLookUp.Tag as GridColumnModel; + if (modelLookUp == null || modelLookUp.IsDisposed) + { + modelLookUp = GetSelectReturnModelLookUp(model); + e.Button.Tag = modelLookUp; + } + ConfigureSelectReturnModelLookUp(modelLookUp, model); modelLookUp.EditText = btnEdit.Text; modelLookUp.CurrentOperColumnKey = Model.ModuleCode + "_" + model.FieldName; modelLookUp.EditText = btnEdit.Text; diff --git a/插件库/Lskj.Control/Model/GridExtend.cs b/插件库/Lskj.Control/Model/GridExtend.cs index b98c394..7d94177 100644 --- a/插件库/Lskj.Control/Model/GridExtend.cs +++ b/插件库/Lskj.Control/Model/GridExtend.cs @@ -1110,6 +1110,7 @@ namespace Lskj.Control.Model gridControl.gridViewRightMenu = rightMenu; rightMenu.InitRightMenus(gridControl, table, model, control, menu); rightMenu.SetRightCallback(handler); + gridControl.SetRightMenuButtonTable(table); } /// /// 说明:设置表格右键菜单 diff --git a/插件库/Lskj.Control/Model/MyControl.cs b/插件库/Lskj.Control/Model/MyControl.cs index da93b61..8ddda13 100644 --- a/插件库/Lskj.Control/Model/MyControl.cs +++ b/插件库/Lskj.Control/Model/MyControl.cs @@ -1063,7 +1063,7 @@ namespace Lskj.Control.Model DataTable rightDt = null; if (dynamicModel != null) { - if (!dataCaches.GetValue(parent, "RightDtGridRightMenus", out rightDt)) + if (!dataCaches.GetValue(this, "RightDtGridRightMenus", out rightDt)) { rightDt = BaseModuleImpl.GetBaseGridRightMenus(dynamicModel.ModuleCode, ModuleType.MrpClickBtn); } @@ -1223,7 +1223,7 @@ namespace Lskj.Control.Model DataTable rightDt = null; if (dynamicModel != null) { - if (!dynamicModel.DataCaches.GetValue(parent, "RightDtGridRightMenus", out rightDt)) + if (!dynamicModel.DataCaches.GetValue(this, "RightDtGridRightMenus", out rightDt)) { rightDt = BaseModuleImpl.GetBaseGridRightMenus(dynamicModel.ModuleCode, ModuleType.MrpClickBtn); } diff --git a/插件库/Lskj.Control/ModuleGridEx.cs b/插件库/Lskj.Control/ModuleGridEx.cs index 9ea4a43..fa7e96a 100644 --- a/插件库/Lskj.Control/ModuleGridEx.cs +++ b/插件库/Lskj.Control/ModuleGridEx.cs @@ -3985,10 +3985,10 @@ namespace Lskj.Control { return new ModuleModel(MainImpl.GetSystemdllTab(dynamicModel.ModuleCode)); })); - Task searchBaseGridRightMenusTask = cachesDic.AddTask(pl_top_search, "BaseGridRightMenus", new Task(() => - { - return BaseModuleImpl.GetBaseGridRightMenus(dynamicModel.ModuleCode, ModuleType.MrpClickBtn); - })); + //Task searchBaseGridRightMenusTask = cachesDic.AddTask(pl_top_search, "BaseGridRightMenus", new Task(() => + //{ + // return BaseModuleImpl.GetBaseGridRightMenus(dynamicModel.ModuleCode, ModuleType.MrpClickBtn); + //})); Task fixedQueryFieldsTask = cachesDic.AddTask(this, "FixedQueryFields", new Task(() => { return BaseModuleImpl.GetFixedQueryFields(dynamicModel.ModuleCode);//加载固定查询条件 diff --git a/插件库/Lskj.Control/ModulePanelEx.cs b/插件库/Lskj.Control/ModulePanelEx.cs index 96895ba..70fc53a 100644 --- a/插件库/Lskj.Control/ModulePanelEx.cs +++ b/插件库/Lskj.Control/ModulePanelEx.cs @@ -1814,7 +1814,11 @@ namespace Lskj.Control { // 提交数据 this.PrimaryValue = this.SysModel.NewVer == 0 ? this.ControlObj.GetControlValue(this.PrimaryKey) : this.PrimaryValue; - if (string.IsNullOrEmpty(PrimaryValue) || SavaState) this.AddControlRecord(true, false); + if (string.IsNullOrEmpty(PrimaryValue) || SavaState) + { + isApply=this.AddControlRecord(true, false); + if (!isApply) return;//保存失败不执行提交 + } DialogResult result = MessageUtil.Show(ResourceKeys.BillApply, MessageBoxButtons.YesNo); if (result == DialogResult.Yes) { diff --git a/插件库/Lskj.Control/MultiModelLookUp/FrmModelLookUp.cs b/插件库/Lskj.Control/MultiModelLookUp/FrmModelLookUp.cs index 21417c3..7c7b3e8 100644 --- a/插件库/Lskj.Control/MultiModelLookUp/FrmModelLookUp.cs +++ b/插件库/Lskj.Control/MultiModelLookUp/FrmModelLookUp.cs @@ -247,11 +247,10 @@ namespace Lskj.Control.MultiModelLookUp { try { - string width = IniHelper.Read(string.Format("base_width_{0}", this.UnionModuleCodel));//通过Key获取Value值 + string width = IniHelper.Read(string.Format("FrmModelLookUp_width_{0}", this.UnionModuleCodel));//通过Key获取Value值 if (!string.IsNullOrEmpty(width)) { this.splitMain.SplitterPosition = Convert.ToInt32(width); - } } catch (Exception ex) @@ -777,6 +776,7 @@ namespace Lskj.Control.MultiModelLookUp private void PositionChange(object sender, EventArgs e) { PositionSplitter = this.splitMain_Right.SplitterPosition; + IniHelper.Write(string.Format("FrmModelLookUp_height_{0}", this.UnionModuleCodel), PositionSplitter + ""); } #endregion #region 窗口大小改变 @@ -1034,6 +1034,17 @@ namespace Lskj.Control.MultiModelLookUp this.Width = this.SysModel.ModuleFrameWidth; } + string height = IniHelper.Read(string.Format("FrmModelLookUp_height_{0}", this.UnionModuleCodel));//通过Key获取Value值 + if (!string.IsNullOrEmpty(height)) + { + this.splitMain_Right.SplitterPosition = Convert.ToInt32(height); + } + else if (this.SysModel.BottomHeight > 0) + { + this.splitMain_Right.SplitterPosition = Convert.ToInt32(this.splitMain_Right.Height - this.SysModel.BottomHeight); + } + + switch (this.SysModel.MenuType) { case 1: // 左侧为树节点 @@ -1057,7 +1068,7 @@ namespace Lskj.Control.MultiModelLookUp this.splitMain.PanelVisibility = SplitPanelVisibility.Panel2; break; } - + this.splitMain.SplitterPositionChanged += SplitMain_SplitterPositionChanged; } else { @@ -1067,6 +1078,12 @@ namespace Lskj.Control.MultiModelLookUp } return false; } + + + private void SplitMain_SplitterPositionChanged(object sender, EventArgs e) + { + IniHelper.Write(string.Format("FrmModelLookUp_width_{0}", this.UnionModuleCodel), this.splitMain.SplitterPosition + ""); + } #endregion diff --git a/插件库/Lskj.Control/MultiModelLookUp/FrmModelLookUp2.Designer.cs b/插件库/Lskj.Control/MultiModelLookUp/FrmModelLookUp2.Designer.cs index 42eeece..ea4146b 100644 --- a/插件库/Lskj.Control/MultiModelLookUp/FrmModelLookUp2.Designer.cs +++ b/插件库/Lskj.Control/MultiModelLookUp/FrmModelLookUp2.Designer.cs @@ -28,11 +28,11 @@ /// private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); this.splitMain = new DevExpress.XtraEditors.SplitContainerControl(); this.pl_left = new DevExpress.XtraEditors.PanelControl(); this.pl_left_main = new System.Windows.Forms.Panel(); this.pl_gridandtree_container = new DevExpress.XtraEditors.PanelControl(); + this.treeLeft = new Lskj.Control.TreeViewEx(); this.gridLeft = new Lskj.Control.GridControlEx(); this.pl_left_top = new DevExpress.XtraEditors.PanelControl(); this.splitMain_Right = new DevExpress.XtraEditors.SplitContainerControl(); @@ -44,12 +44,11 @@ this.btn_selectAll = new DevExpress.XtraEditors.SimpleButton(); this.btn_cancelAll = new DevExpress.XtraEditors.SimpleButton(); this.btnOk = new DevExpress.XtraEditors.SimpleButton(); - this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components); + this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(); this.tsmi_all = new System.Windows.Forms.ToolStripMenuItem(); this.tsmi_reserve = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); this.tsmi_cancel = new System.Windows.Forms.ToolStripMenuItem(); - this.treeLeft = new Lskj.Control.TreeViewEx(); ((System.ComponentModel.ISupportInitialize)(this.splitMain)).BeginInit(); this.splitMain.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.pl_left)).BeginInit(); @@ -118,6 +117,16 @@ this.pl_gridandtree_container.Size = new System.Drawing.Size(260, 454); this.pl_gridandtree_container.TabIndex = 9; // + // treeLeft + // + this.treeLeft.Dock = System.Windows.Forms.DockStyle.Fill; + this.treeLeft.Location = new System.Drawing.Point(0, 0); + this.treeLeft.Margin = new System.Windows.Forms.Padding(4); + this.treeLeft.Name = "treeLeft"; + this.treeLeft.Size = new System.Drawing.Size(260, 454); + this.treeLeft.TabIndex = 7; + this.treeLeft.Visible = false; + // // gridLeft // this.gridLeft.AdapterObj = null; @@ -218,7 +227,7 @@ this.btnCancel.Location = new System.Drawing.Point(772, 5); this.btnCancel.Margin = new System.Windows.Forms.Padding(4); this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size(79, 35); + this.btnCancel.Size = new System.Drawing.Size(76, 35); this.btnCancel.TabIndex = 24; this.btnCancel.Text = "取消(&C)"; this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); @@ -297,16 +306,6 @@ this.tsmi_cancel.Size = new System.Drawing.Size(100, 22); this.tsmi_cancel.Text = "取消"; // - // treeLeft - // - this.treeLeft.Dock = System.Windows.Forms.DockStyle.Fill; - this.treeLeft.Location = new System.Drawing.Point(0, 0); - this.treeLeft.Margin = new System.Windows.Forms.Padding(4); - this.treeLeft.Name = "treeLeft"; - this.treeLeft.Size = new System.Drawing.Size(260, 454); - this.treeLeft.TabIndex = 7; - this.treeLeft.Visible = false; - // // FrmModelLookUp2 // this.Appearance.BackColor = System.Drawing.SystemColors.Control; diff --git a/插件库/Lskj.Control/MultiModelLookUp/FrmModelLookUp2.cs b/插件库/Lskj.Control/MultiModelLookUp/FrmModelLookUp2.cs index 28842e6..b176318 100644 --- a/插件库/Lskj.Control/MultiModelLookUp/FrmModelLookUp2.cs +++ b/插件库/Lskj.Control/MultiModelLookUp/FrmModelLookUp2.cs @@ -266,12 +266,12 @@ namespace Lskj.Control.MultiModelLookUp { try { - string width = IniHelper.Read(string.Format("base_width_{0}", this.UnionModuleCodel));//通过Key获取Value值 + string width = IniHelper.Read(string.Format("FrmModelLookUp2_width_{0}", this.UnionModuleCodel));//通过Key获取Value值 if (!string.IsNullOrEmpty(width)) { this.splitMain.SplitterPosition = Convert.ToInt32(width); - } + } catch (Exception ex) { @@ -805,6 +805,7 @@ namespace Lskj.Control.MultiModelLookUp private void PositionChange(object sender, EventArgs e) { PositionSplitter = this.splitMain_Right.SplitterPosition; + IniHelper.Write(string.Format("FrmModelLookUp2_height_{0}", this.UnionModuleCodel), PositionSplitter + ""); } #endregion #region 窗口大小改变 @@ -1137,7 +1138,15 @@ namespace Lskj.Control.MultiModelLookUp this.Width = this.SysModel.ModuleFrameWidth; } - + string height = IniHelper.Read(string.Format("FrmModelLookUp2_height_{0}", this.UnionModuleCodel));//通过Key获取Value值 + if (!string.IsNullOrEmpty(height)) + { + this.splitMain_Right.SplitterPosition = Convert.ToInt32(height); + } + else if (this.SysModel.BottomHeight > 0) + { + this.splitMain_Right.SplitterPosition = Convert.ToInt32(this.splitMain_Right.Height - this.SysModel.BottomHeight); + } switch (this.SysModel.MenuType) { @@ -1162,7 +1171,7 @@ namespace Lskj.Control.MultiModelLookUp this.splitMain.PanelVisibility = SplitPanelVisibility.Panel2; break; } - + this.splitMain.SplitterPositionChanged += SplitMain_SplitterPositionChanged; } else { @@ -1172,6 +1181,11 @@ namespace Lskj.Control.MultiModelLookUp } return false; } + + private void SplitMain_SplitterPositionChanged(object sender, EventArgs e) + { + IniHelper.Write(string.Format("FrmModelLookUp2_width_{0}", this.UnionModuleCodel), this.splitMain.SplitterPosition + ""); + } #endregion //设置选中框的值 diff --git a/插件库/Lskj.Main/Control/MainPanelControlEx.cs b/插件库/Lskj.Main/Control/MainPanelControlEx.cs index 1a7bad6..dd7a9db 100644 --- a/插件库/Lskj.Main/Control/MainPanelControlEx.cs +++ b/插件库/Lskj.Main/Control/MainPanelControlEx.cs @@ -4836,6 +4836,14 @@ namespace Lskj.Main.Control tabPage.Controls.Add(this.FirstMain); this.webBrowser.Show(); this.webBrowser.BringToFront(); + // 等待页签和FirstMain完成布局后,再同步CEF原生子窗口的位置和尺寸。 + this.webBrowser.BeginInvoke(new MethodInvoker(delegate + { + if (!this.webBrowser.IsDisposed && !this.webBrowser.Disposing) + { + this.webBrowser.SyncBrowserBounds(); + } + })); //if (this.webBrowser.cefBrowserSettings != null) this.webBrowser.cefBrowserSettings.Reload(); int MemuEventType = 1; //左侧二级目录菜单设置为单击切换模式 diff --git a/插件库/Lskj.Main/FrmLogin.cs b/插件库/Lskj.Main/FrmLogin.cs index 4515a2b..de6ccec 100644 --- a/插件库/Lskj.Main/FrmLogin.cs +++ b/插件库/Lskj.Main/FrmLogin.cs @@ -681,6 +681,9 @@ namespace Lskj.Main ERPInfo.Instance.LoginAccount = LoginAccount; ERPInfo.Instance.InPassWord = password; ERPInfo.Instance.PrimitiveBrowser = SystemInfo.Instance.PrimitiveBrowser; + if (BaseImpl.HasExistsColumn("p_formmenuconfigtab", "SingleOpenMode")) ERPInfo.Instance.SingleOpenMode = true; + + DBConfig.Instance.LoginName = isLoginByAd ? lueUserName.Text.Trim() : lueUserName.Text; DBConfig.Instance.NoticeUserID = userId; DBConfig.Instance.NoticeUserName = userName; diff --git a/插件库/Lskj.Main/Model/Manager.cs b/插件库/Lskj.Main/Model/Manager.cs index 1928531..8d038f3 100644 --- a/插件库/Lskj.Main/Model/Manager.cs +++ b/插件库/Lskj.Main/Model/Manager.cs @@ -571,22 +571,23 @@ namespace Lskj.Main.Model form.Show(); if (args != null && !string.IsNullOrEmpty(args[4] + "")) { - ModuleModel moduleModel = new ModuleModel(MainImpl.GetSystemdllTab(args[4] + "")); - if (!string.IsNullOrEmpty(moduleModel.SearchCondFormModuleCode)) - { - ModuleConditionsPanelEx mcpex = new ModuleConditionsPanelEx(); - mcpex.InitializeControl(new ModuleModel(MainImpl.GetSystemdllTab(moduleModel.SearchCondFormModuleCode)), null, null, true); - if (StaticControl.ConditionsPanelDic.ContainsKey(args[4] + "")) - { - StaticControl.ConditionsPanelDic[args[4] + ""].Dispose(); - StaticControl.ConditionsPanelDic[args[4] + ""] = mcpex; - } - else - { - StaticControl.ConditionsPanelDic.Add(args[4] + "", mcpex); - } - DialogResult dialogResult = mcpex.ShowDialog(); - } + //2026-08-08 pz说把SearchCondFormModuleCode判断去掉,不要这个功能 + //ModuleModel moduleModel = new ModuleModel(MainImpl.GetSystemdllTab(args[4] + "")); + //if (!string.IsNullOrEmpty(moduleModel.SearchCondFormModuleCode)) + //{ + // ModuleConditionsPanelEx mcpex = new ModuleConditionsPanelEx(); + // mcpex.InitializeControl(new ModuleModel(MainImpl.GetSystemdllTab(moduleModel.SearchCondFormModuleCode)), null, null, true); + // if (StaticControl.ConditionsPanelDic.ContainsKey(args[4] + "")) + // { + // StaticControl.ConditionsPanelDic[args[4] + ""].Dispose(); + // StaticControl.ConditionsPanelDic[args[4] + ""] = mcpex; + // } + // else + // { + // StaticControl.ConditionsPanelDic.Add(args[4] + "", mcpex); + // } + // DialogResult dialogResult = mcpex.ShowDialog(); + //} } TabMain.TabPages.Add(tp); diff --git a/插件库/Lskj.Model/ERPInfo.cs b/插件库/Lskj.Model/ERPInfo.cs index 8dd25f5..6e2bd0b 100644 --- a/插件库/Lskj.Model/ERPInfo.cs +++ b/插件库/Lskj.Model/ERPInfo.cs @@ -108,7 +108,11 @@ namespace Lskj.Model /// 是否阻止回车事件 /// public bool IsExecute = false; - + /// + /// 是否根据模块id判断是否设置不能同时打开多个相同模块 + /// + public bool SingleOpenMode = false; + /// /// 登录IP diff --git a/插件库/Lskj.Model/ModuleModel.cs b/插件库/Lskj.Model/ModuleModel.cs index b05701d..bf10347 100644 --- a/插件库/Lskj.Model/ModuleModel.cs +++ b/插件库/Lskj.Model/ModuleModel.cs @@ -1058,7 +1058,10 @@ namespace Lskj.Model /// 模块弹出框宽度 /// public int ModuleFrameWidth; - + /// + /// 下方高 + /// + public int BottomHeight; #endregion /// @@ -1254,6 +1257,8 @@ namespace Lskj.Model this.ModuleFrameHeight = rowItem.Table.Columns.Contains("ModuleFrameHeight") && !string.IsNullOrEmpty(rowItem["ModuleFrameHeight"] + "") ? Convert.ToInt32(rowItem["ModuleFrameHeight"] + "") : 0; this.ModuleFrameWidth = rowItem.Table.Columns.Contains("ModuleFrameWidth") && !string.IsNullOrEmpty(rowItem["ModuleFrameWidth"] + "") ? Convert.ToInt32(rowItem["ModuleFrameWidth"] + "") : 0; + this.BottomHeight = rowItem.Table.Columns.Contains("BottomHeight") && !string.IsNullOrEmpty(rowItem["BottomHeight"] + "") ? Convert.ToInt32(rowItem["BottomHeight"] + "") : 0; + } } } diff --git a/插件库/Lskj.PubBill/BillModule.Designer.cs b/插件库/Lskj.PubBill/BillModule.Designer.cs index f39f27b..813f0e6 100644 --- a/插件库/Lskj.PubBill/BillModule.Designer.cs +++ b/插件库/Lskj.PubBill/BillModule.Designer.cs @@ -28,17 +28,16 @@ /// private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - this.barManager1 = new DevExpress.XtraBars.BarManager(this.components); + this.barManager1 = new DevExpress.XtraBars.BarManager(); this.barDockControl1 = new DevExpress.XtraBars.BarDockControl(); this.barDockControl2 = new DevExpress.XtraBars.BarDockControl(); this.barDockControl3 = new DevExpress.XtraBars.BarDockControl(); this.barDockControl5 = new DevExpress.XtraBars.BarDockControl(); - this.pmFP = new DevExpress.XtraBars.PopupMenu(this.components); - this.pmBillExp = new DevExpress.XtraBars.PopupMenu(this.components); - this.pmBill = new DevExpress.XtraBars.PopupMenu(this.components); - this.pMprint = new DevExpress.XtraBars.PopupMenu(this.components); - this.pMenu = new DevExpress.XtraBars.PopupMenu(this.components); + this.pmFP = new DevExpress.XtraBars.PopupMenu(); + this.pmBillExp = new DevExpress.XtraBars.PopupMenu(); + this.pmBill = new DevExpress.XtraBars.PopupMenu(); + this.pMprint = new DevExpress.XtraBars.PopupMenu(); + this.pMenu = new DevExpress.XtraBars.PopupMenu(); this.tb_buttom = new Lskj.Control.TabControlEx(); this.ssc_main_top = new DevExpress.XtraEditors.SplitContainerControl(); this.pl_left = new DevExpress.XtraEditors.PanelControl(); diff --git a/插件库/Lskj.PubBill/BillModule.cs b/插件库/Lskj.PubBill/BillModule.cs index 48b61e5..fe87289 100644 --- a/插件库/Lskj.PubBill/BillModule.cs +++ b/插件库/Lskj.PubBill/BillModule.cs @@ -249,7 +249,10 @@ namespace Lskj.PubBill /// 保存验证条件表 /// public DataTable SaveCondTab = new DataTable(); - + /// + /// 明细对应字段(参数9中的明细sql对应的主表明细字段) Dictionary + /// + public Dictionary DetailMappingField = new Dictionary(); public BillModule() @@ -1363,7 +1366,11 @@ namespace Lskj.PubBill if (!string.IsNullOrEmpty(this.SysModel.BillMasterSql)) { // 处理单据明细数据 - if (!this.SysModel.BillDetailSql.StartsWith("*")) this.AddMultiRowToGridView(BillImpl.GetDataTableResult(this.SysModel.BillDetailSql)); + if (!this.SysModel.BillDetailSql.StartsWith("*")) + { + this.AddMultiRowToGridView(BillImpl.GetDataTableResult(this.SysModel.BillDetailSql)); + this.DetailMappingField = GetFieldAliasMap(this.SysModel.BillDetailSql); + } } } } @@ -1378,7 +1385,16 @@ namespace Lskj.PubBill BaseUserControl baseUserControl = ControlObj.FindControl("bom_rdm_tianshu"); if (baseUserControl != null) { - int.TryParse(baseUserControl.EditText, out dayCount); + //int.TryParse(baseUserControl.EditText, out dayCount); + decimal value; + + if (decimal.TryParse(baseUserControl.EditText, out value) && + value == decimal.Truncate(value) && + value > 0 && + value <= int.MaxValue) + { + dayCount = (int)value; + } } if (dayCount <= 0) { @@ -1455,7 +1471,16 @@ namespace Lskj.PubBill BaseUserControl baseUserControl = ControlObj.FindControl("bom_rdm_tianshu"); if (baseUserControl != null) { - int.TryParse(baseUserControl.EditText, out dayCount); + //int.TryParse(baseUserControl.EditText, out dayCount); + decimal value; + + if (decimal.TryParse(baseUserControl.EditText, out value) && + value == decimal.Truncate(value) && + value > 0 && + value <= int.MaxValue) + { + dayCount = (int)value; + } } if (dayCount <= 0) { @@ -4607,6 +4632,9 @@ namespace Lskj.PubBill int position = this.gcMain.GridView.FocusedRowHandle; bool isLastRow = this.gcMain.GridView.IsLastVisibleRow; bool onlyOne = true; + + dataTable = CreateDetailMappingTable(dataTable); + foreach (DataRow rowItem in dataTable.Rows) { if (unionModel == null || ValidateDetailCond(rowItem, unionModel)) @@ -4615,18 +4643,6 @@ namespace Lskj.PubBill AssociatedField = repeatProduct; if ("1".Equals(this.BillModel.DetailDoubleClickTip) && this.gcMain.GridView.Columns[repeatProduct] != null && dataTable.Columns.Contains(repeatProduct)) { - // 需要提示编码重复 - //GridView view = this.gcMain.GridView; - //bool result = (view.LocateByValue(repeatProduct, rowItem[repeatProduct], null) >= 0) | - // (view.LocateByValue(repeatProduct, rowItem[repeatProduct], null) >= 0) | - // (view.LocateByValue(repeatProduct, rowItem[repeatProduct], null) >= 0) | - // (view.LocateByValue(repeatProduct, rowItem[repeatProduct], null) >= 0); - //if (result) - //{ - // DialogResult dialog = MessageUtil.Show(ResourceKeys.ProductIsRepet, MessageBoxButtons.YesNo); - // if (dialog != DialogResult.Yes) - // return; - //} //上面方法无法处理大小写,改成搜索的形式 DataTable dt = this.gcMain.gridControl.DataSourceTable(); @@ -4732,22 +4748,13 @@ namespace Lskj.PubBill { // 插入数据行 gridTable.Rows.InsertAt(newRow, position); - //this.gcMain.GridView.ClearSelection(); - //this.gcMain.GridView.SelectRowHandler(position); } else { // 添加数据行 gridTable.Rows.Add(newRow); - // this.gcMain.GridView.ClearSelection(); - // this.gcMain.GridView.SelectRowHandler(gridTable.Rows.Count - 1); } position++; - //if (isLastRow) - //{ - // this.gcMain.GridView.ClearSelection(); - // this.gcMain.GridView.SelectRowHandler(position + 1); - //} if (!string.IsNullOrEmpty(NumberMc) && gridTable.Columns.Contains(mRecordPrimaryField)) { DataRow[] rt = gridTable.Rows.Cast().Where(x => (newRow[BillModel.DetailPreFix + "ProductId"] + "").Equals(x[BillModel.DetailPreFix + "ProductId"] + "") && !string.IsNullOrEmpty(x[mRecordPrimaryField] + "")).ToArray(); @@ -4906,13 +4913,18 @@ namespace Lskj.PubBill if (unionModel != null) { bool onlyOne = true; + + DataRow[] mappingRows = CreateDetailMappingRows(rowItems); + for (int i = 0; i < rowItems.Length; i++) { DataRow rowItem = rowItems[i]; //unionModel.GridDetailControlObj.GridView.GetDataRow(selectedRows[i]); + DataRow mappingRow = mappingRows[i]; + // 检查当前记录是否满足条件 if (ValidateDetailCond(rowItem, unionModel)) { - this.AddRowToGridView(rowItem); + this.AddRowToGridView(mappingRow); if (!string.IsNullOrWhiteSpace(this.BillModel.ChangeColColor)) { if (rowItem.Table.Columns.Contains(this.BillModel.ChangeColColor)) @@ -6502,7 +6514,15 @@ namespace Lskj.PubBill BaseUserControl baseUserControl = ControlObj.FindControl("bom_rdm_tianshu"); if (baseUserControl != null) { - int.TryParse(baseUserControl.EditText, out dayCount); + decimal value; + + if (decimal.TryParse(baseUserControl.EditText, out value) && + value == decimal.Truncate(value) && + value > 0 && + value <= int.MaxValue) + { + dayCount = (int)value; + } } if (dayCount <= 0) { @@ -9698,7 +9718,8 @@ namespace Lskj.PubBill try { if (string.IsNullOrWhiteSpace(cond)) return true;//如果值是空格或者空行,默认正确 - cond = ReplaceHelper.ReplaceRowParam(dataRow, cond); + //cond = ReplaceHelper.ReplaceRowParam(dataRow, cond); + cond = ReplaceHelper.ReplaceRowParamEmptyWrapQuote(dataRow, cond); if (cond.StartsWith("@") || cond.StartsWith("!")) { result = "1".Equals(BaseImpl.GetDefaultValue(cond)); @@ -10472,5 +10493,269 @@ namespace Lskj.PubBill + /// + /// 获取明细sql对应的字段 + /// + /// + /// + public static Dictionary GetFieldAliasMap(string sql) + { + Dictionary result = + new Dictionary(StringComparer.OrdinalIgnoreCase); + + try + { + if (string.IsNullOrWhiteSpace(sql)) + return result; + + string cleanSql = Regex.Replace( + sql, + @"/\*.*?\*/|--[^\r\n]*", + string.Empty, + RegexOptions.Singleline); + + Match selectMatch = Regex.Match( + cleanSql, + @"\bSELECT\b(?.*?)\bFROM\b", + RegexOptions.IgnoreCase | RegexOptions.Singleline); + + if (!selectMatch.Success) + return result; + + string columns = selectMatch.Groups["columns"].Value; + + const string identifier = + @"(?:\[[^\]]+\]|""[^""]+""|[\p{L}_@#][\p{L}\p{N}_@$#]*)"; + + string pattern = + @"(?:^|,)\s*" + + @"(?:(?:" + identifier + @")\s*\.\s*)*" + + @"(?" + identifier + @")\s+" + + @"AS\s+" + + @"(?" + identifier + @")\s*" + + @"(?=,|$)"; + + MatchCollection matches = Regex.Matches( + columns, + pattern, + RegexOptions.IgnoreCase | RegexOptions.Multiline); + + foreach (Match match in matches) + { + try + { + string fieldName = UnwrapSqlIdentifier( + match.Groups["field"].Value); + + string aliasName = UnwrapSqlIdentifier( + match.Groups["alias"].Value); + + if (string.IsNullOrWhiteSpace(fieldName) || + string.IsNullOrWhiteSpace(aliasName)) + { + continue; + } + + // 相同字段重复配置时,以最后一个别名为准。 + result[fieldName] = aliasName; + } + catch (Exception ex) + { + LogHelper.Instance.WriteError(ex); + continue; + } + } + } + catch (Exception ex) + { + LogHelper.Instance.WriteError(ex); + } + + return result; + } + + /// + /// 获取明细sql对应的字段 + /// + private static string UnwrapSqlIdentifier(string value) + { + value = (value ?? string.Empty).Trim(); + + if (value.Length >= 2 && + value[0] == '[' && + value[value.Length - 1] == ']') + { + return value.Substring(1, value.Length - 2) + .Replace("]]", "]"); + } + + if (value.Length >= 2 && + value[0] == '"' && + value[value.Length - 1] == '"') + { + return value.Substring(1, value.Length - 2) + .Replace("\"\"", "\""); + } + + return value; + } + + + /// + /// 根据参数9的字段映射转换DataTable。 + /// 保留原字段,并添加AS后的目标字段。 + /// + private DataTable CreateDetailMappingTable(DataTable sourceTable) + { + if (sourceTable == null || + DetailMappingField == null || + DetailMappingField.Count == 0) + { + return sourceTable; + } + + DataTable result; + + try + { + result = sourceTable.Copy(); + } + catch (Exception ex) + { + LogHelper.Instance.WriteError(ex); + return sourceTable; + } + + foreach (KeyValuePair mapping in DetailMappingField) + { + try + { + string sourceField = mapping.Key; + string targetField = mapping.Value; + + if (string.IsNullOrWhiteSpace(sourceField) || + string.IsNullOrWhiteSpace(targetField) || + sourceField.Equals(targetField, StringComparison.OrdinalIgnoreCase)) + { + continue; + } + + if (!result.Columns.Contains(sourceField)) + continue; + + // 已经存在目标字段时保留原值,兼容原来的SQL配置。 + if (result.Columns.Contains(targetField)) + continue; + + DataColumn sourceColumn = result.Columns[sourceField]; + result.Columns.Add(targetField, sourceColumn.DataType); + + foreach (DataRow row in result.Rows) + { + try + { + if (row.RowState != DataRowState.Deleted) + row[targetField] = row[sourceField]; + } + catch (Exception ex) + { + LogHelper.Instance.WriteError(ex); + } + } + } + catch (Exception ex) + { + LogHelper.Instance.WriteError(ex); + } + } + + return result; + } + + /// + /// 根据参数9的字段映射转换选中的DataRow数组。 + /// 返回的行是临时副本,原始行仍用于变色、删除等来源操作。 + /// + private DataRow[] CreateDetailMappingRows(DataRow[] sourceRows) + { + if (sourceRows == null || + sourceRows.Length == 0 || + DetailMappingField == null || + DetailMappingField.Count == 0) + { + return sourceRows; + } + + DataRow[] result = new DataRow[sourceRows.Length]; + + try + { + DataRow schemaRow = sourceRows.FirstOrDefault( + row => row != null && row.Table != null); + + if (schemaRow == null) + return result; + + DataTable temporaryTable = schemaRow.Table.Clone(); + List sourceIndexes = new List(); + + for (int i = 0; i < sourceRows.Length; i++) + { + DataRow sourceRow = sourceRows[i]; + + if (sourceRow == null || + sourceRow.Table == null || + sourceRow.RowState == DataRowState.Deleted || + sourceRow.RowState == DataRowState.Detached) + { + continue; + } + + try + { + DataRow newRow = temporaryTable.NewRow(); + + foreach (DataColumn column in temporaryTable.Columns) + { + try + { + if (sourceRow.Table.Columns.Contains(column.ColumnName)) + newRow[column.ColumnName] = sourceRow[column.ColumnName]; + } + catch (Exception ex) + { + LogHelper.Instance.WriteError(ex); + } + } + + temporaryTable.Rows.Add(newRow); + sourceIndexes.Add(i); + } + catch (Exception ex) + { + LogHelper.Instance.WriteError(ex); + } + } + + DataTable mappingTable = CreateDetailMappingTable(temporaryTable); + + for (int i = 0; i < mappingTable.Rows.Count && + i < sourceIndexes.Count; i++) + { + result[sourceIndexes[i]] = mappingTable.Rows[i]; + } + } + catch (Exception ex) + { + LogHelper.Instance.WriteError(ex); + } + + return result; + } + + + + + } } diff --git a/插件库/Lskj.PubModule/FrmMain.cs b/插件库/Lskj.PubModule/FrmMain.cs index 029dfb1..be7d681 100644 --- a/插件库/Lskj.PubModule/FrmMain.cs +++ b/插件库/Lskj.PubModule/FrmMain.cs @@ -37,7 +37,7 @@ namespace Lskj.PubModule InitializeComponent(); } - + /// /// 说明:窗体加载时 @@ -66,7 +66,7 @@ namespace Lskj.PubModule LogHelper.Instance.WriteError(ex, ResourceKeys.BaseModule); //MessageUtil.Show(ex.Message + "\r\n" + ex.StackTrace); string Message = ErrorMessage.PromptErrorMessage(ex); - MessageUtil.Show(Message,ex.Message); + MessageUtil.Show(Message, ex.Message); } finally { @@ -98,23 +98,30 @@ namespace Lskj.PubModule ModuleModel sysModel = new ModuleModel(systemDllRowTask.Result); return sysModel;//系统模块实体对象 })); + //Task> detailTask = cachesDic.AddTask(this, "Details", new Task>(() => + //{ + // DataTable detailPages = BaseModuleImpl.GetBaseDetailPages(Model.ModuleCode);//根据传入的模块编号获得基础档案底部标签的数据 + // List details = new List();//表格明细对象的集合 + // foreach (DataRow item in detailPages.Rows) + // { + // GridDetailModel gridDetailModel = new GridDetailModel(item, null, GridCustomColumnStruct.BaseDetailGridView); + // details.Add(gridDetailModel); + // Task addGridColumnsTask = cachesDic.AddTask(gridDetailModel, "GridColumns", new Task(() => + // { + // DataTable gridColumns = ReportImpl.GetReportDetailColumns(Model.ModuleCode, item["id"] + "");//获取报表明细列 + // gridDetailModel.GridColumns = gridColumns; + // return gridColumns; + // })); + // } + // return details; + //})); + + Task> detailTask = cachesDic.AddTask(this, "Details", new Task>(() => { - DataTable detailPages = BaseModuleImpl.GetBaseDetailPages(Model.ModuleCode);//根据传入的模块编号获得基础档案底部标签的数据 - List details = new List();//表格明细对象的集合 - foreach (DataRow item in detailPages.Rows) - { - GridDetailModel gridDetailModel = new GridDetailModel(item, null, GridCustomColumnStruct.BaseDetailGridView); - details.Add(gridDetailModel); - Task addGridColumnsTask = cachesDic.AddTask(gridDetailModel, "GridColumns", new Task(() => - { - DataTable gridColumns = ReportImpl.GetReportDetailColumns(Model.ModuleCode, item["id"] + "");//获取报表明细列 - gridDetailModel.GridColumns = gridColumns; - return gridColumns; - })); - } - return details; + return new List(); })); + Task formTypeTask = cachesDic.AddTask(this, "FormType", new Task(() => { return BaseImpl.GetBaseType(Model.ModuleCode); @@ -149,7 +156,7 @@ namespace Lskj.PubModule if (SystemInfo.Instance.EfficientVerification) { bool SaveResults = this.mControl.ModuleGridDetailObj.VerificationInterface(); - if (!SaveResults) + if (!SaveResults) { DialogResult result = MessageUtil.Show(("数据未保存,是否确定关闭?"), MessageBoxButtons.YesNo); if (result == DialogResult.Yes) @@ -163,9 +170,9 @@ namespace Lskj.PubModule e.Cancel = true; } } - + } - + } #region 设置窗口大小 @@ -213,7 +220,7 @@ namespace Lskj.PubModule catch (Exception ex) { string Message = ErrorMessage.PromptErrorMessage(ex); - MessageUtil.Show(Message,ex.Message); + MessageUtil.Show(Message, ex.Message); } } diff --git a/插件库/Lskj.PubPower/FrmMain.cs b/插件库/Lskj.PubPower/FrmMain.cs index 47361de..c94d39c 100644 --- a/插件库/Lskj.PubPower/FrmMain.cs +++ b/插件库/Lskj.PubPower/FrmMain.cs @@ -127,6 +127,9 @@ namespace Lskj.PubPower this.BeCopiedPeople.TextEdit.Enabled = false; this.SelectedStaff.TextEdit.Enabled = false; + this.gridControlEx3.GridControl.ContextMenuStrip = this.MenuStrip; + this.gridControlEx4.GridControl.ContextMenuStrip = this.contextMenuStrip; + //this.department.TextEdit.EditValueChanged += new EventHandler(OnDepEditValueChanged); Lskj.Control.Model.AutoSizeChange.ControllInitializeSize(this); diff --git a/插件库/Lskj.PubSpec/FrmMain.cs b/插件库/Lskj.PubSpec/FrmMain.cs index cc1f23d..397805f 100644 --- a/插件库/Lskj.PubSpec/FrmMain.cs +++ b/插件库/Lskj.PubSpec/FrmMain.cs @@ -148,14 +148,14 @@ namespace Lskj.PubSpec string specialId = string.Empty; if (this._leftTreeRow != null) { - if (BaseImpl.HasExistsTable("p_systemTreeNodeSetTab")) - { - DataRow treeNodedr = BaseImpl.TreeNodeSetTab(this.SysModel.MenuTable); - if (treeNodedr != null) - { - specialId = treeNodedr["treeIdField"] + ""; - } - } + //if (BaseImpl.HasExistsTable("p_systemTreeNodeSetTab")) + //{ + // DataRow treeNodedr = BaseImpl.TreeNodeSetTab(this.SysModel.MenuTable); + // if (treeNodedr != null) + // { + // specialId = treeNodedr["treeIdField"] + ""; + // } + //} if (this._leftTreeRow.Table.Columns.Contains("TreeNodeSearch") && "1".Equals(this._leftTreeRow["TreeNodeSearch"] + "")) this.treeLeft.pl_top.Visible = true; this.treeLeft.TreeView.CheckBoxes = false; this.treeLeft.TreeNodeKeyField = this._leftTreeRow["fieldsqlid"] + ""; diff --git a/插件库/Lskj.PubSpec2/FrmMain.cs b/插件库/Lskj.PubSpec2/FrmMain.cs index d59c73b..4724211 100644 --- a/插件库/Lskj.PubSpec2/FrmMain.cs +++ b/插件库/Lskj.PubSpec2/FrmMain.cs @@ -86,15 +86,15 @@ namespace Lskj.PubSpec2 this.treeLeft.TreeInhibitSort = this.SysModel.TreeInhibitSort; this.gcMain.GridView.OptionsBehavior.Editable = this.SysModel.ModifyEnable; - if (BaseImpl.HasExistsTable("p_systemTreeNodeSetTab")) - { - DataRow treeNodedr = BaseImpl.TreeNodeSetTab(this.SysModel.MenuTable); - string tabname = treeNodedr["treeTable"] + ""; - if (treeNodedr != null && BaseImpl.HasExistsColumn(tabname, "pid")) - { - SqlHelper.ExecuteNonQuery(String.Format("ALTER TABLE {0} DROP COLUMN orderid,pid", tabname)); - } - } + //if (BaseImpl.HasExistsTable("p_systemTreeNodeSetTab")) + //{ + // DataRow treeNodedr = BaseImpl.TreeNodeSetTab(this.SysModel.MenuTable); + // string tabname = treeNodedr["treeTable"] + ""; + // if (treeNodedr != null && BaseImpl.HasExistsColumn(tabname, "pid")) + // { + // SqlHelper.ExecuteNonQuery(String.Format("ALTER TABLE {0} DROP COLUMN orderid,pid", tabname)); + // } + //} if (Model.HasReadPrivilege()) { this.gcMain.GridView.OptionsBehavior.Editable = false; @@ -176,14 +176,14 @@ namespace Lskj.PubSpec2 this.treeLeft.TreeNodeKeyField = this._leftTreeRow["fieldsqlid"] + ""; this.treeLeft.TreeNodeTextField = this._leftTreeRow["fieldsqlname"] + ""; this.treeLeft.TreeNodeSelectAfter += new TreeViewEventHandler(OnTreeNodeSelectAfter); - if (BaseImpl.HasExistsTable("p_systemTreeNodeSetTab")) - { - DataRow treeNodedr = BaseImpl.TreeNodeSetTab(this.SysModel.MenuTable); - if (treeNodedr != null) - { - specialId = treeNodedr["treeIdField"] + ""; - } - } + //if (BaseImpl.HasExistsTable("p_systemTreeNodeSetTab")) + //{ + // DataRow treeNodedr = BaseImpl.TreeNodeSetTab(this.SysModel.MenuTable); + // if (treeNodedr != null) + // { + // specialId = treeNodedr["treeIdField"] + ""; + // } + //} DataTable dt = BaseImpl.GetDataTableResult(fieldsql); if (!string.IsNullOrEmpty(specialId) && dt.Columns.Contains("pid") && dt.Columns.Contains("orderid") && dt.Columns.Contains(specialId)) { diff --git a/插件库/Lskj.PubUserTomodule/FrmMain.Designer.cs b/插件库/Lskj.PubUserTomodule/FrmMain.Designer.cs index b2fac3f..129c25c 100644 --- a/插件库/Lskj.PubUserTomodule/FrmMain.Designer.cs +++ b/插件库/Lskj.PubUserTomodule/FrmMain.Designer.cs @@ -28,9 +28,10 @@ /// private void InitializeComponent() { - this.MenuStrip = new System.Windows.Forms.ContextMenuStrip(); + this.components = new System.ComponentModel.Container(); + this.MenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components); this.btn_delete = new System.Windows.Forms.ToolStripMenuItem(); - this.contextMenuStrip = new System.Windows.Forms.ContextMenuStrip(); + this.contextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components); this.复制权限ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.清空ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.splitContainerControl1 = new DevExpress.XtraEditors.SplitContainerControl(); @@ -238,7 +239,7 @@ this.splitContainerControl1.Panel1.Text = "Panel1"; this.splitContainerControl1.Panel2.Controls.Add(this.xtraTabControl2); this.splitContainerControl1.Panel2.Text = "Panel2"; - this.splitContainerControl1.Size = new System.Drawing.Size(1284, 641); + this.splitContainerControl1.Size = new System.Drawing.Size(1605, 801); this.splitContainerControl1.SplitterPosition = 340; this.splitContainerControl1.TabIndex = 2; this.splitContainerControl1.Text = "splitContainerControl1"; @@ -250,7 +251,7 @@ this.xtraTabControl1.Location = new System.Drawing.Point(0, 0); this.xtraTabControl1.Name = "xtraTabControl1"; this.xtraTabControl1.SelectedTabPage = this.xtraTabPage1; - this.xtraTabControl1.Size = new System.Drawing.Size(340, 641); + this.xtraTabControl1.Size = new System.Drawing.Size(340, 801); this.xtraTabControl1.TabIndex = 1; this.xtraTabControl1.TabPages.AddRange(new DevExpress.XtraTab.XtraTabPage[] { this.xtraTabPage1, @@ -260,7 +261,7 @@ // this.xtraTabPage1.Controls.Add(this.splitContainer1); this.xtraTabPage1.Name = "xtraTabPage1"; - this.xtraTabPage1.Size = new System.Drawing.Size(334, 612); + this.xtraTabPage1.Size = new System.Drawing.Size(334, 772); this.xtraTabPage1.Text = "角色"; // // splitContainer1 @@ -278,8 +279,8 @@ // splitContainer1.Panel2 // this.splitContainer1.Panel2.Controls.Add(this.RoleOwnerControl); - this.splitContainer1.Size = new System.Drawing.Size(334, 612); - this.splitContainer1.SplitterDistance = 288; + this.splitContainer1.Size = new System.Drawing.Size(334, 772); + this.splitContainer1.SplitterDistance = 363; this.splitContainer1.SplitterWidth = 3; this.splitContainer1.TabIndex = 3; // @@ -291,7 +292,7 @@ this.RoleControlEx.Margin = new System.Windows.Forms.Padding(4); this.RoleControlEx.Name = "RoleControlEx"; this.RoleControlEx.SiftEnumObj = Lskj.Control.GridControlEx.HeaderSiftEnum.Sum; - this.RoleControlEx.Size = new System.Drawing.Size(334, 261); + this.RoleControlEx.Size = new System.Drawing.Size(334, 336); this.RoleControlEx.SysModel = null; this.RoleControlEx.TabIndex = 2; // @@ -302,7 +303,7 @@ this.panelControl1.Controls.Add(this.btn_deleteRole); this.panelControl1.Controls.Add(this.btn_Add); this.panelControl1.Dock = System.Windows.Forms.DockStyle.Bottom; - this.panelControl1.Location = new System.Drawing.Point(0, 261); + this.panelControl1.Location = new System.Drawing.Point(0, 336); this.panelControl1.Name = "panelControl1"; this.panelControl1.Size = new System.Drawing.Size(334, 27); this.panelControl1.TabIndex = 3; @@ -351,7 +352,7 @@ this.RoleOwnerControl.Margin = new System.Windows.Forms.Padding(4); this.RoleOwnerControl.Name = "RoleOwnerControl"; this.RoleOwnerControl.SiftEnumObj = Lskj.Control.GridControlEx.HeaderSiftEnum.Sum; - this.RoleOwnerControl.Size = new System.Drawing.Size(334, 321); + this.RoleOwnerControl.Size = new System.Drawing.Size(334, 406); this.RoleOwnerControl.SysModel = null; this.RoleOwnerControl.TabIndex = 3; // @@ -380,7 +381,7 @@ this.xtraTabControl2.Location = new System.Drawing.Point(0, 0); this.xtraTabControl2.Name = "xtraTabControl2"; this.xtraTabControl2.SelectedTabPage = this.xtraTabPage9; - this.xtraTabControl2.Size = new System.Drawing.Size(939, 641); + this.xtraTabControl2.Size = new System.Drawing.Size(1260, 801); this.xtraTabControl2.TabIndex = 4; this.xtraTabControl2.TabPages.AddRange(new DevExpress.XtraTab.XtraTabPage[] { this.xtraTabPage3, @@ -396,7 +397,7 @@ // this.xtraTabPage9.Controls.Add(this.splitMain); this.xtraTabPage9.Name = "xtraTabPage9"; - this.xtraTabPage9.Size = new System.Drawing.Size(933, 612); + this.xtraTabPage9.Size = new System.Drawing.Size(1254, 772); this.xtraTabPage9.Text = "快捷通道设置"; // // splitMain @@ -408,7 +409,7 @@ this.splitMain.Panel1.Text = "Panel1"; this.splitMain.Panel2.Controls.Add(this.splitMain_Right); this.splitMain.Panel2.Text = "Panel2"; - this.splitMain.Size = new System.Drawing.Size(933, 612); + this.splitMain.Size = new System.Drawing.Size(1254, 772); this.splitMain.SplitterPosition = 268; this.splitMain.TabIndex = 4; this.splitMain.Text = "splitContainerControl1"; @@ -423,7 +424,7 @@ this.pl_left.Dock = System.Windows.Forms.DockStyle.Fill; this.pl_left.Location = new System.Drawing.Point(0, 0); this.pl_left.Name = "pl_left"; - this.pl_left.Size = new System.Drawing.Size(268, 612); + this.pl_left.Size = new System.Drawing.Size(268, 772); this.pl_left.TabIndex = 2; // // pl_gridandtree_container @@ -433,7 +434,7 @@ this.pl_gridandtree_container.Dock = System.Windows.Forms.DockStyle.Fill; this.pl_gridandtree_container.Location = new System.Drawing.Point(0, 23); this.pl_gridandtree_container.Name = "pl_gridandtree_container"; - this.pl_gridandtree_container.Size = new System.Drawing.Size(268, 589); + this.pl_gridandtree_container.Size = new System.Drawing.Size(268, 749); this.pl_gridandtree_container.TabIndex = 10; // // gridLeft @@ -445,7 +446,7 @@ this.gridLeft.Margin = new System.Windows.Forms.Padding(7); this.gridLeft.Name = "gridLeft"; this.gridLeft.SiftEnumObj = Lskj.Control.GridControlEx.HeaderSiftEnum.Sum; - this.gridLeft.Size = new System.Drawing.Size(268, 589); + this.gridLeft.Size = new System.Drawing.Size(268, 749); this.gridLeft.SysModel = null; this.gridLeft.TabIndex = 7; // @@ -485,7 +486,7 @@ this.splitMain_Right.Panel2.Controls.Add(this.panelControl16); this.splitMain_Right.Panel2.Controls.Add(this.panelControl17); this.splitMain_Right.Panel2.Text = "Panel2"; - this.splitMain_Right.Size = new System.Drawing.Size(660, 612); + this.splitMain_Right.Size = new System.Drawing.Size(981, 772); this.splitMain_Right.SplitterPosition = 233; this.splitMain_Right.TabIndex = 4; this.splitMain_Right.Text = "splitContainerControl1"; @@ -496,7 +497,7 @@ this.panelControl14.Dock = System.Windows.Forms.DockStyle.Fill; this.panelControl14.Location = new System.Drawing.Point(0, 0); this.panelControl14.Name = "panelControl14"; - this.panelControl14.Size = new System.Drawing.Size(660, 195); + this.panelControl14.Size = new System.Drawing.Size(981, 195); this.panelControl14.TabIndex = 25; // // AllQuickControlEx @@ -507,7 +508,7 @@ this.AllQuickControlEx.Margin = new System.Windows.Forms.Padding(8); this.AllQuickControlEx.Name = "AllQuickControlEx"; this.AllQuickControlEx.SiftEnumObj = Lskj.Control.GridControlEx.HeaderSiftEnum.Sum; - this.AllQuickControlEx.Size = new System.Drawing.Size(656, 191); + this.AllQuickControlEx.Size = new System.Drawing.Size(977, 191); this.AllQuickControlEx.SysModel = null; this.AllQuickControlEx.TabIndex = 5; // @@ -518,7 +519,7 @@ this.panelControl15.Dock = System.Windows.Forms.DockStyle.Bottom; this.panelControl15.Location = new System.Drawing.Point(0, 195); this.panelControl15.Name = "panelControl15"; - this.panelControl15.Size = new System.Drawing.Size(660, 38); + this.panelControl15.Size = new System.Drawing.Size(981, 38); this.panelControl15.TabIndex = 11; // // SettingReport @@ -526,7 +527,7 @@ this.SettingReport.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.SettingReport.Appearance.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.SettingReport.Appearance.Options.UseFont = true; - this.SettingReport.Location = new System.Drawing.Point(522, 5); + this.SettingReport.Location = new System.Drawing.Point(843, 5); this.SettingReport.Name = "SettingReport"; this.SettingReport.Size = new System.Drawing.Size(126, 28); this.SettingReport.TabIndex = 25; @@ -538,7 +539,7 @@ this.SettingOperation.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.SettingOperation.Appearance.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.SettingOperation.Appearance.Options.UseFont = true; - this.SettingOperation.Location = new System.Drawing.Point(375, 5); + this.SettingOperation.Location = new System.Drawing.Point(696, 5); this.SettingOperation.Name = "SettingOperation"; this.SettingOperation.Size = new System.Drawing.Size(126, 28); this.SettingOperation.TabIndex = 24; @@ -552,7 +553,7 @@ this.panelControl16.Dock = System.Windows.Forms.DockStyle.Fill; this.panelControl16.Location = new System.Drawing.Point(0, 0); this.panelControl16.Name = "panelControl16"; - this.panelControl16.Size = new System.Drawing.Size(660, 340); + this.panelControl16.Size = new System.Drawing.Size(981, 500); this.panelControl16.TabIndex = 27; // // groupBox2 @@ -561,7 +562,7 @@ this.groupBox2.Dock = System.Windows.Forms.DockStyle.Fill; this.groupBox2.Location = new System.Drawing.Point(319, 2); this.groupBox2.Name = "groupBox2"; - this.groupBox2.Size = new System.Drawing.Size(339, 336); + this.groupBox2.Size = new System.Drawing.Size(660, 496); this.groupBox2.TabIndex = 3; this.groupBox2.TabStop = false; this.groupBox2.Text = "快捷报表通道"; @@ -574,7 +575,7 @@ this.QuickReportFormControlEx.Margin = new System.Windows.Forms.Padding(6); this.QuickReportFormControlEx.Name = "QuickReportFormControlEx"; this.QuickReportFormControlEx.SiftEnumObj = Lskj.Control.GridControlEx.HeaderSiftEnum.Sum; - this.QuickReportFormControlEx.Size = new System.Drawing.Size(333, 315); + this.QuickReportFormControlEx.Size = new System.Drawing.Size(654, 475); this.QuickReportFormControlEx.SysModel = null; this.QuickReportFormControlEx.TabIndex = 3; // @@ -584,7 +585,7 @@ this.groupBox1.Dock = System.Windows.Forms.DockStyle.Left; this.groupBox1.Location = new System.Drawing.Point(2, 2); this.groupBox1.Name = "groupBox1"; - this.groupBox1.Size = new System.Drawing.Size(317, 336); + this.groupBox1.Size = new System.Drawing.Size(317, 496); this.groupBox1.TabIndex = 2; this.groupBox1.TabStop = false; this.groupBox1.Text = "快捷操作通道"; @@ -597,7 +598,7 @@ this.QuickOperationControlEx.Margin = new System.Windows.Forms.Padding(7); this.QuickOperationControlEx.Name = "QuickOperationControlEx"; this.QuickOperationControlEx.SiftEnumObj = Lskj.Control.GridControlEx.HeaderSiftEnum.Sum; - this.QuickOperationControlEx.Size = new System.Drawing.Size(311, 315); + this.QuickOperationControlEx.Size = new System.Drawing.Size(311, 475); this.QuickOperationControlEx.SysModel = null; this.QuickOperationControlEx.TabIndex = 4; // @@ -606,9 +607,9 @@ this.panelControl17.Controls.Add(this.SetRemovePermissions); this.panelControl17.Controls.Add(this.btnOk); this.panelControl17.Dock = System.Windows.Forms.DockStyle.Bottom; - this.panelControl17.Location = new System.Drawing.Point(0, 340); + this.panelControl17.Location = new System.Drawing.Point(0, 500); this.panelControl17.Name = "panelControl17"; - this.panelControl17.Size = new System.Drawing.Size(660, 34); + this.panelControl17.Size = new System.Drawing.Size(981, 34); this.panelControl17.TabIndex = 8; // // SetRemovePermissions @@ -616,7 +617,7 @@ this.SetRemovePermissions.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.SetRemovePermissions.Appearance.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.SetRemovePermissions.Appearance.Options.UseFont = true; - this.SetRemovePermissions.Location = new System.Drawing.Point(529, 4); + this.SetRemovePermissions.Location = new System.Drawing.Point(850, 4); this.SetRemovePermissions.Name = "SetRemovePermissions"; this.SetRemovePermissions.Size = new System.Drawing.Size(126, 28); this.SetRemovePermissions.TabIndex = 26; @@ -628,7 +629,7 @@ this.btnOk.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.btnOk.Appearance.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.btnOk.Appearance.Options.UseFont = true; - this.btnOk.Location = new System.Drawing.Point(466, 4); + this.btnOk.Location = new System.Drawing.Point(787, 4); this.btnOk.Name = "btnOk"; this.btnOk.Size = new System.Drawing.Size(57, 28); this.btnOk.TabIndex = 23; @@ -639,7 +640,7 @@ // this.xtraTabPage3.Controls.Add(this.scc_container); this.xtraTabPage3.Name = "xtraTabPage3"; - this.xtraTabPage3.Size = new System.Drawing.Size(933, 612); + this.xtraTabPage3.Size = new System.Drawing.Size(1254, 772); this.xtraTabPage3.Text = "权限设置表"; // // scc_container @@ -656,7 +657,7 @@ this.scc_container.Panel2.Controls.Add(this.splitMain_LowerRight); this.scc_container.Panel2.Text = "Panel2"; this.scc_container.PanelVisibility = DevExpress.XtraEditors.SplitPanelVisibility.Panel1; - this.scc_container.Size = new System.Drawing.Size(933, 612); + this.scc_container.Size = new System.Drawing.Size(1254, 772); this.scc_container.SplitterPosition = 246; this.scc_container.TabIndex = 12; this.scc_container.Text = "splitContainerControl1"; @@ -667,7 +668,7 @@ this.panelControl3.Dock = System.Windows.Forms.DockStyle.Fill; this.panelControl3.Location = new System.Drawing.Point(0, 0); this.panelControl3.Name = "panelControl3"; - this.panelControl3.Size = new System.Drawing.Size(929, 578); + this.panelControl3.Size = new System.Drawing.Size(1250, 738); this.panelControl3.TabIndex = 2; // // ModulePermissionsControl @@ -678,7 +679,7 @@ this.ModulePermissionsControl.Margin = new System.Windows.Forms.Padding(4); this.ModulePermissionsControl.Name = "ModulePermissionsControl"; this.ModulePermissionsControl.SiftEnumObj = Lskj.Control.GridControlEx.HeaderSiftEnum.Sum; - this.ModulePermissionsControl.Size = new System.Drawing.Size(925, 574); + this.ModulePermissionsControl.Size = new System.Drawing.Size(1246, 734); this.ModulePermissionsControl.SysModel = null; this.ModulePermissionsControl.TabIndex = 4; // @@ -687,15 +688,15 @@ this.panelControl4.Controls.Add(this.btn_unfold); this.panelControl4.Controls.Add(this.btn_save); this.panelControl4.Dock = System.Windows.Forms.DockStyle.Bottom; - this.panelControl4.Location = new System.Drawing.Point(0, 578); + this.panelControl4.Location = new System.Drawing.Point(0, 738); this.panelControl4.Name = "panelControl4"; - this.panelControl4.Size = new System.Drawing.Size(929, 30); + this.panelControl4.Size = new System.Drawing.Size(1250, 30); this.panelControl4.TabIndex = 1; // // btn_unfold // this.btn_unfold.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btn_unfold.Location = new System.Drawing.Point(787, 6); + this.btn_unfold.Location = new System.Drawing.Point(1108, 6); this.btn_unfold.Name = "btn_unfold"; this.btn_unfold.Size = new System.Drawing.Size(64, 20); this.btn_unfold.TabIndex = 0; @@ -704,7 +705,7 @@ // btn_save // this.btn_save.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btn_save.Location = new System.Drawing.Point(857, 6); + this.btn_save.Location = new System.Drawing.Point(1178, 6); this.btn_save.Name = "btn_save"; this.btn_save.Size = new System.Drawing.Size(64, 20); this.btn_save.TabIndex = 0; @@ -727,7 +728,7 @@ // this.xtraTabPage10.Controls.Add(this.gridControlEx1); this.xtraTabPage10.Name = "xtraTabPage10"; - this.xtraTabPage10.Size = new System.Drawing.Size(933, 612); + this.xtraTabPage10.Size = new System.Drawing.Size(1254, 772); this.xtraTabPage10.Text = "添加人员"; // // gridControlEx1 @@ -738,7 +739,7 @@ this.gridControlEx1.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6); this.gridControlEx1.Name = "gridControlEx1"; this.gridControlEx1.SiftEnumObj = Lskj.Control.GridControlEx.HeaderSiftEnum.Sum; - this.gridControlEx1.Size = new System.Drawing.Size(933, 612); + this.gridControlEx1.Size = new System.Drawing.Size(1254, 772); this.gridControlEx1.SysModel = null; this.gridControlEx1.TabIndex = 1; // @@ -746,7 +747,7 @@ // this.xtraTabPage11.Controls.Add(this.moduleAssociationRole); this.xtraTabPage11.Name = "xtraTabPage11"; - this.xtraTabPage11.Size = new System.Drawing.Size(933, 612); + this.xtraTabPage11.Size = new System.Drawing.Size(1254, 772); this.xtraTabPage11.Text = "菜单功能明细"; // // moduleAssociationRole @@ -754,14 +755,14 @@ this.moduleAssociationRole.Dock = System.Windows.Forms.DockStyle.Fill; this.moduleAssociationRole.Location = new System.Drawing.Point(0, 0); this.moduleAssociationRole.Name = "moduleAssociationRole"; - this.moduleAssociationRole.Size = new System.Drawing.Size(933, 612); + this.moduleAssociationRole.Size = new System.Drawing.Size(1254, 772); this.moduleAssociationRole.TabIndex = 0; // // xtraTabPage12 // this.xtraTabPage12.Controls.Add(this.personnelInformation); this.xtraTabPage12.Name = "xtraTabPage12"; - this.xtraTabPage12.Size = new System.Drawing.Size(933, 612); + this.xtraTabPage12.Size = new System.Drawing.Size(1254, 772); this.xtraTabPage12.Text = "人员权限信息"; // // personnelInformation @@ -769,14 +770,14 @@ this.personnelInformation.Dock = System.Windows.Forms.DockStyle.Fill; this.personnelInformation.Location = new System.Drawing.Point(0, 0); this.personnelInformation.Name = "personnelInformation"; - this.personnelInformation.Size = new System.Drawing.Size(933, 612); + this.personnelInformation.Size = new System.Drawing.Size(1254, 772); this.personnelInformation.TabIndex = 0; // // xtraTabPage8 // this.xtraTabPage8.Controls.Add(this.panelControl6); this.xtraTabPage8.Name = "xtraTabPage8"; - this.xtraTabPage8.Size = new System.Drawing.Size(933, 612); + this.xtraTabPage8.Size = new System.Drawing.Size(1254, 772); this.xtraTabPage8.Text = "员工日志记录"; // // panelControl6 @@ -786,7 +787,7 @@ this.panelControl6.Dock = System.Windows.Forms.DockStyle.Fill; this.panelControl6.Location = new System.Drawing.Point(0, 0); this.panelControl6.Name = "panelControl6"; - this.panelControl6.Size = new System.Drawing.Size(933, 612); + this.panelControl6.Size = new System.Drawing.Size(1254, 772); this.panelControl6.TabIndex = 4; // // panelControl7 @@ -796,7 +797,7 @@ this.panelControl7.Dock = System.Windows.Forms.DockStyle.Fill; this.panelControl7.Location = new System.Drawing.Point(2, 2); this.panelControl7.Name = "panelControl7"; - this.panelControl7.Size = new System.Drawing.Size(929, 578); + this.panelControl7.Size = new System.Drawing.Size(1250, 738); this.panelControl7.TabIndex = 5; // // panelControl11 @@ -807,7 +808,7 @@ this.panelControl11.Dock = System.Windows.Forms.DockStyle.Fill; this.panelControl11.Location = new System.Drawing.Point(2, 46); this.panelControl11.Name = "panelControl11"; - this.panelControl11.Size = new System.Drawing.Size(925, 530); + this.panelControl11.Size = new System.Drawing.Size(1246, 690); this.panelControl11.TabIndex = 4; // // LogControl @@ -818,7 +819,7 @@ this.LogControl.Margin = new System.Windows.Forms.Padding(5); this.LogControl.Name = "LogControl"; this.LogControl.SiftEnumObj = Lskj.Control.GridControlEx.HeaderSiftEnum.Sum; - this.LogControl.Size = new System.Drawing.Size(921, 526); + this.LogControl.Size = new System.Drawing.Size(1242, 686); this.LogControl.SysModel = null; this.LogControl.TabIndex = 2; // @@ -834,7 +835,7 @@ this.panelControl9.Dock = System.Windows.Forms.DockStyle.Top; this.panelControl9.Location = new System.Drawing.Point(2, 2); this.panelControl9.Name = "panelControl9"; - this.panelControl9.Size = new System.Drawing.Size(925, 44); + this.panelControl9.Size = new System.Drawing.Size(1246, 44); this.panelControl9.TabIndex = 3; // // btn_query @@ -903,15 +904,15 @@ // this.panelControl5.Controls.Add(this.btn_export); this.panelControl5.Dock = System.Windows.Forms.DockStyle.Bottom; - this.panelControl5.Location = new System.Drawing.Point(2, 580); + this.panelControl5.Location = new System.Drawing.Point(2, 740); this.panelControl5.Name = "panelControl5"; - this.panelControl5.Size = new System.Drawing.Size(929, 30); + this.panelControl5.Size = new System.Drawing.Size(1250, 30); this.panelControl5.TabIndex = 4; // // btn_export // this.btn_export.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btn_export.Location = new System.Drawing.Point(860, 5); + this.btn_export.Location = new System.Drawing.Point(1181, 5); this.btn_export.Name = "btn_export"; this.btn_export.Size = new System.Drawing.Size(64, 20); this.btn_export.TabIndex = 1; @@ -921,7 +922,7 @@ // this.xtraTabPage4.Controls.Add(this.panelControl8); this.xtraTabPage4.Name = "xtraTabPage4"; - this.xtraTabPage4.Size = new System.Drawing.Size(933, 612); + this.xtraTabPage4.Size = new System.Drawing.Size(1254, 772); this.xtraTabPage4.Text = "审核权限"; // // panelControl8 @@ -934,7 +935,7 @@ this.panelControl8.Dock = System.Windows.Forms.DockStyle.Fill; this.panelControl8.Location = new System.Drawing.Point(0, 0); this.panelControl8.Name = "panelControl8"; - this.panelControl8.Size = new System.Drawing.Size(933, 612); + this.panelControl8.Size = new System.Drawing.Size(1254, 772); this.panelControl8.TabIndex = 4; // // panelControl13 @@ -947,7 +948,7 @@ this.panelControl13.Dock = System.Windows.Forms.DockStyle.Fill; this.panelControl13.Location = new System.Drawing.Point(0, 111); this.panelControl13.Name = "panelControl13"; - this.panelControl13.Size = new System.Drawing.Size(933, 501); + this.panelControl13.Size = new System.Drawing.Size(1254, 661); this.panelControl13.TabIndex = 6; // // panel1 @@ -957,7 +958,7 @@ this.panel1.Dock = System.Windows.Forms.DockStyle.Fill; this.panel1.Location = new System.Drawing.Point(188, 0); this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(745, 501); + this.panel1.Size = new System.Drawing.Size(1066, 661); this.panel1.TabIndex = 14; // // frmWork1 @@ -967,7 +968,7 @@ this.frmWork1.Location = new System.Drawing.Point(0, 0); this.frmWork1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.frmWork1.Name = "frmWork1"; - this.frmWork1.Size = new System.Drawing.Size(745, 501); + this.frmWork1.Size = new System.Drawing.Size(1066, 661); this.frmWork1.TabIndex = 0; // // panelControl10 @@ -980,7 +981,7 @@ this.panelControl10.Dock = System.Windows.Forms.DockStyle.Left; this.panelControl10.Location = new System.Drawing.Point(0, 0); this.panelControl10.Name = "panelControl10"; - this.panelControl10.Size = new System.Drawing.Size(188, 501); + this.panelControl10.Size = new System.Drawing.Size(188, 661); this.panelControl10.TabIndex = 13; // // panelControl19 @@ -992,7 +993,7 @@ this.panelControl19.Dock = System.Windows.Forms.DockStyle.Fill; this.panelControl19.Location = new System.Drawing.Point(0, 40); this.panelControl19.Name = "panelControl19"; - this.panelControl19.Size = new System.Drawing.Size(188, 461); + this.panelControl19.Size = new System.Drawing.Size(188, 621); this.panelControl19.TabIndex = 13; // // moduleControl @@ -1003,7 +1004,7 @@ this.moduleControl.Margin = new System.Windows.Forms.Padding(6, 10, 6, 10); this.moduleControl.Name = "moduleControl"; this.moduleControl.SiftEnumObj = Lskj.Control.GridControlEx.HeaderSiftEnum.Sum; - this.moduleControl.Size = new System.Drawing.Size(188, 461); + this.moduleControl.Size = new System.Drawing.Size(188, 621); this.moduleControl.SysModel = null; this.moduleControl.TabIndex = 3; // @@ -1085,14 +1086,14 @@ this.panelControl12.Dock = System.Windows.Forms.DockStyle.Top; this.panelControl12.Location = new System.Drawing.Point(0, 0); this.panelControl12.Name = "panelControl12"; - this.panelControl12.Size = new System.Drawing.Size(933, 111); + this.panelControl12.Size = new System.Drawing.Size(1254, 111); this.panelControl12.TabIndex = 5; // // xtraTabPage13 // this.xtraTabPage13.Controls.Add(this.permissionSettings1); this.xtraTabPage13.Name = "xtraTabPage13"; - this.xtraTabPage13.Size = new System.Drawing.Size(933, 612); + this.xtraTabPage13.Size = new System.Drawing.Size(1254, 772); this.xtraTabPage13.Text = "模块元素权限"; // // permissionSettings1 @@ -1100,7 +1101,7 @@ this.permissionSettings1.Dock = System.Windows.Forms.DockStyle.Fill; this.permissionSettings1.Location = new System.Drawing.Point(0, 0); this.permissionSettings1.Name = "permissionSettings1"; - this.permissionSettings1.Size = new System.Drawing.Size(933, 612); + this.permissionSettings1.Size = new System.Drawing.Size(1254, 772); this.permissionSettings1.TabIndex = 0; // // FrmMain diff --git a/插件库/Lskj.PubUserTomodule/FrmShortcutSettings.Designer.cs b/插件库/Lskj.PubUserTomodule/FrmShortcutSettings.Designer.cs index d38eea6..a93befb 100644 --- a/插件库/Lskj.PubUserTomodule/FrmShortcutSettings.Designer.cs +++ b/插件库/Lskj.PubUserTomodule/FrmShortcutSettings.Designer.cs @@ -133,6 +133,7 @@ namespace Lskj.PubUserTomodule this.gridLeft.Name = "gridLeft"; this.gridLeft.SiftEnumObj = Lskj.Control.GridControlEx.HeaderSiftEnum.Sum; this.gridLeft.Size = new System.Drawing.Size(268, 554); + this.gridLeft.SysModel = null; this.gridLeft.TabIndex = 7; // // pl_left_top @@ -194,6 +195,7 @@ namespace Lskj.PubUserTomodule this.AllQuickControlEx.Name = "AllQuickControlEx"; this.AllQuickControlEx.SiftEnumObj = Lskj.Control.GridControlEx.HeaderSiftEnum.Sum; this.AllQuickControlEx.Size = new System.Drawing.Size(814, 191); + this.AllQuickControlEx.SysModel = null; this.AllQuickControlEx.TabIndex = 5; // // panelControl2 @@ -260,6 +262,7 @@ namespace Lskj.PubUserTomodule this.QuickReportFormControlEx.Name = "QuickReportFormControlEx"; this.QuickReportFormControlEx.SiftEnumObj = Lskj.Control.GridControlEx.HeaderSiftEnum.Sum; this.QuickReportFormControlEx.Size = new System.Drawing.Size(398, 280); + this.QuickReportFormControlEx.SysModel = null; this.QuickReportFormControlEx.TabIndex = 3; // // groupBox1 @@ -282,6 +285,7 @@ namespace Lskj.PubUserTomodule this.QuickOperationControlEx.Name = "QuickOperationControlEx"; this.QuickOperationControlEx.SiftEnumObj = Lskj.Control.GridControlEx.HeaderSiftEnum.Sum; this.QuickOperationControlEx.Size = new System.Drawing.Size(404, 280); + this.QuickOperationControlEx.SysModel = null; this.QuickOperationControlEx.TabIndex = 4; // // panelControl1 diff --git a/插件库/Lskj.PubUserTomodule/PermissionSettings.cs b/插件库/Lskj.PubUserTomodule/PermissionSettings.cs index 6d143d3..c08ecf5 100644 --- a/插件库/Lskj.PubUserTomodule/PermissionSettings.cs +++ b/插件库/Lskj.PubUserTomodule/PermissionSettings.cs @@ -469,6 +469,8 @@ namespace Lskj.PubUserTomodule this.MainTableElement.ContextMenuStrip = null; this.BillDetail.ContextMenuStrip = null; + this.MainTableElement.gridControl.ContextMenuStrip = null; + this.BillDetail.gridControl.ContextMenuStrip = null; //选中模块中的元素信息 if (modelRow != null) { @@ -478,7 +480,7 @@ namespace Lskj.PubUserTomodule this.SetElementTableColumns(this.MainTableElement); this.MainTableElement.gridControl.DataSource = PowerImpl.GetBasisData(dllcode); this.MainTableElement.GridView.BestFitColumns();//设置根据内容填充列宽 - this.MainTableElement.ContextMenuStrip = contextMenuStrip; + this.MainTableElement.gridControl.ContextMenuStrip = contextMenuStrip; this.MainTableElement.GridView.CellValueChanged -= GridView_CellValueChanged; this.MainTableElement.GridView.CellValueChanged += GridView_CellValueChanged; @@ -501,7 +503,7 @@ namespace Lskj.PubUserTomodule controlEx.gridControl.DataSource = PowerImpl.GetBasisData(item.UnionModule); controlEx.GridView.BestFitColumns();//设置根据内容填充列宽 controlEx.GridView.CellValueChanged += GridView_CellValueChanged; - controlEx.ContextMenuStrip = contextMenuStrip; + controlEx.gridControl.ContextMenuStrip = contextMenuStrip; page.Tag = item.UnionModule; page.Controls.Add(controlEx); this.xtc_container.TabPages.Add(page); @@ -521,7 +523,7 @@ namespace Lskj.PubUserTomodule //contextMenuStrip.Items.Clear(); //contextMenuStrip.Items.Add(menuItem1Edit); - controlEx.ContextMenuStrip = contextMenuStripEditingMethod; + controlEx.gridControl.ContextMenuStrip = contextMenuStripEditingMethod; page.Tag = dllcode; page.Controls.Add(controlEx); @@ -547,7 +549,7 @@ namespace Lskj.PubUserTomodule this.SetElementTableColumns(this.BillDetail); this.BillDetail.gridControl.DataSource = PowerImpl.GetBillDetailData(dllcode); this.BillDetail.GridView.BestFitColumns();//设置根据内容填充列宽 - this.BillDetail.ContextMenuStrip = contextMenuStrip; + this.BillDetail.gridControl.ContextMenuStrip = contextMenuStrip; this.BillDetail.GridView.CellValueChanged -= GridView_CellValueChanged; this.BillDetail.GridView.CellValueChanged += GridView_CellValueChanged; } diff --git a/插件库/Lskj.PubUserTomodule/PersonnelInformation.Designer.cs b/插件库/Lskj.PubUserTomodule/PersonnelInformation.Designer.cs index 3f85ab9..c986e54 100644 --- a/插件库/Lskj.PubUserTomodule/PersonnelInformation.Designer.cs +++ b/插件库/Lskj.PubUserTomodule/PersonnelInformation.Designer.cs @@ -88,7 +88,7 @@ namespace Lskj.PubUserTomodule // personnelControlEx // this.personnelControlEx.AdapterObj = null; - this.personnelControlEx.ContextMenuStrip = this.MenuStrip; + this.personnelControlEx.GridControl.ContextMenuStrip = this.MenuStrip; this.personnelControlEx.Dock = System.Windows.Forms.DockStyle.Fill; this.personnelControlEx.Location = new System.Drawing.Point(0, 0); this.personnelControlEx.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);