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_MODEL.Page; using GThinking.N_MISPRO.Data; using System.Data.Common; using GThinking.N_CONTROL; using GThinking.N_WORKFLOW; using GThinking.N_PUBLIC; using GThinking.N_MODEL.Dialog; using GThinking.N_MISPRO.Utility; using System.Reflection; using System.Web.Script; using System.Text; using GThinking.N_PUBLIC2; using System.Collections.Generic; using GThinking.N_MISPRO.MISPROAS; namespace GThinking.N_XLXSBJ { public partial class XLBJD_WBBJDLMList : OperationBase { XLBJD_WBBJDLMEntity entity = new XLBJD_WBBJDLMEntity(); string sWBBJDID = ""; string sBJDID = ""; string sJMBGSBM = ""; #region Page类事件继承 protected void Page_Load(object sender, EventArgs e) { base.UMID = 100860043; base.UMName = "外部线缆产品导入"; base.Tabs = Tab; base.CurMaster = Master; this.PageWidth = 750; this.PageHeight = 600; this.Master.BtnReportVisible = false; AddListSetMap(new ListSet(XQXX.ID, null, QueryGrid, entity, UPXQXX)); base.InitPage(); QueryGrid.EnabledToolBar = false; QueryGrid.ReadOnly = false; this.Master.BtnQueryVisible = false; sWBBJDID = PageParam.GetRTrimString("WBBJDID"); sBJDID = PageParam.GetRTrimString("SELBJDID").Equals("") ? " " : PageParam.GetRTrimString("SELBJDID"); BJFLXX bjflxx = XLBJDUtils.GetBJFLXXByBJDID(sBJDID); if (!string.IsNullOrEmpty(bjflxx.XLXSBJFL_JMBGSBM.Trim())) { sJMBGSBM = bjflxx.XLXSBJFL_JMBGSBM.Trim(); } if (!IsPostBack) { IntiControl(); Master_OnQuery(); GridDataBind(); } } #endregion #region 模板事件继承 protected override void Master_OnQuery() { entity.sWBBJDID = sWBBJDID; entity.sBJDID = sBJDID; base.Master_OnQuery(); } protected override void GridDataBind() { base.GridDataBind(); } protected override bool DataLogicValid() { bool bResult = base.DataLogicValid(); if (!bResult) return false; List lst = new List(); lst.Clear(); string sMessage = ""; string[] sWarn = { "", "报价产品", "电压等级", "标准", "计量单位", "报价数量", "报价", "备注", "型号/型号-规格", "规格" }; //行记录校验 foreach (GridViewRow row in QueryGrid.NewRows) { if (!QueryGrid.GetValueByFieldName("XLWBBJDLM_ZDLMLX", row).ToString().Trim().Equals("")) { if (!lst.Contains(QueryGrid.GetValueByFieldName("XLWBBJDLM_ZDLMLX", row).ToString().Trim())) { lst.Add(QueryGrid.GetValueByFieldName("XLWBBJDLM_ZDLMLX", row).ToString().Trim()); } else { sMessage = sMessage + sWarn[CMISproConvert.StrToInt(QueryGrid.GetValueByFieldName("XLWBBJDLM_ZDLMLX", row).ToString().Trim())]; } } } if (!sMessage.Trim().Equals("")) { ShowMessage("报价单栏目不允许重复:" + sMessage); return false; } //报价产品 与 型号/规格 互斥 if (lst.Count > 0) { if (lst.Contains("1")) { if (lst.Contains("8")) { ShowMessage("报价产品与型号不允许同时出现!"); return false; } if (lst.Contains("9")) { ShowMessage("报价产品与规格不允许同时出现!"); return false; } } //型号和规格必须同时存在 else { if (XLBJDUtils.ExistXLXSBJGWWL())//存在国网物料编码时,可以不导入型号规格 { if (!lst.Contains("8") && !lst.Contains("9") && !lst.Contains("N")) { ShowMessage("缺少报价产品或者型号、规格或者国网物料编码!"); return false; } else if (!lst.Contains("N") && (!lst.Contains("8") || !lst.Contains("9"))) { ShowMessage("型号和规格必须同时存在!"); return false; } } else { if (!lst.Contains("8") && !lst.Contains("9")) { ShowMessage("缺少报价产品或者型号、规格!"); return false; } else if (!lst.Contains("8") || !lst.Contains("9")) { ShowMessage("型号和规格必须同时存在!"); return false; } } } } return true; } protected override bool Master_OnOK() { bool bResult = base.Master_OnOK(); if (!bResult) return false; string sWBBJDIDList = sWBBJDID; if (!PageParam.GetRTrimString("MLFZH").Equals("0")) { sWBBJDIDList = XLWBBJDUtils.GetWBBJDListByMLFZH(sBJDID, PageParam.GetRTrimString("MLFZH")); } TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); try { dberp.BeginTrans(); string sLMBH = ""; string sZDLMLX = ""; Dictionary dicLM = new Dictionary(); dicLM.Clear(); //取出修改后的记录 foreach (GridViewRow row in QueryGrid.NewRows) { if (!QueryGrid.GetValueByFieldName("XLWBBJDLM_ZDLMLX", row).ToString().Trim().Equals("")) { sLMBH = QueryGrid.GetValueByFieldName("XLWBBJDLM_LMBH", row).ToString().Trim(); sZDLMLX = QueryGrid.GetValueByFieldName("XLWBBJDLM_ZDLMLX", row).ToString().Trim(); dicLM.Add(sLMBH, sZDLMLX); } } if (dicLM.ContainsValue("5") || dicLM.ContainsValue("6") || dicLM.ContainsValue("B")) { SQL.Clear(); SQL.Add(" SELECT "); string col = ""; foreach (string sBH in dicLM.Keys) { if (dicLM[sBH].Equals("5") || dicLM[sBH].Equals("6") || dicLM[sBH].Equals("B")) { col += string.Format(" XLWBBJDNR_LMNR{0},", sBH.Trim()); } } col = col.TrimEnd(','); SQL.Add(col); SQL.Add(" FROM XLWBBJDNR where 1=1 "); SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLWBBJDNR_WBBJDID", sWBBJDIDList)); DataSet dsNR = dberp.OpenDataSet(SQL); for (int i = 0; i < dsNR.Tables[0].Rows.Count; i++) { for(int j=0;j kpv in dicLM) { SQL.Clear(); SQL.Add(" update XLWBBJDLM set XLWBBJDLM_ZDLMLX = :XLWBBJDLM_ZDLMLX where 1 = 1 "); SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLWBBJDLM_WBBJDID", sWBBJDIDList) + " and XLWBBJDLM_BJDID =:XLWBBJDLM_BJDID and XLWBBJDLM_LMBH = :XLWBBJDLM_LMBH "); //SQL.Add(" and XLWBBJDLM_WBBJDID=:XLWBBJDLM_WBBJDID and XLWBBJDLM_BJDID =:XLWBBJDLM_BJDID and XLWBBJDLM_LMBH = :XLWBBJDLM_LMBH "); SQL.ParamByName("XLWBBJDLM_ZDLMLX").Value = kpv.Value.Trim(); //SQL.ParamByName("XLWBBJDLM_WBBJDID").Value = sWBBJDID; SQL.ParamByName("XLWBBJDLM_BJDID").Value = sBJDID; SQL.ParamByName("XLWBBJDLM_LMBH").Value = kpv.Key.Trim(); dberp.ExecSQL(SQL); } //不生成XLWBBJDMX表数据 dberp.CommitTrans(); CloseWindow(); } catch (Exception ex) { dberp.RollbackTrans(); ShowMessage(ex.Message); return false; } return bResult; } #endregion #region 自定义函数 private void IntiControl() { //this.Master.PnlQuery.GroupingText = "查询条件"; //this.Master.PnlBill.GroupingText = "单据信息"; } #endregion #region 控件事件 protected void QueryGrid_CalculateField(object sender, CalculateFieldEventArgs e) { if (e.EventFieldName == "WLJH_GYSID") { } } protected void QueryGrid_OnGetDropDownColumnItems(object sender, GetDropDownColumnItemsEventArgs e) { if (e.EventFieldName == "XLWBBJDLM_ZDLMLX") { string sJMBGS = "截面比公式"; if (!string.IsNullOrEmpty(sJMBGSBM)) sJMBGS = sJMBGSBM; e.DropDownItems.Add(new ListItem("", "")); e.DropDownItems.Add(new ListItem("报价产品", "1")); e.DropDownItems.Add(new ListItem("电压等级", "2")); e.DropDownItems.Add(new ListItem("标准", "3")); e.DropDownItems.Add(new ListItem("计量单位", "4")); e.DropDownItems.Add(new ListItem("报价数量", "5")); e.DropDownItems.Add(new ListItem("报价", "6")); e.DropDownItems.Add(new ListItem("备注", "7")); e.DropDownItems.Add(new ListItem("型号/型号-电压", "8")); e.DropDownItems.Add(new ListItem("规格", "9")); e.DropDownItems.Add(new ListItem("颜色", "A")); e.DropDownItems.Add(new ListItem("外购", "F")); e.DropDownItems.Add(new ListItem("意向价", "B")); e.DropDownItems.Add(new ListItem("印字", "C")); e.DropDownItems.Add(new ListItem("原始产品", "D")); e.DropDownItems.Add(new ListItem("包号", "E")); e.DropDownItems.Add(new ListItem("产品报价限价", "G")); e.DropDownItems.Add(new ListItem("报价金额限价", "H")); e.DropDownItems.Add(new ListItem("组合产品目录", "I")); e.DropDownItems.Add(new ListItem("产品目录", "J")); e.DropDownItems.Add(new ListItem("配网清单ID", "K")); e.DropDownItems.Add(new ListItem("物料名称", "L")); e.DropDownItems.Add(new ListItem("描述", "M")); e.DropDownItems.Add(new ListItem("国网物料编码", "N")); e.DropDownItems.Add(new ListItem(sJMBGS, "O")); e.DropDownItems.Add(new ListItem("临时表价", "P")); } } protected override void Grid_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { if (QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text.Trim().Equals("1")) QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text = "1|报价产品"; if (QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text.Trim().Equals("2")) QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text = "2|电压等级"; if (QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text.Trim().Equals("3")) QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text = "3|标准"; if (QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text.Trim().Equals("4")) QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text = "4|计量单位"; if (QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text.Trim().Equals("5")) QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text = "5|报价数量"; if (QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text.Trim().Equals("6")) QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text = "6|报价"; if (QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text.Trim().Equals("7")) QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text = "7|备注"; if (QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text.Trim().Equals("8")) QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text = "8|型号/型号-电压"; if (QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text.Trim().Equals("9")) QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text = "9|规格"; if (QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text.Trim().Equals("A")) QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text = "A|颜色"; if (QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text.Trim().Equals("F")) QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text = "F|外购"; if (QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text.Trim().Equals("B")) QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text = "B|意向价"; if (QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text.Trim().Equals("C")) QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text = "C|印字"; if (QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text.Trim().Equals("D")) QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text = "D|原始产品"; if (QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text.Trim().Equals("E")) QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text = "E|包号"; if (QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text.Trim().Equals("G")) QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text = "G|产品报价限价"; if (QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text.Trim().Equals("H")) QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text = "H|报价金额限价"; if (QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text.Trim().Equals("I")) QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text = "I|组合产品目录"; if (QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text.Trim().Equals("J")) QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text = "J|产品目录"; if (QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text.Trim().Equals("K")) QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text = "K|配网清单ID"; if (QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text.Trim().Equals("L")) QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text = "L|物料名称"; if (QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text.Trim().Equals("M")) QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text = "M|描述"; if (QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text.Trim().Equals("N")) QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text = "N|国网物料编码"; if (QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text.Trim().Equals("O")) { string sJMBGS = "截面比公式"; if (!string.IsNullOrEmpty(sJMBGSBM)) sJMBGS = sJMBGSBM; QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text = "O|" + sJMBGS; } if (QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text.Trim().Equals("P")) QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text = "P|临时表价"; } base.Grid_RowDataBound(sender, e); } #endregion } }