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_CONTROL; using GThinking.N_MISPRO.Data; using GThinking.N_MISPRO.Utility; using System.Collections.Generic; using GThinking.N_MISPRO; namespace GThinking.N_XLXSBJ { public partial class CLYL_FZZTCLYLList : OperationBase { CLYL_FZZTCLYL entity = new CLYL_FZZTCLYL(); DataSet dsCLYLLM = new DataSet(); protected void Page_Load(object sender, EventArgs e) { this.UMID = 100860014; this.UMName = "线缆销售报价材料用量"; this.CurMaster = Master; this.Tabs = Tab; this.PageHeight = 500; this.PageWidth = 700; CurMaster.BtnQueryVisible = false; CurMaster.BtnReportVisible = false; entity.getSQL += new CLYL_FZZTCLYL.getQuerySQL(EntityGetQuerySQL); AddListSetMap(new ListSet(pagFZZTCLYL.ID, null, grdFZZTCLYL, entity, UPFZZTCLYL)); base.InitPage(); string sJGCZBID = PageParam.GetRTrimString("JGCZBID"); string sJGCZBBBID = PageParam.GetRTrimString("JGCZBBBID"); dsCLYLLM = GetJGCZBCLYLLM(sJGCZBID, sJGCZBBBID); grdFZZTCLYL.EnabledToolBar = false; CurMaster.PnlQuery.Visible = false; if (!IsPostBack) { Master_OnQuery(); GridDataBind(); } } #region 模板继承事件 protected override void Master_OnQuery() { base.Master_OnQuery(); grdFZZTCLYL.SelectedIndex = -1; } protected override void GridDataBind() { base.GridDataBind(); } protected override bool DataLogicValid() { return base.DataLogicValid(); } protected override bool Master_OnOK() { bool bResult = base.Master_OnOK(); if (!bResult) return false; CMISproSession tSession = CMISproApp.GetSession(); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sSQL = new TSQL(dberp); string sXLXHID = ""; string sXLGGID = ""; string sXLBZID = ""; string sDYDJID = ""; string sJGCZBID = PageParam.GetRTrimString("JGCZBID"); string sJGCZBBBID = PageParam.GetRTrimString("JGCZBBBID"); string sCZBJLDW = PageParam.GetRTrimString("CZBJLDW"); string sWPID = PageParam.GetRTrimString("WPID"); string sUSERID = PageParam.GetRTrimString("USERID"); Dictionary dicSL = new Dictionary(); Dictionary dicDRMXBZ = new Dictionary(); for (int t = 1; t <= 80; t++) { dicSL.Add("SL" + t.ToString().PadLeft(2, '0'), 0.0); } double fHSBL = 1;//换算比例 if (XLBJDUtils.GetDefaultBJU003(GetOption("BJU003")).ToUpper().Equals("KM") && sCZBJLDW.Split('/')[1].ToUpper().Equals("M")) { fHSBL = 1000; } else if (XLBJDUtils.GetDefaultBJU003(GetOption("BJU003")).ToUpper().Equals("M") && sCZBJLDW.Split('/')[1].ToUpper().Equals("KM")) { fHSBL = 0.001; } if (grdFZZTCLYL.NewRows.Count == 0) { return false; } else { for (int i = 0; i < grdFZZTCLYL.NewRows.Count; i++) { for (int j = 0; j < dsCLYLLM.Tables[0].Rows.Count; j++) { string sDataField = "V" + j.ToString().Trim(); string sBJCLID = dsCLYLLM.Tables[0].Rows[j]["XLJGCZBLM_BJCLID"].ToString().Trim(); string sBJCLMC = dsCLYLLM.Tables[0].Rows[j]["CLMC"].ToString().Trim(); double fCZBYL = CMISproConvert.StrToFloat(grdFZZTCLYL.GetValueByFieldName(sDataField.Trim(), grdFZZTCLYL.NewRows[i]).ToString()); int iRow = i + 1; if (fCZBYL < 0) { ShowMessage("第" + iRow.ToString().Trim() + "行," + sBJCLMC + "尺重表用量不允许小于0!"); return false; } if (dsCLYLLM.Tables[0].Rows[j]["XLXSBJCL_BJHQ"].ToString().Trim().Equals("2") && grdFZZTCLYL.GetValueByFieldName(sDataField.Trim() + "_CLWL", grdFZZTCLYL.NewRows[i]).ToString().Trim().Equals("") && fCZBYL > 0) { ShowMessage(string.Format("第" + iRow.ToString().Trim() + "行," + "{0}|{1}--需要指定材料物料!", sBJCLID, sBJCLMC)); return false; } } } try { dberp.BeginTrans(); dicDRMXBZ.Clear(); sSQL.Clear(); sSQL.Add("select XLBZ_XLBZID,XLBZ_XLBZLXMC from XLBZ where 1 = 1 "); DataSet dsXLBZ = dberp.OpenDataSet(sSQL); if (dsXLBZ.Tables[0].Rows.Count > 0) { for (int z = 0; z < dsXLBZ.Tables[0].Rows.Count; z++) { dicDRMXBZ.Add(dsXLBZ.Tables[0].Rows[z]["XLBZ_XLBZID"].ToString().Trim(), dsXLBZ.Tables[0].Rows[z]["XLBZ_XLBZLXMC"].ToString().Trim()); } } sSQL.Clear(); sSQL.Add("update XLXSCLQD set "); sSQL.Add(" XLXSCLQD_SL01=:SL01,XLXSCLQD_SL02=:SL02,XLXSCLQD_SL03=:SL03,XLXSCLQD_SL04=:SL04,XLXSCLQD_SL05=:SL05,XLXSCLQD_SL06=:SL06,XLXSCLQD_SL07=:SL07,XLXSCLQD_SL08=:SL08,XLXSCLQD_SL09=:SL09,XLXSCLQD_SL10=:SL10,"); sSQL.Add(" XLXSCLQD_SL11=:SL11,XLXSCLQD_SL12=:SL12,XLXSCLQD_SL13=:SL13,XLXSCLQD_SL14=:SL14,XLXSCLQD_SL15=:SL15,XLXSCLQD_SL16=:SL16,XLXSCLQD_SL17=:SL17,XLXSCLQD_SL18=:SL18,XLXSCLQD_SL19=:SL19,XLXSCLQD_SL20=:SL20,"); sSQL.Add(" XLXSCLQD_SL21=:SL21,XLXSCLQD_SL22=:SL22,XLXSCLQD_SL23=:SL23,XLXSCLQD_SL24=:SL24,XLXSCLQD_SL25=:SL25,XLXSCLQD_SL26=:SL26,XLXSCLQD_SL27=:SL27,XLXSCLQD_SL28=:SL28,XLXSCLQD_SL29=:SL29,XLXSCLQD_SL30=:SL30,"); sSQL.Add(" XLXSCLQD_SL31=:SL31,XLXSCLQD_SL32=:SL32,XLXSCLQD_SL33=:SL33,XLXSCLQD_SL34=:SL34,XLXSCLQD_SL35=:SL35,XLXSCLQD_SL36=:SL36,XLXSCLQD_SL37=:SL37,XLXSCLQD_SL38=:SL38,XLXSCLQD_SL39=:SL39,XLXSCLQD_SL40=:SL40,"); sSQL.Add(" XLXSCLQD_SL41=:SL41,XLXSCLQD_SL42=:SL42,XLXSCLQD_SL43=:SL43,XLXSCLQD_SL44=:SL44,XLXSCLQD_SL45=:SL45,XLXSCLQD_SL46=:SL46,XLXSCLQD_SL47=:SL47,XLXSCLQD_SL48=:SL48,XLXSCLQD_SL49=:SL49,XLXSCLQD_SL50=:SL50,"); sSQL.Add(" XLXSCLQD_SL51=:SL51,XLXSCLQD_SL52=:SL52,XLXSCLQD_SL53=:SL53,XLXSCLQD_SL54=:SL54,XLXSCLQD_SL55=:SL55,XLXSCLQD_SL56=:SL56,XLXSCLQD_SL57=:SL57,XLXSCLQD_SL58=:SL58,XLXSCLQD_SL59=:SL59,XLXSCLQD_SL60=:SL60,"); sSQL.Add(" XLXSCLQD_SL61=:SL61,XLXSCLQD_SL62=:SL62,XLXSCLQD_SL63=:SL63,XLXSCLQD_SL64=:SL64,XLXSCLQD_SL65=:SL65,XLXSCLQD_SL66=:SL66,XLXSCLQD_SL67=:SL67,XLXSCLQD_SL68=:SL68,XLXSCLQD_SL69=:SL69,XLXSCLQD_SL70=:SL70,"); sSQL.Add(" XLXSCLQD_SL71=:SL71,XLXSCLQD_SL72=:SL72,XLXSCLQD_SL73=:SL73,XLXSCLQD_SL74=:SL74,XLXSCLQD_SL75=:SL75,XLXSCLQD_SL76=:SL76,XLXSCLQD_SL77=:SL77,XLXSCLQD_SL78=:SL78,XLXSCLQD_SL79=:SL79,XLXSCLQD_SL80=:SL80,"); sSQL.Add(" XLXSCLQD_WHR=:XLXSCLQD_WHR,XLXSCLQD_WHRID=:XLXSCLQD_WHRID,XLXSCLQD_WHSJ=:XLXSCLQD_WHSJ"); sSQL.Add(" where XLXSCLQD_XLXHID=:XLXSCLQD_XLXHID"); sSQL.Add(" and XLXSCLQD_XLGGID=:XLXSCLQD_XLGGID"); sSQL.Add(" and XLXSCLQD_XLBZID=:XLXSCLQD_XLBZID"); sSQL.Add(" and XLXSCLQD_DYDJID=:XLXSCLQD_DYDJID"); for (int m = 0; m < grdFZZTCLYL.NewRows.Count; m++) { sXLXHID = grdFZZTCLYL.GetValueByFieldName("XLXSCLQD_XLXHID", grdFZZTCLYL.NewRows[m]).ToString().Trim(); sXLGGID = grdFZZTCLYL.GetValueByFieldName("XLXSCLQD_XLGGID", grdFZZTCLYL.NewRows[m]).ToString().Trim(); sXLBZID = grdFZZTCLYL.GetValueByFieldName("XLBZ", grdFZZTCLYL.NewRows[m]).ToString().Trim(); sXLBZID = XLBJDUtils.GetBZXLZBZID(sXLBZID, "", dicDRMXBZ); sDYDJID = grdFZZTCLYL.GetValueByFieldName("XLXSCLQD_DYDJID", grdFZZTCLYL.NewRows[m]).ToString().Trim(); sDYDJID = sDYDJID.Replace('K', 'k').Replace('v', 'V'); sDYDJID = sDYDJID.Trim().Equals("") ? " " : sDYDJID.Trim(); sSQL.ParamByName("XLXSCLQD_XLXHID").Value = sXLXHID; sSQL.ParamByName("XLXSCLQD_XLGGID").Value = sXLGGID; sSQL.ParamByName("XLXSCLQD_XLBZID").Value = sXLBZID; sSQL.ParamByName("XLXSCLQD_DYDJID").Value = sDYDJID; for (int n = 0; n < dsCLYLLM.Tables[0].Rows.Count; n++) { string sDataField = "V" + n.ToString().Trim(); string sBJCLID = dsCLYLLM.Tables[0].Rows[n]["XLJGCZBLM_BJCLID"].ToString().Trim(); double dSL = CMISproConvert.StrToFloat(grdFZZTCLYL.GetValueByFieldName(sDataField.Trim(), grdFZZTCLYL.NewRows[m]).ToString(), 0); dicSL["SL" + Convert.ToString(n + 1).PadLeft(2, '0')] = dSL * fHSBL; } if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSCLQD where XLXSCLQD_JGCZBID='{0}' and XLXSCLQD_JGCZBBBID='{1}' and XLXSCLQD_WPID='{2}'" + " and XLXSCLQD_WFAWAITER like '{3}' and XLXSCLQD_XLXHID='{4}' and XLXSCLQD_XLGGID='{5}' and XLXSCLQD_XLBZID='{6}' and XLXSCLQD_DYDJID='{7}'", sJGCZBID, sJGCZBBBID, sWPID, "%," + sUSERID + ",%", sXLXHID, sXLGGID, sXLBZID, sDYDJID))) { for (int t = 1; t <= 80; t++) { sSQL.ParamByName("SL" + t.ToString().PadLeft(2, '0')).Value = dicSL["SL" + t.ToString().PadLeft(2, '0')]; } sSQL.ParamByName("XLXSCLQD_WHR").Value = tSession.UserName; sSQL.ParamByName("XLXSCLQD_WHRID").Value = tSession.UserId; sSQL.ParamByName("XLXSCLQD_WHSJ").Value = DateTime.Now; dberp.ExecSQL(sSQL); //清空dicSL dicSL.Clear(); for (int t = 1; t <= 80; t++) { dicSL.Add("SL" + t.ToString().PadLeft(2, '0'), 0.0); } } } bool bXLXSCLQDWL = false; //当前尺重表栏目关联的报价材料是否存在需要细分的 if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLJGCZBLM left join XLXSBJCL on XLXSBJCL_BJCLID=XLJGCZBLM_BJCLID where XLJGCZBLM_JGCZBID='{0}' and XLJGCZBLM_JGCZBBBID='{1}' and XLXSBJCL_BJHQ='2'", sJGCZBID, sJGCZBBBID))) { for (int a = 0; a < grdFZZTCLYL.NewRows.Count; a++) { bool bInsertXLXSCLQDWL = false; sXLXHID = grdFZZTCLYL.GetValueByFieldName("XLXSCLQD_XLXHID", grdFZZTCLYL.NewRows[a]).ToString().Trim(); sXLGGID = grdFZZTCLYL.GetValueByFieldName("XLXSCLQD_XLGGID", grdFZZTCLYL.NewRows[a]).ToString().Trim(); sXLBZID = grdFZZTCLYL.GetValueByFieldName("XLBZ", grdFZZTCLYL.NewRows[a]).ToString().Trim(); sXLBZID = XLBJDUtils.GetBZXLZBZID(sXLBZID, "", dicDRMXBZ); sDYDJID = grdFZZTCLYL.GetValueByFieldName("XLXSCLQD_DYDJID", grdFZZTCLYL.NewRows[a]).ToString().Trim(); sDYDJID = sDYDJID.Replace('K', 'k').Replace('v', 'V'); sDYDJID = sDYDJID.Trim().Equals("") ? " " : sDYDJID.Trim(); for (int b = 0; b < dsCLYLLM.Tables[0].Rows.Count; b++) { string sDataField = "V" + b.ToString().Trim(); string sBJCLID = dsCLYLLM.Tables[0].Rows[b]["XLJGCZBLM_BJCLID"].ToString().Trim(); if (!grdFZZTCLYL.GetValueByFieldName(sDataField.Trim() + "_CLWL", grdFZZTCLYL.NewRows[a]).ToString().Trim().Equals("")) bInsertXLXSCLQDWL = true; } if (bInsertXLXSCLQDWL) { bXLXSCLQDWL = true; sSQL.Clear(); sSQL.Add("select XLXSCLQD_JGCZBXH,XLXSCLQD_DRHH from XLXSCLQD where XLXSCLQD_XLXHID=:pXLXHID and XLXSCLQD_XLGGID=:pXLGGID and XLXSCLQD_XLBZID=:pXLBZID and XLXSCLQD_DYDJID=:pDYDJID"); sSQL.ParamByName("pXLXHID").Value = sXLXHID; sSQL.ParamByName("pXLGGID").Value = sXLGGID; sSQL.ParamByName("pXLBZID").Value = sXLBZID; sSQL.ParamByName("pDYDJID").Value = sDYDJID; DataSet ds = dberp.OpenDataSet(sSQL); double fJGCZBXH = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSCLQD_JGCZBXH"].ToString()); double fDRHH = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSCLQD_DRHH"].ToString()); double newDRHH = fDRHH; if (newDRHH == 0.0) { sSQL.Clear(); sSQL.Add("select min(XLXSCLQD_DRHH) as minDRHH "); sSQL.Add(" from XLXSCLQD"); sSQL.Add(" where XLXSCLQD_JGCZBID=:pJGCZBID"); sSQL.Add(" and XLXSCLQD_DRHH<0");//DRHH为负,用于临时建立XLXSCLQD和XLXSCLQDWL之间的关系 sSQL.ParamByName("pJGCZBID").Value = sJGCZBID; DataSet dsCLQD = dberp.OpenDataSet(sSQL); if (dsCLQD.Tables[0].Rows.Count > 0) { newDRHH = CMISproConvert.StrToFloat(dsCLQD.Tables[0].Rows[0][0].ToString()) - 1; } else newDRHH = -1;//特殊处理 sSQL.Clear(); sSQL.Add("update XLXSCLQD set XLXSCLQD_JGCZBXH=:pJGCZBXH,XLXSCLQD_DRHH=:pDRHH "); sSQL.Add("where XLXSCLQD_XLXHID=:pXLXHID and XLXSCLQD_XLGGID=:pXLGGID and XLXSCLQD_XLBZID=:pXLBZID and XLXSCLQD_DYDJID=:pDYDJID "); sSQL.ParamByName("pJGCZBXH").Value = fJGCZBXH; sSQL.ParamByName("pDRHH").Value = newDRHH; sSQL.ParamByName("pXLXHID").Value = sXLXHID; sSQL.ParamByName("pXLGGID").Value = sXLGGID; sSQL.ParamByName("pXLBZID").Value = sXLBZID; sSQL.ParamByName("pDYDJID").Value = sDYDJID; dberp.ExecSQL(sSQL); } sSQL.Clear(); sSQL.Add("delete from XLXSCLQDWL where XLXSCLQDWL_JGCZBID=:pJGCZBID and XLXSCLQDWL_JGCZBBBID=:pJGCZBBBID"); sSQL.Add(" and XLXSCLQDWL_JGCZBXH=:pJGCZBXH and XLXSCLQDWL_DRHH=:pDRHH"); sSQL.ParamByName("pJGCZBID").Value = sJGCZBID; sSQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID; sSQL.ParamByName("pJGCZBXH").Value = fJGCZBXH; sSQL.ParamByName("pDRHH").Value = newDRHH; dberp.ExecSQL(sSQL); sSQL.Clear(); sSQL.Add("insert into XLXSCLQDWL(XLXSCLQDWL_JGCZBID,XLXSCLQDWL_JGCZBBBID,XLXSCLQDWL_JGCZBXH,XLXSCLQDWL_DRHH"); for (int b = 0; b < dsCLYLLM.Tables[0].Rows.Count; b++) { string sQDL = dsCLYLLM.Tables[0].Rows[b]["XLJGCZBLM_CLQDL"].ToString().Trim().Replace("第", "").Replace("列", ""); sSQL.Add(string.Format(",XLXSCLQDWL_WLID{0} ", sQDL)); } sSQL.Add(") "); sSQL.Add("values (:pJGCZBID,:pJGCZBBBID,:pJGCZBXH,:pDRHH"); for (int b = 0; b < dsCLYLLM.Tables[0].Rows.Count; b++) { string sDataField = "V" + b.ToString().Trim(); string sBJCLID = dsCLYLLM.Tables[0].Rows[b]["XLJGCZBLM_BJCLID"].ToString().Trim(); string sCLWL = grdFZZTCLYL.GetValueByFieldName(sDataField.Trim() + "_CLWL", grdFZZTCLYL.NewRows[a]).ToString().Trim(); sCLWL = sCLWL.Trim().Equals("") ? "" : sCLWL.Trim().Split('|')[0]; sSQL.Add(string.Format(",'{0}' ", sCLWL)); } sSQL.Add(") "); sSQL.ParamByName("pJGCZBID").Value = sJGCZBID; sSQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID; sSQL.ParamByName("pJGCZBXH").Value = fJGCZBXH; sSQL.ParamByName("pDRHH").Value = newDRHH; dberp.ExecSQL(sSQL); } else { //如果材料物料列数据都是空,则删除XLXSCLQDWL sSQL.Clear(); sSQL.Add("delete from XLXSCLQDWL "); sSQL.Add("where exists(select 1 from XLXSCLQD "); sSQL.Add(" where XLXSCLQD_XLXHID=:pXLXHID and XLXSCLQD_XLGGID=:pXLGGID and XLXSCLQD_XLBZID=:pXLBZID and XLXSCLQD_DYDJID=:pDYDJID"); sSQL.Add(" and XLXSCLQD_JGCZBID=XLXSCLQDWL_JGCZBID and XLXSCLQD_JGCZBBBID=XLXSCLQDWL_JGCZBBBID and XLXSCLQD_JGCZBXH=XLXSCLQDWL_JGCZBXH and XLXSCLQD_DRHH=XLXSCLQDWL_DRHH"); sSQL.Add(" )"); sSQL.ParamByName("pXLXHID").Value = sXLXHID; sSQL.ParamByName("pXLGGID").Value = sXLGGID; sSQL.ParamByName("pXLBZID").Value = sXLBZID; sSQL.ParamByName("pDYDJID").Value = sDYDJID; dberp.ExecSQL(sSQL); } } } dberp.CommitTrans(); if (bXLXSCLQDWL) ShowMessage("已完成材料用量+材料物料的设置!"); else ShowMessage("已完成材料用量的设置!"); DialogOperationScript dos = new DialogOperationScript(this); if (!PageParam.GetRTrimString("btnRefreshCID").Equals("")) dos.ClickOwnerButton(PageParam.GetRTrimString("btnRefreshCID")); dos.CloseSelf(); dos.Execute(); } catch (Exception ex) { ShowMessage(ex.Message); dberp.RollbackTrans(); return false; } } return false; } protected override void Grid_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow && Tab.ActiveTabIndex == 1) { } base.Grid_RowDataBound(sender, e); } #endregion #region 自定义事件 private void EntityGetQuerySQL(TSQL SQL) { string sJGCZBID = PageParam.GetRTrimString("JGCZBID"); string sJGCZBBBID = PageParam.GetRTrimString("JGCZBBBID"); string sCZBJLDW = PageParam.GetRTrimString("CZBJLDW"); string sWPID = PageParam.GetRTrimString("WPID"); string sUSERID = PageParam.GetRTrimString("USERID"); InitGrid(dsCLYLLM); SQL.Add(" select XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID,XLXSCLQD_DYDJID,RTRIM(XLXSCLQD_XLBZID) ||'|'|| XLBZ_XLBZLXMC as XLBZ,'" + sCZBJLDW + "' as JLDW "); for (int i = 0; i < dsCLYLLM.Tables[0].Rows.Count; i++) { string sDataField = "V" + i.ToString().Trim(); SQL.Add(",'' as " + sDataField.Trim()); if (dsCLYLLM.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim().Equals("2")) { SQL.Add(",'' as " + sDataField.Trim() + "_CLWL"); } } SQL.Add(" from XLXSCLQD "); SQL.Add(" left join (select XLGGB_XLGGID as XLGGID,MIN(XLGGB_XH) as minXH from XLGGB where 1=1 GROUP BY XLGGB_XLGGID ) tmpXLGGB "); SQL.Add(" on XLGGID = REPLACE(XLXSCLQD_XLGGID , '*','×') "); SQL.Add(" left join XLBZ on XLBZ_XLBZID=XLXSCLQD_XLBZID "); SQL.Add(" where XLXSCLQD_JGCZBID=:pJGCZBID and XLXSCLQD_JGCZBBBID=:pJGCZBBBID and XLXSCLQD_WPID=:pWPID and XLXSCLQD_WFAWAITER like :pWFAWAITER "); SQL.Add(" order by XLXSCLQD_XLXHID,XLXSCLQD_XLBZID,minXH,XLXSCLQD_XLGGID,XLXSCLQD_DYDJID "); SQL.ParamByName("pJGCZBID").Value = sJGCZBID; SQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID; SQL.ParamByName("pWPID").Value = sWPID; SQL.ParamByName("pWFAWAITER").Value = "%," + sUSERID + ",%"; ; } //获取结构尺重表材料用量栏目信息 public static DataSet GetJGCZBCLYLLM(string sJGCZBID, string sJGCZBBBID) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Add(" select XLJGCZBLM_BJCLID,XLXSBJCL_BJHQ,XLJGCZBLM_CLQDL, "); sql.Add(" case when isnull(XLXSBJCL_BJCLID,' ')=' ' then XLJGCZBLM_CZBLMMC else XLXSBJCL_BJCLMC end as CLMC"); sql.Add(" from XLJGCZBLM "); sql.Add(" left join XLXSBJCL on XLXSBJCL_BJCLID=XLJGCZBLM_BJCLID"); sql.Add(" where XLJGCZBLM_JGCZBID=:pJGCZBID and XLJGCZBLM_JGCZBBBID=:pJGCZBBBID and isnull(XLJGCZBLM_CLQDL,' ')<>' '"); sql.Add(" order by XLJGCZBLM_CLQDL "); sql.ParamByName("pJGCZBID").Value = sJGCZBID; sql.ParamByName("pJGCZBBBID").Value = sJGCZBBBID; return dberp.OpenDataSet(sql); } #region 动态加载列表 private void InitGrid(DataSet dsCLYLLM) { AddColumn("XLXSCLQD_XLXHID", "型号", 120, true); AddColumn("XLXSCLQD_XLGGID", "规格", 120, true); AddColumn("XLBZ", "标准", 80, true); AddColumn("XLXSCLQD_DYDJID", "电压等级", 80, true); AddColumn("JLDW", "计量单位", 50, true); for (int i = 0; i < dsCLYLLM.Tables[0].Rows.Count; i++) { string sDataField = "V" + i.ToString().Trim(); AddColumn(sDataField.Trim(), dsCLYLLM.Tables[0].Rows[i]["CLMC"].ToString().Trim(), 6, 100); if (dsCLYLLM.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim().Equals("2")) { AddColumn(sDataField.Trim() + "_CLWL", "材料物料", 200, ""); } } } #region GridView增加列 /// /// 设置etString列的属性 /// /// /// /// private void AddColumn(string sDataField, string HeadText, int Width, Boolean ReadOnly) { gtAjaxGridViewColumn Column = new gtAjaxGridViewColumn(); Column.HeaderText = HeadText; Column.DataField = sDataField; Column.Width = (Unit)Width; Column.EditType = TEditType.etString; Column.ReadOnly = ReadOnly; grdFZZTCLYL.Columns.Add(Column); } /// /// 设置etNumber列的属 /// /// /// /// /// private void AddColumn(string sDataField, string HeadText, int NumberDecimalPlace, int Width) { gtAjaxGridViewColumn Column = new gtAjaxGridViewColumn(); Column.HeaderText = HeadText; Column.DataField = sDataField; Column.Width = (Unit)Width; Column.EditType = TEditType.etNumber; Column.NumberDecimalPlace = NumberDecimalPlace; grdFZZTCLYL.Columns.Add(Column); } /// /// 设置etDropDown列的属性 /// /// /// /// private void AddColumn(string sDataField, string HeadText, int Width, string p_SQL) { gtAjaxGridViewColumn Column = new gtAjaxGridViewColumn(); Column.HeaderText = HeadText; Column.DataField = sDataField; Column.Width = (Unit)Width; Column.EditType = TEditType.etDropDown; grdFZZTCLYL.Columns.Add(Column); } #endregion #endregion #endregion #region 控件事件 protected void grdFZZTCLYL_GetDropDownColumnItems(object sender, GetDropDownColumnItemsEventArgs e) { if (e.EventFieldName.Contains("CLWL")) { string sEventFieldName = e.EventFieldName.Split('_')[0].ToString().Trim(); int iROW = CMISproConvert.StrToInt(sEventFieldName.Substring(1)); string sBJCLID = dsCLYLLM.Tables[0].Rows[iROW]["XLJGCZBLM_BJCLID"].ToString().Trim(); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Clear(); sql.Add("select XLXSBJCLWL_WLID, "); sql.Add("rtrim(rtrim(rtrim(rtrim(isnull(WL_MC,' '))||' '||rtrim(isnull(WL_GG,' ')))||' '||rtrim(isnull(WL_TZ,' ')))||' '||rtrim(isnull(WL_CL,' '))) as Name "); sql.Add("from XLXSBJCLWL "); sql.Add("left join WL on WL_WLID=XLXSBJCLWL_WLID "); sql.Add("left join XLXSBJCL on XLXSBJCL_BJCLID=XLXSBJCLWL_BJCLID "); sql.Add("where XLXSBJCLWL_BJCLID=:pBJCLID "); sql.Add(" and XLXSBJCL_BJHQ='2' "); sql.Add("order by XLXSBJCLWL_WLID"); sql.ParamByName("pBJCLID").Value = sBJCLID; DataSet ds = dberp.OpenDataSet(sql); e.DropDownItems.Clear(); if (ds.Tables[0].Rows.Count > 0) { e.DropDownItems.Add(new ListItem("", "")); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i]["Name"].ToString().Trim(), ds.Tables[0].Rows[i]["XLXSBJCLWL_WLID"].ToString().Trim())); } } } #endregion } }