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_MISPRO.Utility; using GThinking.N_CONTROL; using GThinking.N_PUBLIC; using System.Collections.Generic; using GThinking.N_MISPRO.MISPROAS; namespace GThinking.N_XLXSBJ { public partial class TZYZJJ2Info : OperationBase { TZYZJJ2 entity = new TZYZJJ2(); protected void Page_Load(object sender, EventArgs e) { this.UMID = 100860025; this.UMName = "按产品用途电压等级分类导体材料调材料损耗"; this.CurMaster = Master; this.Tabs = Tab; this.PageHeight = 600; this.PageWidth = 750; AddListSetMap(new ListSet(pagSHD.ID, null, grdSHD, entity, UPSHD)); if (!IsPostBack) { this.Master.PnlQuery.GroupingText = "查询条件"; this.Master.PnlBill.GroupingText = "单据信息"; InitControls(); if (!PageParam.GetRTrimString("XLXSJGBYZZ2_CPYT").Equals("")) { cbxCPYT.SelectedValue = PageParam.GetRTrimString("XLXSJGBYZZ2_CPYT"); txtOLD_CPYT.Value = PageParam.GetRTrimString("XLXSJGBYZZ2_CPYT"); cbxCPYT.Enabled = false; btnDel.Visible = true; } else btnDel.Visible = false; if (PageParam.ContainsKey("XLXSJGBYZZ2_DYDJFL")) { cbxDYDJFL.SelectedValue = PageParam.GetRTrimString("XLXSJGBYZZ2_DYDJFL"); txtOLD_DYDJFL.Value = PageParam.GetRTrimString("XLXSJGBYZZ2_DYDJFL"); cbxDYDJFL.Enabled = false; } if (PageParam.ContainsKey("XLXSJGBYZZ2_DTCLID")) { cbxDTCLID.SelectedValue = PageParam.GetRTrimString("XLXSJGBYZZ2_DTCLID"); txtOLD_DTCLID.Value = PageParam.GetRTrimString("XLXSJGBYZZ2_DTCLID"); cbxDTCLID.Enabled = false; } } InitGrdColumn(); CustomPageSize = 1000; base.InitPage(); if (!IsPostBack) { Master_OnQuery(); GridDataBind(); } } #region 模板继承事件 protected override void Master_OnQuery() { entity.sJGBID = PageParam.GetRTrimString("XLXSJGBYZZ2_JGBID"); entity.sCPYT = cbxCPYT.SelectedValue.Trim(); entity.sDYDJFL = cbxDYDJFL.SelectedValue.Trim(); entity.sDTCLID = cbxDTCLID.SelectedValue.Trim(); entity.FromJGCZB = chkFromJGCZB.Checked; base.Master_OnQuery(); } protected override void GridDataBind() { base.GridDataBind(); } protected override bool Master_OnBeforeOK(object sender, EventArgs e) { return base.Master_OnBeforeOK(sender, e); } protected override bool DataLogicValid() { if (cbxCPYT.SelectedValue.Trim().Equals("")) { ShowMessage("产品用途--不允许为空!"); return false; } if (grdSHD.NewRows.Count == 0) { ShowMessage("没有可设置的报价材料!"); return false; } string sJGBID = PageParam.GetRTrimString("XLXSJGBYZZ2_JGBID"); string sCPYT = cbxCPYT.SelectedValue.Trim(); string sDYDJFL = cbxDYDJFL.SelectedValue.Trim(); string sDTCLID = cbxDTCLID.SelectedValue.Trim(); string sSQL1 = ""; string sSQL2 = ""; string sSQL3 = ""; string sMessage = ""; if (PageParam.GetRTrimString("XLXSJGBYZZ2_CPYT").Equals(""))//新建 { sSQL1 = string.Format("select top 1 XLXSJGBYZZ2_JGBID from XLXSJGBYZZ2 where XLXSJGBYZZ2_JGBID='{0}' and XLXSJGBYZZ2_CPYT='{1}' and (XLXSJGBYZZ2_DYDJFL = ' ' or XLXSJGBYZZ2_DTCLID = ' ') ", sJGBID, sCPYT); sSQL2 = string.Format("select top 1 XLXSJGBYZZ2_JGBID from XLXSJGBYZZ2 where XLXSJGBYZZ2_JGBID='{0}' and XLXSJGBYZZ2_CPYT='{1}' and XLXSJGBYZZ2_DYDJFL = ' ' ", sJGBID, sCPYT); sSQL3 = string.Format("select top 1 XLXSJGBYZZ2_JGBID from XLXSJGBYZZ2 where XLXSJGBYZZ2_JGBID='{0}' and XLXSJGBYZZ2_CPYT='{1}' and XLXSJGBYZZ2_DTCLID = ' ' ", sJGBID, sCPYT); if (sDYDJFL.Equals("") && sDTCLID.Equals("")) { sMessage = "电压等级分类为空,导体材料为空,将替换当前产品用途下所有已经设置的记录,是否继续?"; Confirm.Register("IsQD", sMessage); Confirm.ShowBtnText = TConfirm.cBtnText.Yes_No; if (Confirm.GetValue("IsQD").Trim().Equals("")) { Confirm.Ask("IsQD"); return false; } else if (Confirm.GetValue("IsQD").Trim().Equals("N")) { Confirm.Clear(); return false; } else if (Confirm.GetValue("IsQD").Trim().Equals("Y")) { Confirm.Clear(); } } else if (sDYDJFL.Equals("") && !sDTCLID.Equals("")) { if (CMISproDataBase.ExistsRecord("DBERP", sSQL3)) { ShowMessage("当前产品用途下,已存在不按导体材料设置的记录,如再按导体材料细分将出现两种标准!"); return false; } else { sMessage = "电压等级分类为空,导体材料不为空,将替换当前产品用途,当前导体材料下所有已经设置的记录,是否继续?"; Confirm.Register("IsQD", sMessage); Confirm.ShowBtnText = TConfirm.cBtnText.Yes_No; if (Confirm.GetValue("IsQD").Trim().Equals("")) { Confirm.Ask("IsQD"); return false; } else if (Confirm.GetValue("IsQD").Trim().Equals("N")) { Confirm.Clear(); return false; } else if (Confirm.GetValue("IsQD").Trim().Equals("Y")) { Confirm.Clear(); } } } else if (!sDYDJFL.Equals("") && sDTCLID.Equals("")) { if (CMISproDataBase.ExistsRecord("DBERP", sSQL2)) { ShowMessage("当前产品用途下,已存在不按电压等级分类设置的记录,如再按电压等级分类细分将出现两种标准!"); return false; } else { sMessage = "电压等级分类不为空,导体材料为空,将替换当前产品用途,当前电压等级分类下所有已经设置的记录,是否继续?"; Confirm.Register("IsQD", sMessage); Confirm.ShowBtnText = TConfirm.cBtnText.Yes_No; if (Confirm.GetValue("IsQD").Trim().Equals("")) { Confirm.Ask("IsQD"); return false; } else if (Confirm.GetValue("IsQD").Trim().Equals("N")) { Confirm.Clear(); return false; } else if (Confirm.GetValue("IsQD").Trim().Equals("Y")) { Confirm.Clear(); } } } else { if (CMISproDataBase.ExistsRecord("DBERP", sSQL1)) { ShowMessage("当前产品用途下,已存在不按电压等级分类或者不按导体材料设置的记录,如再按电压等级分类或者导体材料细分将出现两种标准!"); return false; } } } //if (!txtOLD_CPYT.Value.Trim().Equals("")) //{ // if (!txtOLD_CPYT.Value.Trim().Equals(cbxCPYT.SelectedValue.Trim()))//修改了产品用途 // { // if (cbxDYDJFL.SelectedValue.Trim().Equals("")) // { // if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSJGBYZZ2 where XLXSJGBYZZ2_JGBID='{0}' and XLXSJGBYZZ2_CPYT='{1}' and XLXSJGBYZZ2_DYDJFL<>' '", // PageParam.GetRTrimString("XLXSJGBYZZ2_JGBID"), cbxCPYT.SelectedValue.Trim()))) // { // ShowMessage("当前产品用途下,已存在按电压等级分类设置的记录,电压等级分类不允许为空!"); // return false; // } // } // } //} return base.DataLogicValid(); } protected override bool Master_OnOK() { TDatabase DBERP = null; try { DBERP = TContextDatabases.GetDatabase("DBERP"); DBERP.BeginTrans(); InsertXLXSJGBYZZ2(DBERP); DBERP.CommitTrans(); ShowMessage("设置成功!"); CloseWindow(); } catch (Exception ex) { ShowMessage(ex.Message); DBERP.RollbackTrans(); return false; } return true; } protected override void Grid_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { } base.Grid_RowDataBound(sender, e); } #endregion #region 控件事件 protected void chkFromJGCZB_CheckedChanged(object sender, EventArgs e) { Master_OnQuery(); GridDataBind(); FormAreaUpdate(); } protected void cbxCPYT_SelectedIndexChanged(object sender, EventArgs e) { Master_OnQuery(); GridDataBind(); FormAreaUpdate(); } protected void cbxDYDJFL_SelectedIndexChanged(object sender, EventArgs e) { Master_OnQuery(); GridDataBind(); FormAreaUpdate(); } protected void cbxDTCLID_SelectedIndexChanged(object sender, EventArgs e) { Master_OnQuery(); GridDataBind(); FormAreaUpdate(); } protected void btnDel_Click(object sender, EventArgs e) { Confirm.Register("IsQD", "将删除当前记录,是否继续?"); Confirm.ShowBtnText = TConfirm.cBtnText.Yes_No; if (Confirm.GetValue("IsQD").Trim().Equals("")) { Confirm.Ask("IsQD"); return; } else if (Confirm.GetValue("IsQD").Trim().Equals("N")) { Confirm.Clear(); return; } else if (Confirm.GetValue("IsQD").Trim().Equals("Y")) { Confirm.Clear(); } TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Add("delete from XLXSJGBYZZ2 where XLXSJGBYZZ2_JGBID=:pJGBID and XLXSJGBYZZ2_CPYT=:pCPYT and XLXSJGBYZZ2_DYDJFL=:pDYDJFL and XLXSJGBYZZ2_DTCLID = :pDTCLID"); SQL.ParamByName("pJGBID").Value = PageParam.GetRTrimString("XLXSJGBYZZ2_JGBID"); SQL.ParamByName("pCPYT").Value = cbxCPYT.SelectedValue.Trim(); SQL.ParamByName("pDYDJFL").Value = cbxDYDJFL.SelectedValue.Trim().Equals("") ? " " : cbxDYDJFL.SelectedValue.Trim(); SQL.ParamByName("pDTCLID").Value = cbxDTCLID.SelectedValue.Trim().Equals("") ? " " : cbxDTCLID.SelectedValue.Trim(); dberp.ExecSQL(SQL); ShowMessage("删除成功!"); CloseWindow(); } #endregion #region 自定义函数 private void InitControls() { TComboBox.SetComboBox("DBERP", cbxCPYT, "select XLCPYT_CPYT,XLCPYT_CPYTMC from XLCPYT where 1=1 order by XLCPYT_CPYT", false); TComboBox.SetComboBox("DBERP", cbxDYDJFL, "select distinct XLDYDJB_DYDJFL,XLDYDJB_DYDJFL from XLDYDJB where 1=1 group by XLDYDJB_DYDJFL ", true); TComboBox.SetComboBox("DBERP", cbxDTCLID, "select XLDTCLB_DTCLID,XLDTCLB_WLMC from XLDTCLB where XLDTCLB_WLID =' ' order by XLDTCLB_DTCLID ", true); } private void InitGrdColumn() { for (int i = 1; i <= 20; i++) { string fieldName = "TZYZ_JZ" + i.ToString("D2"); gtAjaxGridViewColumn col = grdSHD.FindColumnByFieldName(fieldName); if (col != null) { col.Visible = false; } } string[] sTJYZList = PageParam.GetRTrimString("TJYZList").Split(','); for (int i = 0; i < sTJYZList.Length; i++) { string item = sTJYZList[i]; // 检查是否以 "JZ" + 两位数字 + "|" 开头 if (item.Length >= 5 && item.StartsWith("JZ") && char.IsDigit(item[2]) && char.IsDigit(item[3]) && item[4] == '|') { string num = item.Substring(2, 2); // 提取 "01" ~ "10" string fieldName = "TZYZ_JZ" + num; // 构造列名 gtAjaxGridViewColumn col = grdSHD.FindColumnByFieldName(fieldName); if (col != null) { col.Visible = true; col.HeaderText = item.Substring(5); // 去掉 "JZxx|" 前缀 if (item.EndsWith("(元)")) col.NumberDecimalPlace = 5; } } } } private void InsertXLXSJGBYZZ2(TDatabase dberp) { string sJGBID = PageParam.GetRTrimString("XLXSJGBYZZ2_JGBID"); string sCPYT = cbxCPYT.SelectedValue.Trim(); string sDYDJFL = cbxDYDJFL.SelectedValue.Trim().Equals("") ? " " : cbxDYDJFL.SelectedValue.Trim(); string sDTCLID = cbxDTCLID.SelectedValue.Trim().Equals("") ? " " : cbxDTCLID.SelectedValue.Trim(); TSQL SQL = new TSQL(dberp); if (sDYDJFL.Trim().Equals("") && sDTCLID.Trim().Equals("")) { SQL.Add("delete from XLXSJGBYZZ2 where XLXSJGBYZZ2_JGBID=:pJGBID and XLXSJGBYZZ2_CPYT=:pCPYT "); SQL.ParamByName("pJGBID").Value = sJGBID; SQL.ParamByName("pCPYT").Value = sCPYT; dberp.ExecSQL(SQL); } else if (sDYDJFL.Trim().Equals("")) { SQL.Add("delete from XLXSJGBYZZ2 where XLXSJGBYZZ2_JGBID=:pJGBID and XLXSJGBYZZ2_CPYT=:pCPYT and XLXSJGBYZZ2_DTCLID = :pDTCLID "); SQL.ParamByName("pJGBID").Value = sJGBID; SQL.ParamByName("pCPYT").Value = sCPYT; SQL.ParamByName("pDTCLID").Value = sDTCLID; dberp.ExecSQL(SQL); } else if (sDTCLID.Trim().Equals("")) { SQL.Add("delete from XLXSJGBYZZ2 where XLXSJGBYZZ2_JGBID=:pJGBID and XLXSJGBYZZ2_CPYT=:pCPYT and XLXSJGBYZZ2_DYDJFL = :pDYDJFL "); SQL.ParamByName("pJGBID").Value = sJGBID; SQL.ParamByName("pCPYT").Value = sCPYT; SQL.ParamByName("pDYDJFL").Value = sDYDJFL; dberp.ExecSQL(SQL); } else { SQL.Add("delete from XLXSJGBYZZ2 where XLXSJGBYZZ2_JGBID=:pJGBID and XLXSJGBYZZ2_CPYT=:pCPYT and XLXSJGBYZZ2_DYDJFL=:pDYDJFL and XLXSJGBYZZ2_DTCLID = :pDTCLID "); SQL.ParamByName("pJGBID").Value = sJGBID; SQL.ParamByName("pCPYT").Value = sCPYT; SQL.ParamByName("pDYDJFL").Value = sDYDJFL; SQL.ParamByName("pDTCLID").Value = sDTCLID; dberp.ExecSQL(SQL); } foreach (GridViewRow row in grdSHD.NewRows) { //一行执行一次 SQL.Clear(); SQL.Add("insert into XLXSJGBYZZ2(XLXSJGBYZZ2_JGBID,XLXSJGBYZZ2_CPYT,XLXSJGBYZZ2_DYDJFL,XLXSJGBYZZ2_BJCLID,XLXSJGBYZZ2_DTCLID,XLXSJGBYZZ2_YZID,XLXSJGBYZZ2_YZZ,XLXSJGBYZZ2_WHR,XLXSJGBYZZ2_WHRID,XLXSJGBYZZ2_WHSJ)"); bool bNeedInsert = false; for (int i = 0; i < grdSHD.Columns.Count; i++) { if (grdSHD.Columns[i].DataField.Contains("TZYZ_")) { string sYZID = grdSHD.Columns[i].DataField.Substring(5); double dYZZ = CMISproConvert.StrToFloat(grdSHD.GetValueByFieldName("TZYZ_" + sYZID, row), 0); if (dYZZ != 0)//因子值不为0才会插入 { if (bNeedInsert) { SQL.Add(" union all "); } else { bNeedInsert = true; } SQL.Add(string.Format("select '{0}' as JGBID,'{1}' as CPYT,'{2}' as DYDJFL,'{3}' as BJCLID,'{4}' as DTCLID, '{5}' as YZID,{6} as YZZ,'{7}' as WHR,'{8}' as WHRID,'{9}' as WHSJ ", sJGBID, cbxCPYT.SelectedValue.Trim(), cbxDYDJFL.SelectedValue.Trim().Equals("") ? " " : cbxDYDJFL.SelectedValue.Trim(), grdSHD.GetValueByFieldName("XLXSBJCL_BJCLID", row), cbxDTCLID.SelectedValue.Trim().Equals("") ? " " : cbxDTCLID.SelectedValue.Trim(), sYZID, CMISproConvert.StrToFloat(grdSHD.GetValueByFieldName("TZYZ_" + sYZID, row), 0), CurSession.UserName, CurSession.UserId, DateTime.Now)); } } } if (bNeedInsert) { dberp.ExecSQL(SQL); } } } #endregion } }