2026821
This commit is contained in:
@@ -0,0 +1,326 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Web.UI.HtmlControls;
|
||||
using GThinking.N_MISPRO;
|
||||
using GThinking.N_MISPRO.Data;
|
||||
using GThinking.N_MODEL.Page;
|
||||
using GThinking.N_MISPRO.Utility;
|
||||
|
||||
namespace GThinking.N_XLXSBJ
|
||||
{
|
||||
public partial class XLBJD_WBBJDDXInfo : SingleCardBase
|
||||
{
|
||||
XLBJD_WBBJDDX entity = new XLBJD_WBBJDDX();
|
||||
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
this.UMID = 100860043;
|
||||
this.UMName = "外部线缆产品导入";
|
||||
this.CurMaster = Master;
|
||||
this.CurEntity = entity;
|
||||
this.Master.EnableAttachBtn = false;
|
||||
this.Master.EnablePrintBtn = false;
|
||||
this.PageWidth = 620;
|
||||
this.PageHeight = 580;
|
||||
base.InitPage();
|
||||
}
|
||||
|
||||
private string CurrentThLx
|
||||
{
|
||||
get
|
||||
{
|
||||
string lx = txtTHLX.Value.Trim();
|
||||
if (!lx.Equals(""))
|
||||
return lx;
|
||||
return PageParam.GetRTrimString("XLXSBJDXTHDZQD_THLX");
|
||||
}
|
||||
}
|
||||
|
||||
protected override void LoadRecord()
|
||||
{
|
||||
if (!IsPostBack)
|
||||
{
|
||||
this.CurEntity.Param.Add("XLXSBJDXTHDZQD_XH", PageParam.GetRTrimString("XLXSBJDXTHDZQD_XH"));
|
||||
this.CurEntity.Param.Add("XLXSBJDXTHDZQD_THLX", PageParam.GetRTrimString("XLXSBJDXTHDZQD_THLX"));
|
||||
}
|
||||
else
|
||||
{
|
||||
this.CurEntity.Param.Add("XLXSBJDXTHDZQD_XH", txtXH.Value.Trim());
|
||||
this.CurEntity.Param.Add("XLXSBJDXTHDZQD_THLX", txtTHLX.Value.Trim());
|
||||
}
|
||||
base.LoadRecord();
|
||||
}
|
||||
|
||||
protected override void OnNewRecorder()
|
||||
{
|
||||
base.OnNewRecorder();
|
||||
string lx = CurrentThLx;
|
||||
if (lx.Equals(""))
|
||||
lx = PageParam.GetRTrimString("XLXSBJDXTHDZQD_THLX");
|
||||
txtTHLX.Value = lx;
|
||||
txtWHR.Text = tSession.UserName;
|
||||
txtWHRID.Value = tSession.UserId;
|
||||
datWHSJ.Value = CMISproConvert.ConvertTime(DateTime.Now);
|
||||
txtSFYXL.Value = "N";
|
||||
txtTYBZ.Value = "N";
|
||||
txtTHYXJ.Value = GetThYxj(lx);
|
||||
}
|
||||
|
||||
protected override void OnCopyRecorder()
|
||||
{
|
||||
base.OnCopyRecorder();
|
||||
txtWHR.Text = tSession.UserName;
|
||||
txtWHRID.Value = tSession.UserId;
|
||||
datWHSJ.Value = CMISproConvert.ConvertTime(DateTime.Now);
|
||||
txtSFYXL.Value = "N";
|
||||
txtTYBZ.Value = "N";
|
||||
txtTHYXJ.Value = GetThYxj(txtTHLX.Value.Trim());
|
||||
}
|
||||
|
||||
protected override void SetControlState()
|
||||
{
|
||||
base.SetControlState();
|
||||
txtWHR.Enabled = false;
|
||||
datWHSJ.Enabled = false;
|
||||
ApplyThLxFieldRowsVisibility();
|
||||
ApplyThLxReplaceBeforeKeyReadOnly();
|
||||
ApplyReplaceAfterAndRemarkBrowseLock();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 替换后三项与备注:浏览/空态禁用(仅用 Enabled);新增/复制/编辑启用。基类对 gtTextBox 的 ReadOnly 与本页无关。
|
||||
/// </summary>
|
||||
private void ApplyReplaceAfterAndRemarkBrowseLock()
|
||||
{
|
||||
bool locked = ControlState == TControlState.ctsBrowse || ControlState == TControlState.ctsNull;
|
||||
txtTHHXHZF.Enabled = !locked;
|
||||
txtTHHGGZF.Enabled = !locked;
|
||||
txtTHHDYDJZF.Enabled = !locked;
|
||||
txtBZ.Enabled = !locked;
|
||||
}
|
||||
|
||||
private static void SetTrPairVisible(HtmlTableRow trSp, HtmlTableRow trRow, bool visible)
|
||||
{
|
||||
if (trSp != null)
|
||||
trSp.Visible = visible;
|
||||
if (trRow != null)
|
||||
trRow.Visible = visible;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 按 THLX 显示与统一列表相同的字段行(XLBJD_WBBJDDXListBase.GetVisibleDataFieldsForThLx)。
|
||||
/// </summary>
|
||||
private void ApplyThLxFieldRowsVisibility()
|
||||
{
|
||||
Dictionary<string, byte> vis = XLBJD_WBBJDDXListBase.GetVisibleDataFieldsForThLx(CurrentThLx);
|
||||
if (vis == null)
|
||||
{
|
||||
SetTrPairVisible(trSpTHQX, trRowTHQX, false);
|
||||
SetTrPairVisible(trSpTHHX, trRowTHHX, false);
|
||||
SetTrPairVisible(trSpTHQGG, trRowTHQGG, false);
|
||||
SetTrPairVisible(trSpTHHGG, trRowTHHGG, false);
|
||||
SetTrPairVisible(trSpTHQDY, trRowTHQDY, false);
|
||||
SetTrPairVisible(trSpTHHDY, trRowTHHDY, false);
|
||||
SetTrPairVisible(trSpBZ, trRowBZ, false);
|
||||
SetTrPairVisible(trSpWHR, trRowWHR, true);
|
||||
SetTrPairVisible(trSpWHSJ, trRowWHSJ, true);
|
||||
return;
|
||||
}
|
||||
|
||||
SetTrPairVisible(trSpTHQX, trRowTHQX, vis.ContainsKey("XLXSBJDXTHDZQD_THQXHZF"));
|
||||
SetTrPairVisible(trSpTHHX, trRowTHHX, vis.ContainsKey("XLXSBJDXTHDZQD_THHXHZF"));
|
||||
SetTrPairVisible(trSpTHQGG, trRowTHQGG, vis.ContainsKey("XLXSBJDXTHDZQD_THQGGZF"));
|
||||
SetTrPairVisible(trSpTHHGG, trRowTHHGG, vis.ContainsKey("XLXSBJDXTHDZQD_THHGGZF"));
|
||||
SetTrPairVisible(trSpTHQDY, trRowTHQDY, vis.ContainsKey("XLXSBJDXTHDZQD_THQDYDJZF"));
|
||||
SetTrPairVisible(trSpTHHDY, trRowTHHDY, vis.ContainsKey("XLXSBJDXTHDZQD_THHDYDJZF"));
|
||||
SetTrPairVisible(trSpBZ, trRowBZ, vis.ContainsKey("XLXSBJDXTHDZQD_BZ"));
|
||||
SetTrPairVisible(trSpWHR, trRowWHR, true);
|
||||
SetTrPairVisible(trSpWHSJ, trRowWHSJ, true);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 仅浏览/空态禁用「替换前」型号、规格、电压三项;新增、复制、编辑时一律可改(保存时由 <see cref="HasDuplicate"/> 防重复)。
|
||||
/// </summary>
|
||||
private void ApplyThLxReplaceBeforeKeyReadOnly()
|
||||
{
|
||||
bool browseOrNull = ControlState == TControlState.ctsBrowse || ControlState == TControlState.ctsNull;
|
||||
if (!browseOrNull)
|
||||
{
|
||||
txtTHQXHZF.Enabled = true;
|
||||
txtTHQGGZF.Enabled = true;
|
||||
txtTHQDYDJZF.Enabled = true;
|
||||
return;
|
||||
}
|
||||
|
||||
txtTHQXHZF.Enabled = false;
|
||||
txtTHQGGZF.Enabled = false;
|
||||
txtTHQDYDJZF.Enabled = false;
|
||||
}
|
||||
|
||||
private static string SqlEsc(string s)
|
||||
{
|
||||
if (s == null) return "";
|
||||
return s.Replace("'", "''");
|
||||
}
|
||||
|
||||
private static string GetThYxj(string thlx)
|
||||
{
|
||||
switch (thlx)
|
||||
{
|
||||
case "XHZZTH": return "1";
|
||||
case "GGZZTH": return "0.5";
|
||||
case "XHJQTH": return "2";
|
||||
case "DYDJJQTH": return "3";
|
||||
case "XHZZDYDJJQTHDYDJ": return "4";
|
||||
case "XHDYDJJQTH": return "5";
|
||||
case "XHGGJQTH": return "6";
|
||||
case "XHGGDYDJJQTH": return "7";
|
||||
default: return "0";
|
||||
}
|
||||
}
|
||||
|
||||
private bool HasDuplicate(string thlx, string excludeXh)
|
||||
{
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.Append("select 1 from XLXSBJDXTHDZQD where XLXSBJDXTHDZQD_THLX='").Append(SqlEsc(thlx)).Append("' ");
|
||||
switch (thlx)
|
||||
{
|
||||
case "XHZZTH":
|
||||
case "XHJQTH":
|
||||
sb.Append(" and XLXSBJDXTHDZQD_THQXHZF='").Append(SqlEsc(txtTHQXHZF.Text.Trim())).Append("' ");
|
||||
break;
|
||||
case "GGZZTH":
|
||||
sb.Append(" and XLXSBJDXTHDZQD_THQGGZF='").Append(SqlEsc(txtTHQGGZF.Text.Trim())).Append("' ");
|
||||
break;
|
||||
case "DYDJJQTH":
|
||||
sb.Append(" and XLXSBJDXTHDZQD_THQDYDJZF='").Append(SqlEsc(txtTHQDYDJZF.Text.Trim())).Append("' ");
|
||||
break;
|
||||
case "XHZZDYDJJQTHDYDJ":
|
||||
sb.Append(" and XLXSBJDXTHDZQD_THQXHZF='").Append(SqlEsc(txtTHQXHZF.Text.Trim())).Append("' ");
|
||||
sb.Append(" and XLXSBJDXTHDZQD_THQDYDJZF='").Append(SqlEsc(txtTHQDYDJZF.Text.Trim())).Append("' ");
|
||||
break;
|
||||
case "XHDYDJJQTH":
|
||||
sb.Append(" and XLXSBJDXTHDZQD_THQXHZF='").Append(SqlEsc(txtTHQXHZF.Text.Trim())).Append("' ");
|
||||
sb.Append(" and XLXSBJDXTHDZQD_THQDYDJZF='").Append(SqlEsc(txtTHQDYDJZF.Text.Trim())).Append("' ");
|
||||
break;
|
||||
case "XHGGJQTH":
|
||||
sb.Append(" and XLXSBJDXTHDZQD_THQXHZF='").Append(SqlEsc(txtTHQXHZF.Text.Trim())).Append("' ");
|
||||
sb.Append(" and XLXSBJDXTHDZQD_THQGGZF='").Append(SqlEsc(txtTHQGGZF.Text.Trim())).Append("' ");
|
||||
break;
|
||||
case "XHGGDYDJJQTH":
|
||||
sb.Append(" and XLXSBJDXTHDZQD_THQXHZF='").Append(SqlEsc(txtTHQXHZF.Text.Trim())).Append("' ");
|
||||
sb.Append(" and XLXSBJDXTHDZQD_THQGGZF='").Append(SqlEsc(txtTHQGGZF.Text.Trim())).Append("' ");
|
||||
sb.Append(" and XLXSBJDXTHDZQD_THQDYDJZF='").Append(SqlEsc(txtTHQDYDJZF.Text.Trim())).Append("' ");
|
||||
break;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
if (!string.IsNullOrEmpty(excludeXh))
|
||||
{
|
||||
sb.Append(" and not (XLXSBJDXTHDZQD_XH=").Append(excludeXh).Append(" and XLXSBJDXTHDZQD_THLX='")
|
||||
.Append(SqlEsc(thlx)).Append("') ");
|
||||
}
|
||||
return CMISproDataBase.ExistsRecord("DBERP", sb.ToString());
|
||||
}
|
||||
|
||||
protected override bool DataLogicValid()
|
||||
{
|
||||
string thlx = txtTHLX.Value.Trim();
|
||||
if (thlx.Equals(""))
|
||||
{
|
||||
ShowMessage("缺少替换类型,请从列表页进入维护。");
|
||||
return false;
|
||||
}
|
||||
|
||||
switch (thlx)
|
||||
{
|
||||
case "XHGGDYDJJQTH":
|
||||
if (txtTHQXHZF.Text.Trim().Equals("")) { ShowMessage("替换前型号不允许为空!"); return false; }
|
||||
if (txtTHQGGZF.Text.Trim().Equals("")) { ShowMessage("替换前规格不允许为空!"); return false; }
|
||||
if (txtTHQDYDJZF.Text.Trim().Equals("")) { ShowMessage("替换前电压等级不允许为空!"); return false; }
|
||||
if (txtTHHXHZF.Text.Trim().Equals("")) { ShowMessage("替换后型号不允许为空!"); return false; }
|
||||
if (txtTHHGGZF.Text.Trim().Equals("")) { ShowMessage("替换后规格不允许为空!"); return false; }
|
||||
if (txtTHHDYDJZF.Text.Trim().Equals("")) { ShowMessage("替换后电压等级不允许为空!"); return false; }
|
||||
break;
|
||||
case "XHGGJQTH":
|
||||
if (txtTHQXHZF.Text.Trim().Equals("")) { ShowMessage("替换前型号不允许为空!"); return false; }
|
||||
if (txtTHQGGZF.Text.Trim().Equals("")) { ShowMessage("替换前规格不允许为空!"); return false; }
|
||||
if (txtTHHXHZF.Text.Trim().Equals("")) { ShowMessage("替换后型号不允许为空!"); return false; }
|
||||
if (txtTHHGGZF.Text.Trim().Equals("")) { ShowMessage("替换后规格不允许为空!"); return false; }
|
||||
break;
|
||||
case "XHDYDJJQTH":
|
||||
if (txtTHQXHZF.Text.Trim().Equals("")) { ShowMessage("替换前型号不允许为空!"); return false; }
|
||||
if (txtTHQDYDJZF.Text.Trim().Equals("")) { ShowMessage("替换前电压等级不允许为空!"); return false; }
|
||||
if (txtTHHXHZF.Text.Trim().Equals("")) { ShowMessage("替换后型号不允许为空!"); return false; }
|
||||
if (txtTHHDYDJZF.Text.Trim().Equals("")) { ShowMessage("替换后电压等级不允许为空!"); return false; }
|
||||
break;
|
||||
case "XHZZDYDJJQTHDYDJ":
|
||||
if (txtTHQXHZF.Text.Trim().Equals("")) { ShowMessage("替换前型号不允许为空!"); return false; }
|
||||
if (txtTHQDYDJZF.Text.Trim().Equals("")) { ShowMessage("替换前电压等级不允许为空!"); return false; }
|
||||
if (txtTHHDYDJZF.Text.Trim().Equals("")) { ShowMessage("替换后电压等级不允许为空!"); return false; }
|
||||
break;
|
||||
case "DYDJJQTH":
|
||||
if (txtTHQDYDJZF.Text.Trim().Equals("")) { ShowMessage("替换前电压等级不允许为空!"); return false; }
|
||||
if (txtTHHDYDJZF.Text.Trim().Equals("")) { ShowMessage("替换后电压等级不允许为空!"); return false; }
|
||||
break;
|
||||
case "XHJQTH":
|
||||
case "XHZZTH":
|
||||
if (txtTHQXHZF.Text.Trim().Equals("")) { ShowMessage("替换前型号不允许为空!"); return false; }
|
||||
if (txtTHHXHZF.Text.Trim().Equals("")) { ShowMessage("替换后型号不允许为空!"); return false; }
|
||||
break;
|
||||
case "GGZZTH":
|
||||
if (txtTHQGGZF.Text.Trim().Equals("")) { ShowMessage("替换前规格不允许为空!"); return false; }
|
||||
if (txtTHHGGZF.Text.Trim().Equals("")) { ShowMessage("替换后规格不允许为空!"); return false; }
|
||||
break;
|
||||
default:
|
||||
ShowMessage("不支持的替换类型:" + thlx);
|
||||
return false;
|
||||
}
|
||||
|
||||
string ex = "";
|
||||
if (ControlState == TControlState.ctsEdit)
|
||||
ex = txtXH.Value.Trim();
|
||||
|
||||
if ((ControlState == TControlState.ctsInsert) || (ControlState == TControlState.ctsCopy))
|
||||
{
|
||||
if (HasDuplicate(thlx, ""))
|
||||
{
|
||||
ShowMessage("已存在相同「替换前」关键字段的规则,不允许重复!");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else if (ControlState == TControlState.ctsEdit)
|
||||
{
|
||||
if (HasDuplicate(thlx, ex))
|
||||
{
|
||||
ShowMessage("已存在相同「替换前」关键字段的规则,不允许重复!");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return base.DataLogicValid();
|
||||
}
|
||||
|
||||
protected override bool Master_BeforeSaveAction(object sender, EventArgs e)
|
||||
{
|
||||
string thlx = txtTHLX.Value.Trim();
|
||||
txtTHYXJ.Value = GetThYxj(thlx);
|
||||
if (txtSFYXL.Value.Trim().Equals(""))
|
||||
txtSFYXL.Value = "N";
|
||||
if (txtTYBZ.Value.Trim().Equals(""))
|
||||
txtTYBZ.Value = "N";
|
||||
txtWHR.Text = tSession.UserName;
|
||||
txtWHRID.Value = tSession.UserId;
|
||||
datWHSJ.Text = CMISproConvert.ConvertTime(System.DateTime.Now);
|
||||
|
||||
if ((ControlState == TControlState.ctsInsert) || (ControlState == TControlState.ctsCopy))
|
||||
{
|
||||
int iXH = CMISproDataBase.GetMaxXH("DBERP", "XLXSBJDXTHDZQD", "XLXSBJDXTHDZQD_XH",
|
||||
"XLXSBJDXTHDZQD_THLX ='" + SqlEsc(thlx) + "'") + 1;
|
||||
txtXH.Value = iXH.ToString();
|
||||
}
|
||||
return base.Master_BeforeSaveAction(sender, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user