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(); } /// /// 替换后三项与备注:浏览/空态禁用(仅用 Enabled);新增/复制/编辑启用。基类对 gtTextBox 的 ReadOnly 与本页无关。 /// 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; } /// /// 按 THLX 显示与统一列表相同的字段行(XLBJD_WBBJDDXListBase.GetVisibleDataFieldsForThLx)。 /// private void ApplyThLxFieldRowsVisibility() { Dictionary 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); } /// /// 仅浏览/空态禁用「替换前」型号、规格、电压三项;新增、复制、编辑时一律可改(保存时由 防重复)。 /// 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); } } }