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_MODEL.Page; using GThinking.N_MISPRO.Utility; using GThinking.N_MISPRO; using GThinking.N_CONTROL; using GThinking.N_MISPRO.Data; using GThinking.N_WORKFLOW; using System.Text; using System.Collections.Generic; namespace GThinking.N_XLXSBJ { public partial class CLCBInfo : BDOBillBase { CLCB_BDOBill entity = new CLCB_BDOBill(); Dictionary aryTag = new Dictionary(); protected void Page_Load(object sender, EventArgs e) { this.UMID = 100860034; this.UMName = "线缆销售报价材料成本"; this.CurMaster = Master; this.CurEntity = entity; this.PageWidth = 750; this.PageHeight = 600; Master.BtnNewVisible = false; Master.BtnCopyVisible = false; Master.BtnEditVisible = false; Master.BtnSaveVisible = false; Master.BtnCancelVisible = false; Master.BtnDeleteVisible = false; AddListSetMap(new ListSet("", null, grdCLQDMX, entity.CLCBMX, null)); grdCLQDMX.FindColumnByFieldName("CLSL").HeaderText = "材料用量(Kg/" + GetOption("BJU003") + ")"; grdCLQDMX.FindColumnByFieldName("CLJE").HeaderText = "材料成本(元/" + GetOption("BJU003") + ")"; if (XLBJDUtils.GetDefaultBJU003(GetOption("BJU003")).Equals("M")) { txtCLCB.DecimalPlaces = 5; grdCLQDMX.FindColumnByFieldName("CLJE").NumberDecimalPlace = 5; } if (!IsPostBack) { InitControls(); } base.InitPage(); grdCLQDMX.EnabledToolBar = false; if (!IsPostBack) { if (ControlState == TControlState.ctsInsert) { entity.CLCBMX.NewRecord = "Y"; } else { entity.CLCBMX.NewRecord = "N"; } InitGrid(); TComboBox.SetComboBox("DBERP", cbxST, "select XLBZ_XLBZID,XLBZ_XLBZLXMC from XLBZ order by XLBZ_PX,XLBZ_XLBZID", false); } grdCLQDMX.FindColumnByFieldName("CLJG").NumberDecimalPlace = XLBJDUtils.BJCLPriceDecimal; } #region 模板继承事件 protected override void SetControlState() { base.SetControlState(); if (ControlState == TControlState.ctsInsert || ControlState == TControlState.ctsCopy) { cbxXLXHID.Enabled = true; txtXLGGID.Enabled = true; } else { cbxXLXHID.Enabled = false; txtXLGGID.Enabled = false; } this.txtCLCB.Enabled = false; this.txtCLZL.Enabled = false; this.txtWHR.Enabled = false; this.datWHSJ.Enabled = false; } protected override void LoadRecord() { entity.CLCBMX.NewRecord = "N"; if (!IsPostBack) { entity.XLXHID = PageParam.GetRTrimString("XLXSCLQD_XLXHID"); entity.XLGGID = PageParam.GetRTrimString("XLXSCLQD_XLGGID"); entity.ST = PageParam.GetRTrimString("XLXSCLQD_XLBZID"); entity.DYDJ = PageParam.GetRTrimString("XLXSCLQD_DYDJID"); txtOLD_XLXHID.Value = entity.XLXHID; txtOLD_XLGGID.Value = entity.XLGGID; txtOLD_ST.Value = entity.ST; txtOLD_DYDJ.Value = entity.DYDJ; entity.OLD_XLXHID = txtOLD_XLXHID.Value; entity.OLD_XLGGID = txtOLD_XLGGID.Value; entity.OLD_ST = txtOLD_ST.Value; entity.OLD_DYDJ = txtOLD_DYDJ.Value; entity.CLCBMX.XLXHID = PageParam.GetRTrimString("XLXSCLQD_XLXHID"); entity.CLCBMX.XLGGID = PageParam.GetRTrimString("XLXSCLQD_XLGGID"); entity.CLCBMX.ST = PageParam.GetRTrimString("XLXSCLQD_XLBZID"); entity.CLCBMX.DYDJ = PageParam.GetRTrimString("XLXSCLQD_DYDJID"); entity.CLCBMX.sHSJGBZ = PageParam.GetRTrimString("HSJGBZ"); txtOLD_HSJGBZ.Value = entity.CLCBMX.sHSJGBZ; } else { entity.XLXHID = txtOLD_XLXHID.Value; entity.XLGGID = txtOLD_XLGGID.Value; entity.ST = txtOLD_ST.Value; entity.DYDJ = txtOLD_DYDJ.Value; entity.CLCBMX.XLXHID = txtOLD_XLXHID.Value; entity.CLCBMX.XLGGID = txtOLD_XLGGID.Value; entity.CLCBMX.ST = txtOLD_ST.Value; entity.CLCBMX.DYDJ = txtOLD_DYDJ.Value; entity.CLCBMX.sHSJGBZ = PageParam.GetRTrimString("HSJGBZ"); } base.LoadRecord(); txtOLD_XLXHID.Value = this.cbxXLXHID.SelectedValue.Trim(); txtOLD_XLGGID.Value = this.txtXLGGID.Text.Trim(); txtOLD_ST.Value = this.cbxST.SelectedValue.Trim(); txtOLD_DYDJ.Value = this.cbxDYDJID.SelectedValue.Trim(); entity.OLD_XLXHID = txtOLD_XLXHID.Value; entity.OLD_XLGGID = txtOLD_XLGGID.Value; entity.OLD_ST = txtOLD_ST.Value; entity.OLD_DYDJ = txtOLD_DYDJ.Value; cbxJGCZB.SelectedValue = txtJGCZBID.Value.Trim() + "|" + txtJGCZBBBID.Value.Trim(); double dCLCB = 0; foreach (GridViewRow row in grdCLQDMX.Rows) { dCLCB = dCLCB + CMISproConvert.StrToFloat(grdCLQDMX.GetValueByFieldName("CLJE", row), 0); } txtCLCB.Value = dCLCB; } protected override void OnNewRecorder() { base.OnNewRecorder(); this.txtWHR.Text = CurSession.UserName.Trim(); this.txtWHRID.Value = CurSession.UserId.Trim(); this.datWHSJ.Value = CMISproConvert.ConvertTime(System.DateTime.Now.ToString()); entity.CLCBMX.NewRecord = "Y"; if (IsPostBack) { InitGrid(); } } protected override void OnCopyRecorder() { base.OnCopyRecorder(); if (!IsPostBack) { cbxXLXHID.SelectedValue = PageParam.GetRTrimString("XLXSCLQD_XLXHID"); txtXLGGID.Text = PageParam.GetRTrimString("XLXSCLQD_XLGGID"); cbxST.SelectedValue = PageParam.GetRTrimString("XLXSCLQD_XLBZID"); cbxDYDJID.SelectedValue = PageParam.GetRTrimString("XLXSCLQD_DYDJID"); } else { cbxXLXHID.SelectedValue = txtOLD_XLXHID.Value; txtXLGGID.Text = txtOLD_XLGGID.Value; cbxST.SelectedValue = txtOLD_ST.Value; cbxDYDJID.SelectedValue = txtOLD_DYDJ.Value; } this.txtWHR.Text = CurSession.UserName.Trim(); this.txtWHRID.Value = CurSession.UserId.Trim(); datWHSJ.Value = CMISproConvert.ConvertTime(System.DateTime.Now.ToString()); } protected override void InitQueryString() { entity.CLCBMX.NewRecord = "N"; if (!IsPostBack) { string pXLXHID = PageParam.GetRTrimString("XLXSCLQD_XLXHID"); string pXLGGID = PageParam.GetRTrimString("XLXSCLQD_XLGGID"); string pST = PageParam.GetRTrimString("XLXSCLQD_XLBZID"); string pDYDJ = PageParam.GetRTrimString("XLXSCLQD_DYDJID"); entity.XLXHID = pXLXHID; entity.XLGGID = pXLGGID; entity.ST = pST; entity.DYDJ = pDYDJ; entity.CLCBMX.XLXHID = pXLXHID; entity.CLCBMX.XLGGID = pXLGGID; entity.CLCBMX.ST = pST; entity.CLCBMX.DYDJ = pDYDJ; } else { entity.XLXHID = this.cbxXLXHID.SelectedValue.Trim(); entity.XLGGID = this.txtXLGGID.Text.Trim(); entity.ST = this.txtOLD_ST.Value; entity.DYDJ = this.txtOLD_DYDJ.Value; entity.CLCBMX.XLXHID = this.cbxXLXHID.SelectedValue.Trim(); entity.CLCBMX.XLGGID = this.txtXLGGID.Text.Trim(); entity.CLCBMX.ST = this.txtOLD_ST.Value; entity.CLCBMX.DYDJ = this.txtOLD_DYDJ.Value; entity.CLCBMX.sHSJGBZ = this.txtOLD_HSJGBZ.Value; } base.InitQueryString(); } protected override bool Master_BeforeSaveAction(object sender, EventArgs e) { if (cbxJGCZB.SelectedValue.Trim().Equals("")) { ShowMessage("结构尺重表--不允许为空!"); return false; } else { txtJGCZBID.Value = cbxJGCZB.SelectedValue.Trim().Split('|')[0].Trim(); txtJGCZBBBID.Value = cbxJGCZB.SelectedValue.Trim().Split('|')[1].Trim(); } this.txtWHR.Text = CurSession.UserName.Trim(); this.txtWHRID.Value = CurSession.UserId.Trim(); datWHSJ.Value = CMISproConvert.ConvertTime(System.DateTime.Now.ToString()); entity.XLXHID = this.cbxXLXHID.SelectedValue.Trim(); entity.XLGGID = this.txtXLGGID.Text.Trim(); entity.ST = this.cbxST.SelectedValue.Trim(); entity.DYDJ = this.cbxDYDJID.SelectedValue.Trim(); entity.OLD_XLXHID = txtOLD_XLXHID.Value; entity.OLD_XLGGID = txtOLD_XLGGID.Value; entity.OLD_ST = txtOLD_ST.Value; entity.OLD_DYDJ = txtOLD_DYDJ.Value; return base.Master_BeforeSaveAction(sender, e); } protected override bool Master_BeforeDeleteAction(object sender, EventArgs e) { if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSJGBMX where XLXSJGBMX_XLXHID='{0}' and XLXSJGBMX_XLGGID='{1}' and XLXSJGBMX_XLBZID='{2}' and XLXSJGBMX_DYDJID='{3}'", cbxXLXHID.SelectedValue.Trim(), txtXLGGID.Text.Trim(), cbxST.SelectedValue.Trim(), cbxDYDJID.SelectedValue.Trim()))) { ShowMessage("当前记录已被销售价格表使用,不允许删除!"); return false; } entity.CLCBMX.NewRecord = "N"; entity.CLCBMX.XLXHID = this.cbxXLXHID.SelectedValue.Trim(); entity.CLCBMX.XLGGID = this.txtXLGGID.Text.Trim(); entity.CLCBMX.ST = this.cbxST.SelectedValue.Trim(); entity.CLCBMX.DYDJ = this.cbxDYDJID.SelectedValue.Trim(); return base.Master_BeforeDeleteAction(sender, e); } protected override bool Master_AfterSaveAction(object sender, EventArgs e) { txtOLD_XLXHID.Value = this.cbxXLXHID.SelectedValue.Trim(); txtOLD_XLGGID.Value = this.txtXLGGID.Text.Trim(); txtOLD_ST.Value = this.cbxST.SelectedValue.Trim(); txtOLD_DYDJ.Value = this.cbxDYDJID.SelectedValue.Trim(); //计算材料成本 //double fCLCB = 0.0; //更新各材料清单列数量 TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); dberp.BeginTrans(); try { if (grdCLQDMX.NewRows.Count > 0) { TSQL tmpSQL = new TSQL(dberp); tmpSQL.Clear(); tmpSQL.Add(" update XLXSCLQD set "); for (int i = 0; i < grdCLQDMX.NewRows.Count; i++) { int XH = CMISproConvert.StrToInt(grdCLQDMX.GetValueByFieldName("CLQDL", grdCLQDMX.NewRows[i]).ToString().Trim()); if (i != 0) { tmpSQL.Add(string.Format(" ,XLXSCLQD_SL" + XH.ToString().PadLeft(2, '0') + "={0},XLXSCLQD_SHL" + XH.ToString().PadLeft(2, '0') + "={1},XLXSCLQD_CLJGBL" + XH.ToString().PadLeft(2, '0') + "={2}" , CMISproConvert.StrToFloat(grdCLQDMX.GetValueByFieldName("CLSL", grdCLQDMX.NewRows[i]).ToString().Trim()) , CMISproConvert.StrToFloat(grdCLQDMX.GetValueByFieldName("SHL", grdCLQDMX.NewRows[i]).ToString().Trim()) , CMISproConvert.StrToFloat(grdCLQDMX.GetValueByFieldName("CLJGBL", grdCLQDMX.NewRows[i]).ToString().Trim()))); } else { tmpSQL.Add(string.Format(" XLXSCLQD_SL" + XH.ToString().PadLeft(2, '0') + "={0},XLXSCLQD_SHL" + XH.ToString().PadLeft(2, '0') + "={1},XLXSCLQD_CLJGBL" + XH.ToString().PadLeft(2, '0') + "={2}" , CMISproConvert.StrToFloat(grdCLQDMX.GetValueByFieldName("CLSL", grdCLQDMX.NewRows[i]).ToString().Trim()) , CMISproConvert.StrToFloat(grdCLQDMX.GetValueByFieldName("SHL", grdCLQDMX.NewRows[i]).ToString().Trim()) , CMISproConvert.StrToFloat(grdCLQDMX.GetValueByFieldName("CLJGBL", grdCLQDMX.NewRows[i]).ToString().Trim()))); } } tmpSQL.Add(string.Format("where XLXSCLQD_XLXHID='{0}' and XLXSCLQD_XLGGID='{1}' and XLXSCLQD_XLBZID='{2}' and XLXSCLQD_DYDJID='{3}'" , cbxXLXHID.SelectedValue.Trim() , txtXLGGID.Text.Trim(), cbxST.SelectedValue.Trim(), cbxDYDJID.SelectedValue.Trim())); dberp.ExecSQL(tmpSQL); } dberp.CommitTrans(); } catch { dberp.RollbackTrans(); ShowMessage("操作数据集出错,请和系统管理员联系!"); return false; } //txtCLCB.Value = fCLCB; entity.CLCBMX.NewRecord = "N"; entity.CLCBMX.XLXHID = this.cbxXLXHID.SelectedValue.Trim(); entity.CLCBMX.XLGGID = this.txtXLGGID.Text.Trim(); entity.CLCBMX.ST = this.cbxST.SelectedValue.Trim(); entity.CLCBMX.DYDJ = this.cbxDYDJID.SelectedValue.Trim(); entity.CLCBMX.Query(); grdCLQDMX.DataSource = entity.CLCBMX.Entites; grdCLQDMX.DataBind(); grdCLQDMX.SaveDataInfo.SaveDataFlag = DSaveDataFlag.sdNormal; FormAreaUpdate(); return base.Master_AfterSaveAction(sender, e); } protected override bool DataLogicValid() { if (ControlState == TControlState.ctsCopy || ControlState == TControlState.ctsInsert) { if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSCLQD where XLXSCLQD_XLXHID='{0}' and XLXSCLQD_XLGGID='{1}' and XLXSCLQD_XLBZID='{2}' and XLXSCLQD_DYDJID='{3}'", cbxXLXHID.SelectedValue.Trim(), txtXLGGID.Text.Trim(), cbxST.SelectedValue, cbxDYDJID.SelectedValue.Trim()))) { ShowMessage("已存在相同型号、规格、标准、电压等级的记录,不允许保存!"); return false; } } for (int i = 0; i < this.entity.CLCBMX.Entites.Rows.Count; i++) { if (grdCLQDMX.NewRows[i].Attributes["EditAction"].Equals("D")) { continue; } entity.CLCBMX.ActIndex = i; if (CMISproConvert.StrToFloat(this.entity.CLCBMX.CLSL, 0) < 0) { ShowMessage("材料用量不允许小于0!"); return false; } else if (CMISproConvert.StrToFloat(this.entity.CLCBMX.CLSL, 0) > 0) { if (CMISproConvert.StrToFloat(this.entity.CLCBMX.CLJGBL, 0) <= 0) { ShowMessage("材料用量比例不允许小于等于0!"); return false; } else if (CMISproConvert.StrToFloat(this.entity.CLCBMX.CLJGBL, 0) > 1) { ShowMessage("材料用量比例不允许大于1!"); return false; } } else { if (CMISproConvert.StrToFloat(this.entity.CLCBMX.CLJGBL, 0) < 0) { ShowMessage("材料用量比例不允许小于0!"); return false; } else if (CMISproConvert.StrToFloat(this.entity.CLCBMX.CLJGBL, 0) > 1) { ShowMessage("材料用量比例不允许大于1!"); return false; } } if (CMISproConvert.StrToFloat(this.entity.CLCBMX.SHL, 0) < 0) { ShowMessage("材料损耗率不允许小于0!"); return false; } else if (CMISproConvert.StrToFloat(this.entity.CLCBMX.SHL, 0) >= 100) { ShowMessage("材料损耗率不允许大于等于100%!"); return false; } } if (ControlState == TControlState.ctsEdit) { foreach (GridViewRow row in grdCLQDMX.NewRows) { row.Attributes["EditAction"] = "N"; } } else { foreach (GridViewRow row in grdCLQDMX.NewRows) { row.Attributes["EditAction"] = "D"; } } return base.DataLogicValid(); } protected override void SetComboxItems() { if (ControlState == TControlState.ctsBrowse) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Add("select XLJGCZBML_JGCZBID,XLJGCZBML_JGCZBMC,XLJGCZBML_JGCZBBBID "); sql.Add(" from XLJGCZBML "); sql.Add(" where XLJGCZBML_JGCZBID=:pJGCZBID and XLJGCZBML_JGCZBBBID=:pJGCZBBBID"); sql.Add(" order by XLJGCZBML_JGCZBID"); sql.ParamByName("pJGCZBID").Value = txtJGCZBID.Value; sql.ParamByName("pJGCZBBBID").Value = txtJGCZBBBID.Value; DataSet ds = dberp.OpenDataSet(sql); cbxJGCZB.ClearItems(); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sJGCZBBBID = ds.Tables[0].Rows[i]["XLJGCZBML_JGCZBBBID"].ToString().Trim(); cbxJGCZB.Items.Add(new ListItem(ds.Tables[0].Rows[i]["XLJGCZBML_JGCZBID"].ToString().Trim() + "|" + ds.Tables[0].Rows[i]["XLJGCZBML_JGCZBMC"].ToString().Trim() + "|" + sJGCZBBBID , ds.Tables[0].Rows[i]["XLJGCZBML_JGCZBID"].ToString().Trim() + "|" + sJGCZBBBID)); } cbxXLXHID.ClearItems(); cbxXLXHID.Items.Add(new ListItem(cbxXLXHID.SelectedValue.Trim(), cbxXLXHID.SelectedValue.Trim())); cbxDYDJID.ClearItems(); cbxDYDJID.Items.Add(new ListItem(cbxDYDJID.SelectedValue.Trim(), cbxDYDJID.SelectedValue.Trim())); } else if (ControlState == TControlState.ctsCopy || ControlState == TControlState.ctsInsert || ControlState == TControlState.ctsEdit) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Add("select XLJGCZBML_JGCZBID,XLJGCZBML_JGCZBMC,XLJGCZBML_JGCZBBBID "); sql.Add(" from XLJGCZBML "); sql.Add(" where 1=1"); sql.Add(" order by XLJGCZBML_JGCZBID,XLJGCZBML_JGCZBBBID "); DataSet ds = dberp.OpenDataSet(sql); cbxJGCZB.ClearItems(); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sJGCZBBBID = ds.Tables[0].Rows[i]["XLJGCZBML_JGCZBBBID"].ToString().Trim(); cbxJGCZB.Items.Add(new ListItem(ds.Tables[0].Rows[i]["XLJGCZBML_JGCZBID"].ToString().Trim() + "|" + ds.Tables[0].Rows[i]["XLJGCZBML_JGCZBMC"].ToString().Trim() + "|" + sJGCZBBBID , ds.Tables[0].Rows[i]["XLJGCZBML_JGCZBID"].ToString().Trim() + "|" + sJGCZBBBID)); } if (ControlState == TControlState.ctsCopy || ControlState == TControlState.ctsInsert) { if (cbxJGCZB.ItemsCount == 1) cbxJGCZB.SelectedIndex = 0; } TComboBox.SetComboBox("DBERP", cbxXLXHID, "select XLXHB_XLXHID as ID,XLXHB_XLXHID as Name from XLXHB where isnull(XLXHB_TYBZ,'N')<>'Y' order by ID ", false); TComboBox.SetComboBox("DBERP", cbxDYDJID, "select distinct XLDYDJB_DYDJID as ID,XLDYDJB_DYDJID as Name from XLDYDJB where isnull(XLDYDJB_TYBZ,'N')<>'Y' order by ID ", true); } base.SetComboxItems(); } #endregion #region 自定义函数 private void InitControls() { } #endregion #region 控件事件 private void InitGrid() { grdCLQDMX.DataSource = entity.CLCBMX.Entites; grdCLQDMX.DataBind(); grdCLQDMX.SaveDataInfo.SaveDataFlag = DSaveDataFlag.sdNormal; } #endregion } }