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_CONTROL; using GThinking.N_PUBLIC; using GThinking.N_PUBLIC2; using GThinking.N_MISPRO.Caching; using GThinking.N_MISPRO.Utility; namespace GThinking.N_XLXSBJ { public partial class CLYL_DRYLList : OperationBase { CLYL_DRYL entity = new CLYL_DRYL(); protected void Page_Load(object sender, EventArgs e) { this.UMID = 100860014; this.UMName = "线缆销售报价材料用量"; this.CurMaster = Master; this.Tabs = Tab; this.PageHeight = 600; this.PageWidth = 750; //CurMaster.BtnQueryVisible = false; //CurMaster.BtnReportVisible = false; AddListSetMap(new ListSet(pagSHD.ID, null, grdSHD, entity, UPSHD)); if (!IsPostBack) { this.Master.PnlQuery.GroupingText = "查询条件"; //this.Master.PnlBill.GroupingText = "单据信息"; InitControls(); } //CurMaster.BtnReportVisible = false; if (PageParam.GetRTrimString("CanE").Equals("Y")) { grdSHD.ShowPager = false; grdSHD.ReadOnly = false; grdSHD.EnabledToolBar = false; grdSHD.FindColumnByFieldName("CLYLJSJG_CPWLID").ReadOnly = true; grdSHD.FindColumnByFieldName("CPWLXX").ReadOnly = true; grdSHD.FindColumnByFieldName("CLYLJSJG_WLID").ReadOnly = true; grdSHD.FindColumnByFieldName("WLXX").ReadOnly = true; grdSHD.FindColumnByFieldName("BJCL").ReadOnly = true; CustomPageSize = 1000; } else { CurMaster.BtnOK.Visible = false; CurMaster.BtnCancel.Visible = false; grdSHD.ShowPager = true; grdSHD.ReadOnly = true; grdSHD.EnabledToolBar = true; } if (PageParam.GetRTrimString("FromPage").Equals("CLYL_CLYLList") || PageParam.GetRTrimString("FromPage").Equals("CLYLList")) { cbxGCID.SelectedValue = PageParam.GetRTrimString("GCID"); txtCP_WLID.Text = PageParam.GetRTrimString("CPWLID"); cbxGCID.Enabled = false; txtCP_WLID.Enabled = false; txtCP_WLID.Tag = gtTextBox.DTagStates.None; //cbxPIID.Enabled = false; } base.InitPage(); CurMaster.PnlBill.Visible = false; if (IsPostBack) { Master_OnQuery(); GridDataBind(); } else { if (!cbxGCID.SelectedValue.Trim().Equals("")) { Master_OnQuery(); GridDataBind(); } } } #region 模板继承事件 protected override void Master_OnQuery() { entity.sGCID = cbxGCID.SelectedValue.Trim(); entity.sCPPIID = cbxPIID.SelectedValue.Trim(); entity.sCPWLID = txtCP_WLID.Text.Trim(); entity.sCPWLMC = txtCPWLMC.Text.Trim(); entity.sCPWLGG = txtCPWLGG.Text.Trim(); entity.sWLID = txtWLID.Text.Trim(); entity.sWLMC = txtWLMC.Text.Trim(); entity.sWLGG = txtWLGG.Text.Trim(); entity.sFromPage = PageParam.GetRTrimString("FromPage"); base.Master_OnQuery(); //grdSHD.SelectedIndex = -1; } protected override void GridDataBind() { base.GridDataBind(); } protected override bool QueryValid() { if (cbxGCID.SelectedValue.Trim().Equals("")) { ShowMessage("请选择工厂进行查询!"); return false; } //if (cbxPIID.SelectedValue.Trim().Equals("")) //{ // ShowMessage("请选择物料类别进行查询!"); // return false; //} return base.QueryValid(); } protected override bool DataLogicValid() { return base.DataLogicValid(); } protected override bool Master_OnOK() { bool bResult = base.Master_OnOK(); if (!bResult) return false; string sAnswer = ""; Confirm.Register("IsQD", "是否需要用最新材料物料用量更新各线缆产品的材料用量?"); if (Confirm.GetValue("IsQD").Trim().Equals("")) { Confirm.Ask("IsQD"); return false; } else if (Confirm.GetValue("IsQD").Trim().Equals("N")) { //表示进行了提示并选择了取消,直接返回或其他处理 Confirm.Clear(); sAnswer = "N"; } else if (Confirm.GetValue("IsQD").Trim().Equals("Y")) { //表示进行了提示并选择了确认 Confirm.Clear(); sAnswer = "Y"; } TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sSQL = new TSQL(dberp); try { dberp.BeginTrans(); InsertXLXSCLWLYL(dberp, sSQL); if (sAnswer.Equals("Y")) { UpdateXLXSCLQD(dberp, sSQL); } dberp.CommitTrans(); if (sAnswer.Equals("Y")) ShowMessage("完成材料物料用量调整,并同步更新了各线缆产品的材料用量!"); else ShowMessage("完成材料物料用量调整!"); CloseWindow(); } catch (Exception ex) { dberp.RollbackTrans(); ShowMessage(ex.Message); } return true; } protected override void Grid_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { } base.Grid_RowDataBound(sender, e); } #endregion private void InitControls() { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); string sSQL = "select PL_PIID,PL_MC from PL where 1=1 and isnull(PL_TYBZ,'N')<>'Y' order by PL_PIID "; DataSet ds = dberp.OpenDataSet(sSQL); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sID = ds.Tables[0].Rows[i]["PL_PIID"].ToString().Trim(); string sNAME = ds.Tables[0].Rows[i]["PL_MC"].ToString().Trim(); cbxPIID.Items.Add(new ListItem(sNAME, sID)); } TComboBox.SetComboBox("DBERP", cbxGCID, "select GC_GCID,GC_GCMC from GC where isnull(GC_TYBZ,'N')<>'Y' order by GC_GCID ", false); if (cbxGCID.ItemsCount == 1) cbxGCID.SelectedIndex = 0; } private void UpdateXLXSCLQD(TDatabase dberp, TSQL sSQL) { sSQL.Clear(); sSQL.Add("update XLXSCLQD set "); for (int i = 1; i < 80; i++) { sSQL.Add(string.Format("XLXSCLQD_SL{0}=SL{0},", i.ToString().PadLeft(2, '0'))); } sSQL.Add("XLXSCLQD_SL80=SL80 "); sSQL.Add(" from ("); sSQL.Add("select XLXSCLWLYL_CPWLID as WLID, "); for (int i = 1; i < 80; i++) { sSQL.Add(string.Format("sum(case when XLXSBJCLWL_BJCLID='{0}' then XLXSCLWLYL_SL else 0.0 end) as SL{1}, ", "BJCL" + i.ToString().PadLeft(2, '0') + "0000", i.ToString().PadLeft(2, '0'))); } sSQL.Add("sum(case when XLXSBJCLWL_BJCLID='BJCL800000' then XLXSCLWLYL_SL else 0.0 end) as SL80 "); sSQL.Add(" from XLXSCLWLYL,XLXSBJCLWL "); sSQL.Add(" where XLXSCLWLYL_GCID=:pGCID "); sSQL.Add(" and XLXSCLWLYL_WLID=XLXSBJCLWL_WLID "); sSQL.Add("group by XLXSCLWLYL_CPWLID"); sSQL.Add(") a "); sSQL.Add("where XLXSCLQD_GCID=:pGCID and a.WLID=XLXSCLQD_WLID "); sSQL.ParamByName("pGCID").Value = cbxGCID.SelectedValue.Trim(); dberp.ExecSQL(sSQL); } private void InsertXLXSCLWLYL(TDatabase dberp, TSQL sSQL) { int KeyRun = 500; int tmpRun = 1;//循环KeyRun次执行1次SQL TSQL sqlDel = new TSQL(dberp); string strDel = ""; string strIns = ""; string sWHR = CurSession.UserName; string sWHRID = CurSession.UserId; string sWHSJ = DateTime.Now.ToString(); foreach (GridViewRow Row in grdSHD.NewRows) { string sCPWLID = grdSHD.GetValueByFieldName("CLYLJSJG_CPWLID", Row).Trim(); string sWLID = grdSHD.GetValueByFieldName("CLYLJSJG_WLID", Row).Trim(); double fSL = CMISproConvert.StrToFloat(grdSHD.GetValueByFieldName("SL", Row), 0); if (!sCPWLID.Equals("") && !sWLID.Equals("")) { if (strDel.Trim().Equals("")) strDel = string.Format("(XLXSCLWLYL_CPWLID='{0}' and XLXSCLWLYL_WLID='{1}')", sCPWLID, sWLID); else strDel += string.Format(" or (XLXSCLWLYL_CPWLID='{0}' and XLXSCLWLYL_WLID='{1}')", sCPWLID, sWLID); if (strIns.Trim().Equals("")) strIns = string.Format("select '{0}' as GC,'{1}' as CPWL,'{2}' as WL,{3} as SL,'{4}' as WHR,'{5}' as WHRID,'{6}' as WHSJ ", cbxGCID.SelectedValue.Trim(), sCPWLID, sWLID, fSL, sWHR, sWHRID, sWHSJ); else { strIns += "\r\n" + " union all " + "\r\n"; strIns += string.Format("select '{0}' as GC,'{1}' as CPWL,'{2}' as WL,{3} as SL,'{4}' as WHR,'{5}' as WHRID,'{6}' as WHSJ ", cbxGCID.SelectedValue.Trim(), sCPWLID, sWLID, fSL, sWHR, sWHRID, sWHSJ); } } if (tmpRun >= KeyRun && (tmpRun % KeyRun == 0)) { if (!strDel.Trim().Equals("")) { sqlDel.Clear(); sqlDel.Add("delete from XLXSCLWLYL where XLXSCLWLYL_GCID=:pGCID "); sqlDel.Add(" and (" + strDel + ")"); sqlDel.ParamByName("pGCID").Value = cbxGCID.SelectedValue.Trim(); dberp.ExecSQL(sqlDel); strDel = ""; } if (!strIns.Trim().Equals("")) { sSQL.Clear(); sSQL.Add("insert into XLXSCLWLYL(XLXSCLWLYL_GCID,XLXSCLWLYL_CPWLID,XLXSCLWLYL_WLID,XLXSCLWLYL_SL,XLXSCLWLYL_WHR,XLXSCLWLYL_WHRID,XLXSCLWLYL_WHSJ) "); sSQL.Add(strIns); dberp.ExecSQL(sSQL); strIns = ""; } } tmpRun++; } if (!strDel.Trim().Equals("")) { sqlDel.Clear(); sqlDel.Add("delete from XLXSCLWLYL where XLXSCLWLYL_GCID=:pGCID "); sqlDel.Add(" and (" + strDel + ")"); sqlDel.ParamByName("pGCID").Value = cbxGCID.SelectedValue.Trim(); dberp.ExecSQL(sqlDel); strDel = ""; } if (!strIns.Trim().Equals("")) { sSQL.Clear(); sSQL.Add("insert into XLXSCLWLYL(XLXSCLWLYL_GCID,XLXSCLWLYL_CPWLID,XLXSCLWLYL_WLID,XLXSCLWLYL_SL,XLXSCLWLYL_WHR,XLXSCLWLYL_WHRID,XLXSCLWLYL_WHSJ) "); sSQL.Add(strIns); dberp.ExecSQL(sSQL); strIns = ""; } } } }