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.Data; using GThinking.N_MISPRO.Utility; using System.Text; using GThinking.N_CONTROL; using GThinking.N_MISPRO; using System.Collections.Generic; namespace GThinking.N_XLXSBJ { public partial class XLBJD_PLDRList : SingleGridBase { XLBJD_PLDR entity = new XLBJD_PLDR(); PLDR_M queryEntity = new PLDR_M(); protected void Page_Load(object sender, EventArgs e) { this.UMID = 100860000; this.UMName = "按材料清单导入"; this.CurMaster = Master; this.ModuleGV = ContentGrid; this.CurEntity = entity; this.CurQueryEntity = queryEntity; sQueryURLTarget = "XLJGB_PLDRQuery.aspx"; this.PageHeight = 400; this.PageWidth = 500; base.DataKeyNames = new string[] { "XLXSCLQD_XLXHID", "XLXSCLQD_XLGGID", "XLXSCLQD_XLBZID", "XLXSCLQD_DYDJID", "XLXSCLQD_CLZL" }; this.Master.EnableNewBtn = false; this.Master.EnableCopyBtn = false; this.Master.EnableEditBtn = false; this.Master.EnableDeleteBtn = false; this.Master.EnableViewBtn = false; this.Master.EnablePrintBtn = false; base.InitPage(); this.ModuleGV.OnClientDblClick = "return false;"; if (!IsPostBack) { // Master_OnStandardQuery(null, null); } } #region 模板继承事件 protected override void Master_OnStandardQuery(object sender, EventArgs e) { base.InitEntityByCondition(); entity.EntityTable.QuerySelSql = GetQuerySql(); base.Master_OnStandardQuery(sender, e); entity.GridDataBind(ContentGrid, tSession); } protected override void moduleGV_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { } base.moduleGV_RowDataBound(sender, e); } protected override void moduleGV_PageIndexChanging(object sender, GridViewPageEventArgs e) { base.InitEntityByCondition(); entity.EntityTable.QuerySelSql = GetQuerySql(); ContentGrid.SelectedIndex = -1; base.moduleGV_PageIndexChanging(sender, e); } #endregion #region 控件事件 protected void btnQR_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(ContentGrid.CheckedRowIndexs)) { ShowMessage("请勾选需要导入的记录!"); return; } int tmpXSWS = string.IsNullOrEmpty(GetOption("BJU002")) ? 5 : CMISproConvert.StrToInt(GetOption("BJU002")); if (tmpXSWS < 0) tmpXSWS = 0; else if (tmpXSWS > 8) tmpXSWS = 8; string sErrorNum = ""; int iStartXH = 0; string sBJU003 = GetOption("BJU003"); //传入的是BJU003的计量单位 string sJLDW = PageParam.GetRTrimString("JLDW"); string sBJLY = PageParam.GetRTrimString("BJLY"); string sBJFLID = PageParam.GetRTrimString("BJFLID"); string sBJDHQLY = PageParam.GetRTrimString("BJDHQLY"); string sBJRQ = PageParam.GetRTrimString("BJRQ"); string sCPBJMRXSWS = PageParam.GetRTrimString("CPBJMRXSWS"); //A|× B|* string sXLJGU007 = GetOption(102579000, "XLJGU007"); bool bNeedUp = false; string[] sRowIndexs = ContentGrid.CheckedRowIndexs.Split(','); if (!string.IsNullOrEmpty(PageParam.GetRTrimString("BJDID"))) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sSQL = new TSQL(dberp); try { dberp.BeginTrans(); string sBJDID = PageParam.GetRTrimString("BJDID"); int iXH = CMISproDataBase.GetMaxXH("DBERP", "XLXSBJDMX", "XLXSBJDMX_XH", "XLXSBJDMX_BJDID='" + PageParam.GetRTrimString("BJDID") + "'"); int iXSSX = CMISproDataBase.GetMaxXH("DBERP", "XLXSBJDMX", "XLXSBJDMX_XSSX", "XLXSBJDMX_BJDID = '" + PageParam.GetRTrimString("BJDID") + "'"); string sXLXHID = "", sXLGGID = "", sST = "", sDYDJ = ""; for (int i = 0; i < sRowIndexs.Length; i++) { sSQL.Clear(); sSQL.Add(" insert into XLXSBJDMX( "); sSQL.Add(" XLXSBJDMX_BJDID, XLXSBJDMX_XH,XLXSBJDMX_XSSX, XLXSBJDMX_XLXHID, XLXSBJDMX_XLGGID,XLXSBJDMX_WGCPBZ,XLXSBJDMX_XDXLXHID,XLXSBJDMX_XDXLBZID, "); sSQL.Add(" XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID,XLXSBJDMX_XLYSID,XLXSBJDMX_BJCP,XLXSBJDMX_JLDW,XLXSBJDMX_TZQCPBJ,XLXSBJDMX_TZCPBJ,XLXSBJDMX_CPBJ, "); sSQL.Add(" XLXSBJDMX_JGBJJ,XLXSBJDMX_CLCB, XLXSBJDMX_JGBBJ,XLXSBJDMX_DZSC,XLXSBJDMX_WHR,XLXSBJDMX_WHRID,XLXSBJDMX_WHSJ,XLXSBJDMX_JGBBJJCL,XLXSBJDMX_CLZL,XLXSBJDMX_BJDHQCLCB,XLXSBJDMX_CLCBJCL,XLXSBJDMX_JGBBJLJJCL) "); sSQL.Add(" values("); sSQL.Add(" :XLXSBJDMX_BJDID, :XLXSBJDMX_XH, :XLXSBJDMX_XSSX, :XLXSBJDMX_XLXHID, :XLXSBJDMX_XLGGID,:XLXSBJDMX_WGCPBZ,:XLXSBJDMX_XDXLXHID,:XLXSBJDMX_XDXLBZID, "); sSQL.Add(" :XLXSBJDMX_XLBZID, isnull(:XLXSBJDMX_DYDJID,' '), :XLXSBJDMX_XLYSID, :XLXSBJDMX_BJCP, "); sSQL.Add(" :XLXSBJDMX_JLDW, :XLXSBJDMX_TZQCPBJ,:XLXSBJDMX_TZCPBJ,:XLXSBJDMX_CPBJ, :XLXSBJDMX_JGBJJ, :XLXSBJDMX_CLCB, :XLXSBJDMX_JGBBJ, "); sSQL.Add(" :XLXSBJDMX_DZSC, :XLXSBJDMX_WHR, :XLXSBJDMX_WHRID, :XLXSBJDMX_WHSJ,:XLXSBJDMX_JGBBJJCL,:XLXSBJDMX_CLZL,:XLXSBJDMX_BJDHQCLCB,:XLXSBJDMX_CLCBJCL,:XLXSBJDMX_JGBBJLJJCL)"); iXH = iXH + 1; iXSSX = iXSSX + 1; if (i == 0) { iStartXH = iXH; } sXLXHID = ContentGrid.DataKeys[int.Parse(sRowIndexs[i])]["XLXSCLQD_XLXHID"].ToString().Trim(); sXLGGID = ContentGrid.DataKeys[int.Parse(sRowIndexs[i])]["XLXSCLQD_XLGGID"].ToString().Trim(); if (sXLJGU007.Equals("A")) { sXLGGID = sXLGGID.Replace("x", "X").Replace("X", "*").Replace("*", "×"); } else if (sXLJGU007.Equals("B")) { sXLGGID = sXLGGID.Replace("x", "X").Replace("X", "*").Replace("×", "*"); } sST = ContentGrid.DataKeys[int.Parse(sRowIndexs[i])]["XLXSCLQD_XLBZID"].ToString().Trim(); sDYDJ = ContentGrid.DataKeys[int.Parse(sRowIndexs[i])]["XLXSCLQD_DYDJID"].ToString().Trim(); sSQL.ParamByName("XLXSBJDMX_JLDW").Value = sJLDW; string sBJCP = ""; if (string.IsNullOrEmpty(sDYDJ)) sBJCP = sXLXHID + " " + sXLGGID; else sBJCP = sXLXHID + "-" + sDYDJ + " " + sXLGGID; sDYDJ = sDYDJ.Equals("") ? " " : sDYDJ; sSQL.ParamByName("XLXSBJDMX_BJDID").Value = sBJDID; sSQL.ParamByName("XLXSBJDMX_XH").Value = iXH; sSQL.ParamByName("XLXSBJDMX_XSSX").Value = iXSSX; sSQL.ParamByName("XLXSBJDMX_XLXHID").Value = sXLXHID; sSQL.ParamByName("XLXSBJDMX_XLGGID").Value = sXLGGID; sSQL.ParamByName("XLXSBJDMX_XLBZID").Value = sST; sSQL.ParamByName("XLXSBJDMX_DYDJID").Value = sDYDJ; sSQL.ParamByName("XLXSBJDMX_XDXLXHID").Value = sXLXHID; sSQL.ParamByName("XLXSBJDMX_XDXLBZID").Value = sST; sSQL.ParamByName("XLXSBJDMX_XLYSID").Value = XLBJDInfo.GetDefaultYSID(sXLXHID, sXLGGID); sSQL.ParamByName("XLXSBJDMX_BJCP").Value = sBJCP; sSQL.ParamByName("XLXSBJDMX_JGBBJ").Value = 0.0; sSQL.ParamByName("XLXSBJDMX_TZQCPBJ").Value = 0.0; sSQL.ParamByName("XLXSBJDMX_TZCPBJ").Value = 0; sSQL.ParamByName("XLXSBJDMX_CPBJ").Value = 0.0; sSQL.ParamByName("XLXSBJDMX_JGBJJ").Value = 0.0; sSQL.ParamByName("XLXSBJDMX_CLCB").Value = 0.0; sSQL.ParamByName("XLXSBJDMX_BJDHQCLCB").Value = 0.0; sSQL.ParamByName("XLXSBJDMX_CLZL").Value = 0.0; sSQL.ParamByName("XLXSBJDMX_JGBBJJCL").Value = 0.0; sSQL.ParamByName("XLXSBJDMX_CLCBJCL").Value = 0.0; sSQL.ParamByName("XLXSBJDMX_JGBBJLJJCL").Value = 0.0; sSQL.ParamByName("XLXSBJDMX_WGCPBZ").Value = "N"; if (XLBJDUtils.ISDZBZ(sST)) { sSQL.ParamByName("XLXSBJDMX_DZSC").Value = "Y"; } else { sSQL.ParamByName("XLXSBJDMX_DZSC").Value = "N"; } sSQL.ParamByName("XLXSBJDMX_WHR").Value = tSession.UserName; sSQL.ParamByName("XLXSBJDMX_WHRID").Value = tSession.UserId; sSQL.ParamByName("XLXSBJDMX_WHSJ").Value = DateTime.Now; dberp.ExecSQL(sSQL); bNeedUp = true; } XLBJDUtils.UpdateXDXLBZID(dberp, sSQL, sBJDID, "", iStartXH - 1, ref sErrorNum); XLBJDUtils.SyncXLXSBJXLGGTHB_ByXLXSBJDMX_Batch(dberp, tSession, sBJDID, "", iStartXH - 1); if (bNeedUp) { XLBJDCalcUtils.CalcBJDMXAfterIns(dberp, sSQL, sBJDID, iStartXH, GetOption("BJU002"), sBJU003,GetOption("BJU018"), tSession.UserId, tSession.UserName, ref sErrorNum); } ShowMessage("导入完成!"); dberp.CommitTrans(); } catch (Exception ex) { dberp.RollbackTrans(); ShowMessage(ex.Message); return; } } } #endregion #region 私有函数 private string GetQuerySql() { StringBuilder sbSql = new StringBuilder(); sbSql.AppendLine("select XLXSCLQD_XLXHID, XLXSCLQD_XLGGID, XLXSCLQD_XLBZID,XLXSCLQD_DYDJID,XLXSCLQD_CLZL, "); sbSql.AppendLine("RTRIM(XLXSCLQD_XLBZID)||'|'||XLBZ_XLBZLXMC as XLBZ "); sbSql.AppendLine("from XLXSCLQD left join XLBZ on XLBZ_XLBZID=XLXSCLQD_XLBZID "); sbSql.AppendLine("left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSCLQD_XLGGID "); sbSql.AppendLine(" where 1=1 and XLXSCLQD_WPID ='ZZZZ' "); if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("JGCZBID").Value.Trim())) { sbSql.AppendLine("\r\n and XLXSCLQD_JGCZBID = :pJGCZBID "); entity.Param.Add("pJGCZBID", CurQueryEntity.FieldByName("JGCZBID").Value.Trim().Split('|')[0]); } if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("JGCZBBBID").Value.Trim())) { sbSql.AppendLine("\r\n and XLXSCLQD_JGCZBBBID = :pJGCZBBBID "); entity.Param.Add("pJGCZBBBID", CurQueryEntity.FieldByName("JGCZBBBID").Value.Trim()); } if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("CPMLID").Value.Trim())) { sbSql.AppendLine("\r\n and XLXSCLQD_CPMLID = :pCPMLID "); entity.Param.Add("pCPMLID", CurQueryEntity.FieldByName("CPMLID").Value.Trim()); } //型号模糊 if (!CurQueryEntity.FieldByName("XLXHIDJQPP").Value.ToString().Trim().ToUpper().Equals("TRUE")) { if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("XLXHID").Value.Trim())) { sbSql.AppendLine("\r\n and XLXSCLQD_XLXHID like :pXLXHID "); entity.Param.Add("pXLXHID", "%" + CurQueryEntity.FieldByName("XLXHID").Value.Trim() + "%"); } } else { if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("XLXHID").Value.Trim())) { sbSql.AppendLine(" and XLXSCLQD_XLXHID = :pXLXHID "); entity.Param.Add("pXLXHID", CurQueryEntity.FieldByName("XLXHID").Value.Trim()); } } //规格模糊 if (!CurQueryEntity.FieldByName("XLGGIDJQPP").Value.ToString().Trim().ToUpper().Equals("TRUE")) { if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("XLGGID").Value.Trim())) { sbSql.AppendLine(" and XLXSBJXLGGTHB_XLGGIDCH like :pXLGGID "); entity.Param.Add("pXLGGID", "%" + CurQueryEntity.FieldByName("XLGGID").Value.Trim().Replace("*", "×") + "%"); } } else { string sXLGGID = CurQueryEntity.FieldByName("XLGGID").Value.Trim(); if (!string.IsNullOrEmpty(sXLGGID)) { string[] sTemp = sXLGGID.Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); if (sTemp.Length >= 2) { sbSql.AppendLine(" and " + CMISproDataBase.GetWhereEqual(" XLXSBJXLGGTHB_XLGGIDCH ", sXLGGID.Replace('*', '×'))); } else { sbSql.AppendLine(" and XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID "); entity.Param.Add("pXLGGID", CurQueryEntity.FieldByName("XLGGID").Value.Trim().Replace("*", "×")); } } } if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("ST").Value.Trim())) { sbSql.AppendLine(" and XLXSCLQD_XLBZID = :pST "); entity.Param.Add("pST", CurQueryEntity.FieldByName("ST").Value.Trim()); } if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("BZMC").Value.Trim())) { sbSql.AppendLine(" and XLBZ_XLBZLXMC like :pBZMC "); entity.Param.Add("pBZMC", "%" + CurQueryEntity.FieldByName("BZMC").Value.Trim() + "%"); } if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("DYDJ").Value.Trim())) { sbSql.AppendLine(" and XLXSCLQD_DYDJID = :pDYDJ "); entity.Param.Add("pDYDJ", CurQueryEntity.FieldByName("DYDJ").Value.Trim()); } sbSql.AppendLine(" order by XLXSCLQD_XLXHID, XLXSCLQD_XH "); return sbSql.ToString(); } #endregion } }