diff --git a/插件库/Lskj.PubBomAlter/DllBaseClass.cs b/插件库/Lskj.PubBomAlter/DllBaseClass.cs index ff1ccdf..efc7b20 100644 --- a/插件库/Lskj.PubBomAlter/DllBaseClass.cs +++ b/插件库/Lskj.PubBomAlter/DllBaseClass.cs @@ -78,32 +78,4 @@ namespace Lskj.PubBomAlter { SaveSql = args[8]; } - if (args.Length > 9 && !string.IsNullOrWhiteSpace(args[9])) - { - VerifySql = args[9]; - } - if (args.Length > 10) - { - this.Params = new string[args.Length]; - for (int i = 10; i < args.Length; i++) - { - Params[i - 10] = args[i]; - } - } - if (!string.IsNullOrEmpty(args[args.Length - 1])) - { - try - { - JObject rowObject = JsonConvert.DeserializeObject(args[args.Length - 1]); - JArray jArray = new JArray(); - jArray.Add(rowObject); - DataTable dataTable = JsonConvert.DeserializeObject(JsonConvert.SerializeObject(jArray)); - this.MaintabFocusedRow = dataTable.Rows[0]; - } - catch (Exception) - { - } - } - } - } -} + \ No newline at end of file diff --git a/插件库/Lskj.PubBomAlter/FrmMain.Designer.cs b/插件库/Lskj.PubBomAlter/FrmMain.Designer.cs index a23d714..1838473 100644 --- a/插件库/Lskj.PubBomAlter/FrmMain.Designer.cs +++ b/插件库/Lskj.PubBomAlter/FrmMain.Designer.cs @@ -33,6 +33,7 @@ namespace Lskj.PubBomAlter this.splitRightContainer = new DevExpress.XtraEditors.SplitContainerControl(); this.splitControlContainer = new DevExpress.XtraEditors.SplitContainerControl(); this.topPanel = new DevExpress.XtraEditors.PanelControl(); + this.treeGridControlEx = new Lskj.Control.TreeGridControlEx(); this.pl_buttom = new DevExpress.XtraEditors.PanelControl(); this.btnApply = new DevExpress.XtraEditors.SimpleButton(); this.btnSave = new DevExpress.XtraEditors.SimpleButton(); @@ -49,7 +50,6 @@ namespace Lskj.PubBomAlter this.btnPmsSave = new DevExpress.XtraEditors.SimpleButton(); this.rightDetailPanel = new System.Windows.Forms.Panel(); this.gcDetailControlEx = new Lskj.Control.GridControlEx(); - this.treeGridControlEx = new Lskj.Control.TreeGridControlEx(); ((System.ComponentModel.ISupportInitialize)(this.splitRightContainer)).BeginInit(); this.splitRightContainer.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.splitControlContainer)).BeginInit(); @@ -131,6 +131,17 @@ namespace Lskj.PubBomAlter this.topPanel.Size = new System.Drawing.Size(380, 566); this.topPanel.TabIndex = 21; // + // treeGridControlEx + // + this.treeGridControlEx.AdapterObj = null; + this.treeGridControlEx.Dock = System.Windows.Forms.DockStyle.Fill; + this.treeGridControlEx.Location = new System.Drawing.Point(2, 29); + this.treeGridControlEx.Margin = new System.Windows.Forms.Padding(4); + this.treeGridControlEx.Name = "treeGridControlEx"; + this.treeGridControlEx.SiftEnumObj = Lskj.Control.GridControlEx.HeaderSiftEnum.Sum; + this.treeGridControlEx.Size = new System.Drawing.Size(376, 500); + this.treeGridControlEx.TabIndex = 29; + // // pl_buttom // this.pl_buttom.Appearance.BackColor = System.Drawing.Color.Transparent; @@ -312,17 +323,6 @@ namespace Lskj.PubBomAlter this.gcDetailControlEx.Size = new System.Drawing.Size(411, 566); this.gcDetailControlEx.TabIndex = 52; // - // treeGridControlEx - // - this.treeGridControlEx.AdapterObj = null; - this.treeGridControlEx.Dock = System.Windows.Forms.DockStyle.Fill; - this.treeGridControlEx.Location = new System.Drawing.Point(2, 29); - this.treeGridControlEx.Margin = new System.Windows.Forms.Padding(4); - this.treeGridControlEx.Name = "treeGridControlEx"; - this.treeGridControlEx.SiftEnumObj = Lskj.Control.GridControlEx.HeaderSiftEnum.Sum; - this.treeGridControlEx.Size = new System.Drawing.Size(376, 500); - this.treeGridControlEx.TabIndex = 29; - // // FrmMain // this.Appearance.BackColor = System.Drawing.SystemColors.Control; diff --git a/插件库/Lskj.PubBomAlter/FrmMain.cs b/插件库/Lskj.PubBomAlter/FrmMain.cs index 736599a..9d22845 100644 --- a/插件库/Lskj.PubBomAlter/FrmMain.cs +++ b/插件库/Lskj.PubBomAlter/FrmMain.cs @@ -493,7 +493,7 @@ namespace Lskj.PubBomAlter } } - + /// /// 添加事件 @@ -529,6 +529,11 @@ namespace Lskj.PubBomAlter TreeListHitInfo _hitInfo = treeListGrid.CalcHitInfo(pt); if (_hitInfo != null && _hitInfo.Node != null) { + if (BomAlterModel != null && BomAlterModel.MaintabFocusedRow != null) + { + TopControlObj.ResetControlValue(); + TopControlObj.SetAllControlValue(BomAlterModel.MaintabFocusedRow); + } TreeListNode focusedNode = treeListGrid.FocusedNode; DataRow dataRow = (treeListGrid.GetDataRecordByNode(focusedNode) as DataRowView).Row; if (dataRow.Table.Columns.Contains("Plm_lmb_SmartBmFa")) @@ -572,7 +577,7 @@ namespace Lskj.PubBomAlter TreeList treeListGrid = treeGridControlEx.TreeListObj; TreeListNode focusedNode = treeListGrid.FocusedNode; DataRow dataRow = (treeListGrid.GetDataRecordByNode(focusedNode) as DataRowView).Row; - if (focusedNode.ParentNode == null || (focusedNode.ParentNode != null && (focusedNode.ParentNode["Plm_lmb_updatetig"] + "").Equals("1"))) + if (focusedNode.ParentNode == null || (focusedNode.ParentNode != null && (focusedNode.ParentNode[$"{sysModel.PrefixKey}updatetig"] + "").Equals("1"))) { string sourceSql = GcMainModuleObj.MenuSql; sourceSql = ReplaceHelper.ReplaceRowParam(dataRow, sourceSql); @@ -603,21 +608,30 @@ namespace Lskj.PubBomAlter if (setModel != null && (setModel.Item.Equals("1") || setModel.Item.Equals("5"))) { string controlName = !string.IsNullOrWhiteSpace(setModel.DbName) ? setModel.DbName : setModel.SysName; - string selectSql = "select * from(select row_number() over (partition by mid order by orderid)hh,* from p_productsyslisttab)a where mid = '{0}' order by '{1}'"; - if (!string.IsNullOrEmpty(setModel.OrderField)) + DataTable dataSource = null; + string existsPr = BaseImpl.GetResult("SELECT 1 FROM sys.procedures WHERE name = 'ParameterList' AND schema_id = SCHEMA_ID('dbo')") + ""; + if (existsPr.Equals("1")) { - selectSql = string.Format(selectSql, setModel.Id, setModel.OrderField); + dataSource = BaseImpl.GetDataTableResult($"exec ParameterList '{setModel.Id}',''"); } else { - selectSql = string.Format(selectSql, setModel.Id, "orderid"); + string selectSql = "select midno as id,sysnamelist as sysnamelist,bak as bak from (select row_number() over (partition by mid order by orderid)hh,* from p_productsyslisttab)a where mid = '{0}' order by {1}"; + if (!string.IsNullOrEmpty(setModel.OrderField)) + { + selectSql = string.Format(selectSql, setModel.Id, setModel.OrderField); + } + else + { + selectSql = string.Format(selectSql, setModel.Id, "orderid"); + } + dataSource = BaseImpl.GetDataTableResult(selectSql); } - DataTable dataSource = BaseImpl.GetDataTableResult(selectSql); this.gcDetailControlEx.GridControl.DataSource = dataSource; string editValue = this.GetControlValue(controlName, true); if (!string.IsNullOrEmpty(editValue)) { - DataRow selectRow = dataSource.AsEnumerable().Where(n => (n["midno"] + "").Equals(editValue)).FirstOrDefault(); + DataRow selectRow = dataSource.AsEnumerable().Where(n => (n["id"] + "").Equals(editValue)).FirstOrDefault(); if (selectRow != null) { int index = dataSource.Rows.IndexOf(selectRow); @@ -657,7 +671,7 @@ namespace Lskj.PubBomAlter /// private void OnTreeListObjCustomDrawNodeButton(object sender, CustomDrawNodeButtonEventArgs e) { - if ((e.Node["Plm_lmb_updatetig"] + "").Equals("1")) + if (((treeGridControlEx.TreeListObj.GetDataRecordByNode(e.Node) as DataRowView).Row[$"{sysModel.PrefixKey}updatetig"] + "").Equals("1")) { Image image = Properties.Resources.update; Rectangle nodeBounds = e.Bounds; @@ -800,9 +814,9 @@ namespace Lskj.PubBomAlter x += baseControl.Width + 15; } } - //SetControlDataSource(); - Thread thread = new Thread(SetControlDataSource); - thread.Start(); + SetControlDataSource(); + //Thread thread = new Thread(SetControlDataSource); + //thread.Start(); } } catch (Exception) @@ -940,10 +954,17 @@ namespace Lskj.PubBomAlter string controlName = !string.IsNullOrWhiteSpace(setModel.DbName) ? "txt_" + setModel.DbName : "txt_" + setModel.SysName; System.Windows.Forms.Control ctr = this.MainControlPanel.Controls.Find(controlName, false).FirstOrDefault(); BaseUserControl baseUserControl = ctr as BaseUserControl; - baseUserControl.Invoke(new Action(() => + if (baseUserControl.InvokeRequired) + { + baseUserControl.Invoke(new Action(() => + { + baseUserControl.EditText = defaultValue; + })); + } + else { baseUserControl.EditText = defaultValue; - })); + } } } if (OnAfterDataSourceCallback != null) @@ -951,8 +972,9 @@ namespace Lskj.PubBomAlter OnAfterDataSourceCallback(null, null); } } - catch (Exception) + catch (Exception ex) { + MessageUtil.Show(ex.Message); } } /// @@ -985,16 +1007,16 @@ namespace Lskj.PubBomAlter BaseUserControl item = specControls[i]; if (string.IsNullOrWhiteSpace(item.EditText)) continue; SysSetModel sysSetModel = item.Tag as SysSetModel; - string editText = GetBaseControlValue(item); + string editText = GetBaseControlValue(item, sysSetModel.FxTypeGg); if (!string.IsNullOrWhiteSpace(editText)) { if (i == 0) { - specText.Append(string.Format("{0}", editText)); + specText.Append(string.Format("{0}{1}{2}", sysSetModel.ConnectorStrGg, editText, sysSetModel.EndConnectorStrGg)); } else { - specText.Append(string.Format("{0}{1}", sysSetModel.ConnectorStr, editText)); + specText.Append(string.Format("{0}{1}{2}{3}", sysSetModel.ConnectorStr, sysSetModel.ConnectorStrGg, editText, sysSetModel.EndConnectorStrGg)); } } } @@ -1009,16 +1031,16 @@ namespace Lskj.PubBomAlter BaseUserControl item = modelControls[i]; if (string.IsNullOrWhiteSpace(item.EditText)) continue; SysSetModel sysSetModel = item.Tag as SysSetModel; - string editText = GetBaseControlValue(item); + string editText = GetBaseControlValue(item, sysSetModel.FxTypeXh); if (!string.IsNullOrWhiteSpace(editText)) { if (i == 0) { - modelText.Append(string.Format("{0}", editText)); + modelText.Append(string.Format("{0}{1}{2}", sysSetModel.ConnectorStrXh, editText, sysSetModel.EndConnectorStrXh)); } else { - modelText.Append(string.Format("{0}{1}", sysSetModel.ConnectorStr, editText)); + modelText.Append(string.Format("{0}{1}{2}{3}", sysSetModel.ConnectorStr, sysSetModel.ConnectorStrXh, editText, sysSetModel.EndConnectorStrXh)); } } } @@ -1033,7 +1055,7 @@ namespace Lskj.PubBomAlter BaseUserControl item = zhsxControls[i]; if (string.IsNullOrWhiteSpace(item.EditText)) continue; SysSetModel sysSetModel = item.Tag as SysSetModel; - string editText = item.EditText; + string editText = GetBaseControlValue(item, sysSetModel.FxTypeZhsx); if (editText.Equals("无")) { editText = ""; @@ -1042,11 +1064,11 @@ namespace Lskj.PubBomAlter { if (i == 0) { - zhsxText.Append(string.Format("{0}", editText)); + zhsxText.Append(string.Format("{0}{1}{2}", sysSetModel.ConnectorStrZhsx, editText, sysSetModel.EndConnectorStrZhsx)); } else { - zhsxText.Append(string.Format("{0}{1}", sysSetModel.ConnectorStr, editText)); + zhsxText.Append(string.Format("{0}{1}{2}{3}", sysSetModel.ConnectorStr, sysSetModel.ConnectorStrZhsx, editText, sysSetModel.EndConnectorStrZhsx)); } } } @@ -1061,7 +1083,7 @@ namespace Lskj.PubBomAlter BaseUserControl item = czControls[i]; if (string.IsNullOrWhiteSpace(item.EditText)) continue; SysSetModel sysSetModel = item.Tag as SysSetModel; - string editText = item.EditText; + string editText = GetBaseControlValue(item, sysSetModel.FxTypeCz); if (editText.Equals("无")) { editText = ""; @@ -1070,11 +1092,11 @@ namespace Lskj.PubBomAlter { if (i == 0) { - czText.Append(string.Format("{0}", editText)); + czText.Append(string.Format("{0}{1}{2}", sysSetModel.ConnectorStrCz, editText, sysSetModel.EndConnectorStrCz)); } else { - czText.Append(string.Format("{0}{1}", sysSetModel.ConnectorStr, editText)); + czText.Append(string.Format("{0}{1}{2}{3}", sysSetModel.ConnectorStr, sysSetModel.ConnectorStrCz, editText, sysSetModel.EndConnectorStrCz)); } } } @@ -1088,32 +1110,34 @@ namespace Lskj.PubBomAlter /// /// /// - private string GetBaseControlValue(BaseUserControl baseUserControl) + private string GetBaseControlValue(BaseUserControl baseUserControl, string type = "") { string rtnValue = ""; try { SysSetModel setModel = baseUserControl.Tag as SysSetModel; + if (string.IsNullOrWhiteSpace(type)) type = setModel.FxType; + switch (setModel.Item)//控件类型 { case "1": LabelAutoTextEdit labelAutoTextEdit = baseUserControl as LabelAutoTextEdit; - if (setModel.FxType.Equals("名称")) + if (type.Equals("名称")) { rtnValue = labelAutoTextEdit.EditText; } - else if (setModel.FxType.Equals("编码")) + else if (type.Equals("编码")) { rtnValue = labelAutoTextEdit.EditValue; } break; case "3": LabelMultiAutoTextEdit labelMultiAutoTextEdit = baseUserControl as LabelMultiAutoTextEdit; - if (setModel.FxType.Equals("名称")) + if (type.Equals("名称")) { rtnValue = labelMultiAutoTextEdit.EditText; } - else if (setModel.FxType.Equals("编码")) + else if (type.Equals("编码")) { rtnValue = labelMultiAutoTextEdit.EditValue; } @@ -1126,15 +1150,29 @@ namespace Lskj.PubBomAlter //下拉备注框 case "5": LabelAutoMemoEdit labelAutoMemoEdit = baseUserControl as LabelAutoMemoEdit; - if (setModel.FxType.Equals("名称")) + if (type.Equals("名称")) { rtnValue = labelAutoMemoEdit.EditText; } - else if (setModel.FxType.Equals("编码")) + else if (type.Equals("编码")) { rtnValue = labelAutoMemoEdit.EditValue; } break; + //标签 + case "6": + rtnValue = ""; + break; + //复选框 + case "7": + LabelCheckEdit checkEdit = baseUserControl as LabelCheckEdit; + rtnValue = checkEdit.EditText; + break; + //日期框 + case "9": + LabelDateEdit dateEdit = baseUserControl as LabelDateEdit; + rtnValue = dateEdit.TextEdit.EditValue == null ? dateEdit.EditText : dateEdit.TextEdit.EditValue.ToString(); + break; case "2": default: LabelTextEdit labelTextEdit = baseUserControl as LabelTextEdit; @@ -1344,8 +1382,8 @@ namespace Lskj.PubBomAlter List modelControls = this.MainControlPanel.Controls.Cast().Where(n => !string.IsNullOrEmpty((n.Tag as SysSetModel).DbName)).OrderBy(n => (n.Tag as SysSetModel).OrderId).ToList(); if (selectSource == null) { - primaryVlaue = dataRow["plm_lmb_id"] + ""; - selectSource = BaseImpl.GetDataRowResult(string.Format("select * from Plm_MbomListTab where plm_lmb_id = '{0}'", primaryVlaue)); + primaryVlaue = dataRow[$"{sysModel.PrefixKey}id"] + ""; + selectSource = BaseImpl.GetDataRowResult($"select * from {sysModel.MenuTable} where {sysModel.PrefixKey}id = '{primaryVlaue}'"); foreach (BaseUserControl item in modelControls) { SysSetModel sysSetModel = item.Tag as SysSetModel; @@ -1526,7 +1564,7 @@ namespace Lskj.PubBomAlter { TreeListNode focusedNode = treeGridControlEx.TreeListObj.FocusedNode; DataRow focusedRow = (treeGridControlEx.TreeListObj.GetDataRecordByNode(focusedNode) as DataRowView).Row; - if (focusedNode.ParentNode == null || (focusedNode.ParentNode != null && (focusedNode.ParentNode["Plm_lmb_updatetig"] + "").Equals("1"))) + if (focusedNode.ParentNode == null || (focusedNode.ParentNode != null && ((treeGridControlEx.TreeListObj.GetDataRecordByNode(focusedNode.ParentNode) as DataRowView).Row[$"{sysModel.PrefixKey}updatetig"] + "").Equals("1"))) { try { diff --git a/插件库/Lskj.PubBomAlter/Model/SysSetModel.cs b/插件库/Lskj.PubBomAlter/Model/SysSetModel.cs index 826964c..a851591 100644 --- a/插件库/Lskj.PubBomAlter/Model/SysSetModel.cs +++ b/插件库/Lskj.PubBomAlter/Model/SysSetModel.cs @@ -143,6 +143,71 @@ namespace Lskj.PubBomAlter.Model /// /// The union values. public string OrderField { get; set; } + /// + /// 日期格式 + /// + public string DataFormat { get; set; } + /// + /// 必填条件 + /// + public string RequiredCond { get; set; } + + /// + /// 连接符(后方) + /// + public string EndConnectorStr { get; set; } + + + /// + /// 反写类型(反写规格) + /// + public string FxTypeGg { get; set; } + /// + /// 反写类型(反写型号) + /// + public string FxTypeXh { get; set; } + /// + /// 反写类型(反写综合属性) + /// + public string FxTypeZhsx { get; set; } + /// + /// 反写类型(反写材质) + /// + public string FxTypeCz { get; set; } + + + /// + /// 前连接符 (反写规格) + /// + public string ConnectorStrGg { get; set; } + // + /// 后连接符 (反写规格) + /// + public string EndConnectorStrGg { get; set; } + /// + /// 前连接符 (反写型号) + /// + public string ConnectorStrXh { get; set; } + // + /// 后连接符 (反写型号) + /// + public string EndConnectorStrXh { get; set; } + /// + /// 前连接符 (反写综合属性) + /// + public string ConnectorStrZhsx { get; set; } + // + /// 后连接符 (反写综合属性) + /// + public string EndConnectorStrZhsx { get; set; } + /// + /// 前连接符 (反写材质) + /// + public string ConnectorStrCz { get; set; } + // + /// 后连接符 (反写材质) + /// + public string EndConnectorStrCz { get; set; } public SysSetModel(DataRow rowItem) @@ -176,16 +241,30 @@ namespace Lskj.PubBomAlter.Model this.DataSourceType = rowItem.Table.Columns.Contains("DataSourceType") ? rowItem["DataSourceType"] + "" : ""; this.DataSourceSql = rowItem.Table.Columns.Contains("DataSourceSql") ? rowItem["DataSourceSql"] + "" : ""; this.BomTig = rowItem.Table.Columns.Contains("BomTig") ? rowItem["BomTig"] == DBNull.Value ? (int?)null : Convert.ToInt32(rowItem["BomTig"] + "") : 0; + this.ConnectorStr = rowItem.Table.Columns.Contains("ConnectorStr") ? rowItem["ConnectorStr"] + "" : ""; + this.EndConnectorStr = rowItem.Table.Columns.Contains("EndConnectorStr") ? rowItem["EndConnectorStr"] + "" : ""; + this.DefaultID = rowItem.Table.Columns.Contains("defaultID") ? rowItem["defaultID"] + "" : ""; this.DefaultName = rowItem.Table.Columns.Contains("defaultName") ? rowItem["defaultName"] + "" : ""; this.MustTig = rowItem.Table.Columns.Contains("musttig") ? rowItem["musttig"] == DBNull.Value ? (int?)null : Convert.ToInt32(rowItem["musttig"] + "") : 0; this.UnionFields = rowItem.Table.Columns.Contains("RelevanceField") ? rowItem["RelevanceField"] + "" : ""; this.UnionValues = rowItem.Table.Columns.Contains("RelevanceValue") ? rowItem["RelevanceValue"] + "" : ""; this.ProhibitEdited = rowItem.Table.Columns.Contains("ProhibitEdited") ? "1".Equals(rowItem["ProhibitEdited"] + "") : false; - this.LookUpFieldsWidth = ""; + this.LookUpFieldsWidth = rowItem.Table.Columns.Contains("LookUpFieldsWidth") ? rowItem["LookUpFieldsWidth"] + "" : ""; this.LookUpWidth = 0; this.OrderField = rowItem.Table.Columns.Contains("lsidx_id") ? rowItem["lsidx_id"] + "" : ""; - } - } -} + this.DataFormat = rowItem.Table.Columns.Contains("DataFormat") ? rowItem["DataFormat"] + "" : ""; + this.RequiredCond = rowItem.Table.Columns.Contains("RequiredCond") ? rowItem["RequiredCond"] + "" : ""; + this.DisableCond = rowItem.Table.Columns.Contains("DisableCond") ? rowItem["DisableCond"] + "" : ""; + + + this.FxTypeGg = rowItem.Table.Columns.Contains("FxTypeGg") && !string.IsNullOrEmpty(rowItem["FxTypeGg"] + "") ? rowItem["FxTypeGg"] + "" : this.FxType; + this.FxTypeXh = rowItem.Table.Columns.Contains("FxTypeXh") && !string.IsNullOrEmpty(rowItem["FxTypeXh"] + "") ? rowItem["FxTypeXh"] + "" : this.FxType; + this.FxTypeZhsx = rowItem.Table.Columns.Contains("FxTypeZhsx") && !string.IsNullOrEmpty(rowItem["FxTypeZhsx"] + "") ? rowItem["FxTypeZhsx"] + "" : this.FxType; + this.FxTypeCz = rowItem.Table.Columns.Contains("FxTypeCz") && !string.IsNullOrEmpty(rowItem["FxTypeCz"] + "") ? rowItem["FxTypeCz"] + "" : this.FxType; + + this.ConnectorStrGg = rowItem.Table.Columns.Contains("ConnectorStrGg") && !string.IsNullOrEmpty(rowItem["ConnectorStrGg"] + "") ? rowItem["ConnectorStrGg"] + "" : ""; + this.EndConnectorStrGg = rowItem.Table.Columns.Contains("EndConnectorStrGg") && !string.IsNullOrEmpty(rowItem["EndConnectorStrGg"] + "") ? rowItem["EndConnectorStrGg"] + "" : ""; + + this.ConnectorStrXh = rowItem.Table.Columns.Contains("ConnectorStrXh") && !string.IsNullOrEmpty(rowItem["ConnectorStrXh"] + \ No newline at end of file