using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using GThinking.N_MISPRO; using GThinking.N_MISPRO.Data; using GThinking.N_MODEL.Page; using GThinking.N_MODEL.Dialog; using GThinking.N_MISPRO.Utility; namespace GThinking.N_XLJC { public partial class CPMLInfo : SingleCardBase { CPML entity = new CPML(); protected void Page_Load(object sender, EventArgs e) { this.UMID = 101421007; this.UMName = "线缆产品目录"; this.CurMaster = Master; this.CurEntity = entity; this.PageHeight = 400; this.PageWidth = 500; this.Master.EnableAttachBtn = false; if (!IsPostBack) { InitControls(); } base.InitPage(); } #region 模板事件继承 protected override void LoadRecord() { if (!IsPostBack) { this.CurEntity.Param.Add("XLXSCPML_CPMLID", PageParam.GetRTrimString("XLXSCPML_CPMLID")); } else { this.CurEntity.Param.Add("XLXSCPML_CPMLID", txtOLDCPMLID.Value); } base.LoadRecord(); } protected override void OnNewRecorder() { base.OnNewRecorder(); datQYSJ.Text = CMISproConvert.ConvertDate(DateTime.Now.ToString()); chkTYBZ.Checked = false; txtWHR.Text = tSession.UserName; txtWHRID.Value = tSession.UserId; datWHSJ.Value = CMISproConvert.ConvertTime(DateTime.Now); chkSJY.Checked = true; chkBJY.Checked = true; chkTJY.Checked = true; } protected override void OnCopyRecorder() { base.OnCopyRecorder(); datQYSJ.Text = CMISproConvert.ConvertDate(DateTime.Now.ToString()); chkTYBZ.Checked = false; datTYSJ.Text = ""; txtWHR.Text = tSession.UserName; txtWHRID.Value = tSession.UserId; datWHSJ.Value = CMISproConvert.ConvertTime(DateTime.Now); } protected override bool DataLogicValid() { if (cbxCPMLLX.SelectedValue.Trim().Equals("Y"))//组合 { if (cbxCPMLIDS.SelectedValue.Trim().Equals("")) { ShowMessage("请选择组合产品目录包含的单一产品目录!"); return false; } } if (datQYSJ.Text.Trim() != "" && datTYSJ.Text.Trim() != "") { if (Convert.ToDateTime(datQYSJ.Text.Trim()) > Convert.ToDateTime(datTYSJ.Text.Trim())) { ShowMessage("停用日期不允许小于启用日期!"); return false; } } if ((!chkSJY.Checked) && (!chkBJY.Checked) && (!chkTJY.Checked)) { ShowMessage("【设计】、【对外展示】、【调价】不允许同时不勾!"); return false; } if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSCPML where XLXSCPML_CPMLMC ='{0}' and XLXSCPML_CPMLID <>'{1}' ", txtCPMLMC.Text.Trim(), txtOLDCPMLID.Value.Trim()))) { ShowMessage(string.Format("已存在产品目录名称为【{0}】的记录,不允许保存!", txtCPMLMC.Text.Trim())); return false; } return base.DataLogicValid(); } protected override bool Master_BeforeDeleteAction(object sender, EventArgs e) { if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSCPML where isnull(XLXSCPML_CPMLIDS,' ')<>' ' and ','||rtrim(XLXSCPML_CPMLIDS)||',' like '{0}'", "%," + txtCPMLID.Text.Trim() + ",%"))) { ShowMessage("已被组合产品目录引用,不允许删除!"); return false; } string sCPMLID = txtCPMLID.Text.Trim(); //XLXSCLQD_CPMLID string sSQL = string.Format("select top 1 XLXSCLQD_JGCZBID from XLXSCLQD where XLXSCLQD_CPMLID = '{0}' ", sCPMLID); if (CMISproDataBase.ExistsRecord("DBERP", sSQL)) { ShowMessage("已被线缆销售材料清单使用,不允许删除!"); return false; } //XLJGCZBML_CPMLID sSQL = string.Format("select top 1 XLJGCZBML_JGCZBID from XLJGCZBML where XLJGCZBML_CPMLID = '{0}' ", sCPMLID); if (CMISproDataBase.ExistsRecord("DBERP", sSQL)) { ShowMessage("已被线缆结构尺重表目录使用,不允许删除!"); return false; } //XLXSBJXHML_CPMLID sSQL = string.Format("select top 1 XLXSBJXHML_XLXHID from XLXSBJXHML where XLXSBJXHML_CPMLID = '{0}' ", sCPMLID); if (CMISproDataBase.ExistsRecord("DBERP", sSQL)) { ShowMessage("已被线缆销售报价型号目录使用,不允许删除!"); return false; } //XLXSBJTJXHML_CPMLID sSQL = string.Format("select top 1 XLXSBJTJXHML_XLXHID from XLXSBJTJXHML where XLXSBJTJXHML_CPMLID = '{0}' ", sCPMLID); if (CMISproDataBase.ExistsRecord("DBERP", sSQL)) { ShowMessage("已被线缆销售报价调价型号目录使用,不允许删除!"); return false; } return base.Master_BeforeDeleteAction(sender, e); } protected override void BeforeSave(TDatabase db, ref bool ActionIsDone) { txtWHR.Text = tSession.UserName; txtWHRID.Value = tSession.UserId; datWHSJ.Value = CMISproConvert.ConvertTime(DateTime.Now); base.BeforeSave(db, ref ActionIsDone); } protected override void SetControlState() { base.SetControlState(); txtWHR.Enabled = false; datWHSJ.Enabled = false; if (ControlState != TControlState.ctsBrowse) { if (cbxCPMLLX.SelectedValue.Trim().Equals("Y"))//组合 { cbxCPMLIDS.Enabled = true; } else { cbxCPMLIDS.Enabled = false; } } string sCPMLID = txtCPMLID.Text.Trim(); if (ControlState == TControlState.ctsEdit) { //已被组合产品目录、线缆销售报价型号目录、线缆销售报价调价型号目录引用 string sSQL_XLXSCPML=string.Format("select 1 from XLXSCPML where isnull(XLXSCPML_CPMLIDS,' ')<>' ' and ','||rtrim(XLXSCPML_CPMLIDS)||',' like '{0}'", "%," + sCPMLID + ",%"); string sSQL_XLXSBJXHML = string.Format("select top 1 XLXSBJXHML_XLXHID from XLXSBJXHML where XLXSBJXHML_CPMLID = '{0}' ",sCPMLID); string sSQL_XLXSBJTJXHML = string.Format("select top 1 XLXSBJTJXHML_XLXHID from XLXSBJTJXHML where XLXSBJTJXHML_CPMLID = '{0}' ", sCPMLID); bool bCPMLYY = CMISproDataBase.ExistsRecord("DBERP", sSQL_XLXSCPML); bool bXHMLYY = CMISproDataBase.ExistsRecord("DBERP", sSQL_XLXSBJXHML); bool bTJXHMLYY = CMISproDataBase.ExistsRecord("DBERP", sSQL_XLXSBJTJXHML); if (bCPMLYY || bXHMLYY || bTJXHMLYY) { txtCPMLID.Enabled = false; cbxCPMLLX.Enabled = false; if (bXHMLYY) chkBJY.Enabled = false; if (bTJXHMLYY) chkTJY.Enabled = false; } //产品目录已被XLXSCLQD_CPMLID、XLJGCZBML_CPMLID使用 string sSQL_XLXSCLQD = string.Format("select top 1 XLXSCLQD_JGCZBID from XLXSCLQD where XLXSCLQD_CPMLID = '{0}' ", sCPMLID); string sSQL_XLJGCZBML = string.Format("select top 1 XLJGCZBML_JGCZBID from XLJGCZBML where XLJGCZBML_CPMLID = '{0}' ", sCPMLID); if (CMISproDataBase.ExistsRecord("DBERP", sSQL_XLXSCLQD) || CMISproDataBase.ExistsRecord("DBERP", sSQL_XLJGCZBML)) { txtCPMLID.Enabled = false; } } else if (ControlState == TControlState.ctsInsert || ControlState == TControlState.ctsCopy) { txtCPMLID.Enabled = true; chkBJY.Enabled = true; chkTJY.Enabled = true; } } protected override void AfterSave(TDatabase db, ref bool ActionIsDone) { TSQL SQL = new TSQL(db); SQL.Clear(); SQL.Add(" merge into XLXSCPML a "); SQL.Add(" using "); SQL.Add("( "); SQL.Add("select "); SQL.Add(" XLXSCPML_CPMLID, "); SQL.Add(" row_number() "); SQL.Add(" over(order by XLXSCPML_XSXH,XLXSCPML_CPMLID) as XH "); SQL.Add(" from XLXSCPML"); SQL.Add(" where 1=1 "); SQL.Add(" ) b "); SQL.Add(" on( "); SQL.Add(" a.XLXSCPML_CPMLID=b.XLXSCPML_CPMLID "); SQL.Add(" ) "); SQL.Add(" when matched then update set a.XLXSCPML_XSXH=b.XH "); db.ExecSQL(SQL); SQL.Clear(); SQL.Add("select XLXSCPML_XSXH from XLXSCPML where XLXSCPML_CPMLID=:pCPMLID"); SQL.ParamByName("pCPMLID").Value = txtCPMLID.Text.Trim(); DataSet ds = db.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { txtXSXH.Value = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSCPML_XSXH"].ToString()); } base.AfterSave(db, ref ActionIsDone); } protected override void SetComboxItems() { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); if (ControlState == TControlState.ctsBrowse) { sql.Clear(); sql.Add("select XLXSCPML_CPMLID,XLXSCPML_CPMLMC from XLXSCPML where 1=1 and " + CMISproDataBase.GetWhereEqual("XLXSCPML_CPMLID", cbxCPMLIDS.SelectedValue.Trim()) + " order by XLXSCPML_CPMLID"); DataSet ds = dberp.OpenDataSet(sql); cbxCPMLIDS.ClearItems(); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { cbxCPMLIDS.Items.Add(new ListItem(ds.Tables[0].Rows[i]["XLXSCPML_CPMLMC"].ToString().Trim(), ds.Tables[0].Rows[i]["XLXSCPML_CPMLID"].ToString().Trim())); } } else { //被组合产品目录引用的单一产品目录一定只能是基价价格表模型的 sql.Clear(); sql.Add("select XLXSCPML_CPMLID,XLXSCPML_CPMLMC from XLXSCPML where XLXSCPML_CPMLLX='N' and isnull(XLXSCPML_TYBZ,' ')<>'Y' order by XLXSCPML_CPMLID"); DataSet ds = dberp.OpenDataSet(sql); cbxCPMLIDS.ClearItems(); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { cbxCPMLIDS.Items.Add(new ListItem(ds.Tables[0].Rows[i]["XLXSCPML_CPMLMC"].ToString().Trim(), ds.Tables[0].Rows[i]["XLXSCPML_CPMLID"].ToString().Trim())); } } base.SetComboxItems(); } protected override bool Master_AfterSaveAction(object sender, EventArgs e) { txtOLDCPMLID.Value = txtCPMLID.Text.Trim(); return base.Master_AfterSaveAction(sender, e); } #endregion #region 自定义事件 private void InitControls() { cbxCPMLLX.ClearItems(); cbxCPMLLX.Items.Add(new ListItem("组合产品目录", "Y")); cbxCPMLLX.Items.Add(new ListItem("单一产品目录", "N")); } #endregion #region 控件事件 protected void cbxCPMLLX_SelectedIndexChanged(object sender, EventArgs e) { if (cbxCPMLLX.SelectedValue.Trim().Equals("Y"))//组合 { cbxCPMLIDS.Enabled = true; } else { cbxCPMLIDS.SelectedValue = ""; cbxCPMLIDS.Enabled = false; } } protected void chkTYBZ_CheckedChanged(object sender, EventArgs e) { if (chkTYBZ.Checked) { if (datTYSJ.Text.Trim().Equals("")) { datTYSJ.Text = CMISproConvert.ConvertDate(DateTime.Now.ToString()); } } else if (chkTYBZ.Checked == false) { datQYSJ.Text = CMISproConvert.ConvertDate(DateTime.Now.ToString()); datTYSJ.Text = ""; } } protected void datTYSJ_TextChanged(object sender, EventArgs e) { if (!datTYSJ.Text.Trim().Equals("")) { if (chkTYBZ.Checked == false) { chkTYBZ.Checked = true; } } } #endregion } }