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);
}
}
}