SVN-Revision: r850
This commit is contained in:
wyf
2025-07-10 02:40:40 +00:00
parent 5c3a1675e1
commit 280cc36dea
4 changed files with 171 additions and 82 deletions
+1 -29
View File
@@ -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<JObject>(args[args.Length - 1]);
JArray jArray = new JArray();
jArray.Add(rowObject);
DataTable dataTable = JsonConvert.DeserializeObject<DataTable>(JsonConvert.SerializeObject(jArray));
this.MaintabFocusedRow = dataTable.Rows[0];
}
catch (Exception)
{
}
}
}
}
}
+12 -12
View File
@@ -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;
+75 -37
View File
@@ -493,7 +493,7 @@ namespace Lskj.PubBomAlter
}
}
/// <summary>
/// 添加事件
@@ -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
/// <param name="e"></param>
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);
}
}
/// <summary>
@@ -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
/// <param name="baseUserControl"></param>
/// <param name="setModel"></param>
/// <returns></returns>
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<BaseUserControl> modelControls = this.MainControlPanel.Controls.Cast<BaseUserControl>().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
{
@@ -143,6 +143,71 @@ namespace Lskj.PubBomAlter.Model
/// </summary>
/// <value>The union values.</value>
public string OrderField { get; set; }
/// <summary>
/// 日期格式
/// </summary>
public string DataFormat { get; set; }
/// <summary>
/// 必填条件
/// </summary>
public string RequiredCond { get; set; }
/// <summary>
/// 连接符(后方)
/// </summary>
public string EndConnectorStr { get; set; }
/// <summary>
/// 反写类型(反写规格)
/// </summary>
public string FxTypeGg { get; set; }
/// <summary>
/// 反写类型(反写型号)
/// </summary>
public string FxTypeXh { get; set; }
/// <summary>
/// 反写类型(反写综合属性)
/// </summary>
public string FxTypeZhsx { get; set; }
/// <summary>
/// 反写类型(反写材质)
/// </summary>
public string FxTypeCz { get; set; }
/// <summary>
/// 前连接符 (反写规格)
/// </summary>
public string ConnectorStrGg { get; set; }
// <summary>
/// 后连接符 (反写规格)
/// </summary>
public string EndConnectorStrGg { get; set; }
/// <summary>
/// 前连接符 (反写型号)
/// </summary>
public string ConnectorStrXh { get; set; }
// <summary>
/// 后连接符 (反写型号)
/// </summary>
public string EndConnectorStrXh { get; set; }
/// <summary>
/// 前连接符 (反写综合属性)
/// </summary>
public string ConnectorStrZhsx { get; set; }
// <summary>
/// 后连接符 (反写综合属性)
/// </summary>
public string EndConnectorStrZhsx { get; set; }
/// <summary>
/// 前连接符 (反写材质)
/// </summary>
public string ConnectorStrCz { get; set; }
// <summary>
/// 后连接符 (反写材质)
/// </summary>
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"] +