using System; using System.Collections.Generic; 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_WORKFLOW; using GThinking.N_MODEL.Dialog; using GThinking.N_PUBLIC; using GThinking.N_MISPRO.Utility; using GThinking.N_CONTROL; using System.IO; using System.Data.OleDb; using System.Data.Common; using GThinking.N_MISPROAS; namespace GThinking.N_XLXSBJ { public partial class XLBJD_DR : SingleCardBase { XLBJD_DREntity entity = new XLBJD_DREntity(); Dictionary ColumnNames = new Dictionary(); Dictionary dicXLBZ = new Dictionary(); protected void Page_Load(object sender, EventArgs e) { this.UMID = 100860000; this.UMName = "线缆销售报价单"; base.CurMaster = Master; base.CurEntity = entity; this.PageHeight = 180; this.PageWidth = 420; Master.EnableAttachBtn = false; Master.EnableCancelBtn = false; Master.EnableCopyBtn = false; Master.EnableDeleteBtn = false; Master.EnableEditBtn = false; Master.EnableInsertBtn = false; Master.EnablePrintBtn = false; Master.EnableRefreshBtn = false; Master.EnableSaveBtn = false; fupdPost.FileSaveType = gtAsyncFileUpload.DFileSaveType.SaveToPath; if (AppRuntime.BitType == AppBitType.Bit32) fupdPost.Filter = "XLS"; else // AppBitType.Bit64 fupdPost.Filter = "XLS,XLSX"; if (!IsPostBack) { SetlblText(PageParam.GetRTrimString("PZXH")); } base.InitPage(); } #region 控件事件 protected void btnQD_Click(object sender, EventArgs e) { if (fupdPost.FilePath.Equals("")) { ShowMessage("请选择需要导入的文件!"); return; } TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sSQL = new TSQL(dberp); try { lblTitle.Text = "正在导入数据,请稍后..."; dberp.BeginTrans(); DataSet aDataExcel = new DataSet(); if (AppRuntime.BitType == AppBitType.Bit32) aDataExcel = XLBJDUtils.ReadFromExcelFile(fupdPost.FilePath, 0, ""); else // AppBitType.Bit64 ReadWJ(fupdPost.FilePath, ref aDataExcel); ExcelColumnValid(PageParam.GetRTrimString("PZXH"), aDataExcel); InsertMX(dberp, sSQL, aDataExcel); dberp.CommitTrans(); ShowMessage("导入成功!"); CloseWindow(); } catch (Exception ex) { lblTitle.Text = ""; dberp.RollbackTrans(); ShowMessage(ex.Message); } } protected void btnQX_Click(object sender, EventArgs e) { CloseWindow(); } #endregion #region 自定义事件 private void InsertMX(TDatabase dberp, TSQL sSQL, DataSet ds) { int iXSWS = string.IsNullOrEmpty(GetOption("BJU002")) ? 5 : CMISproConvert.StrToInt(GetOption("BJU002")); if (iXSWS < 0) iXSWS = 0; else if (iXSWS > 8) iXSWS = 8; //获取所有标准信息 GetALLXLBZ(dberp, sSQL); string sErrorNum = ""; int iStartXH = 0; //参数默认的标准 string sDefaultXLBZID = XLBJDUtils.GetDefaultXLBZID(); sDefaultXLBZID = string.IsNullOrEmpty(sDefaultXLBZID) ? "G" : sDefaultXLBZID; string sBJU003 = GetOption("BJU003"); string sBJLY = PageParam.GetRTrimString("BJLY"); string sBJFLID = PageParam.GetRTrimString("BJFLID"); string sJGBID = PageParam.GetRTrimString("JGBID"); 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; double sCPBJ = 0.0; bool NeedupdCPBJ = ColumnNames.ContainsKey("8");//是否需要用导入文件中的报价更新计算出来的报价 bool NeedupdBJJE = ColumnNames.ContainsKey("9");//是否需要用导入文件中的报价金额更新计算出来的报价金额 Dictionary dicUpdBJJE = new Dictionary(); foreach (DataRow Row in ds.Tables[0].Rows) { string sXLXHID = ""; string sXLGGID = ""; string sXLBZID = ""; string sDYDJID = ""; string sBZ = ""; if (ColumnNames.ContainsKey("1")) sXLXHID = sGetCellTest(Row, CMISproConvert.StrToInt(ColumnNames["1"])); if (ColumnNames.ContainsKey("2")) sXLGGID = sGetCellTest(Row, CMISproConvert.StrToInt(ColumnNames["2"])); if (ColumnNames.ContainsKey("3")) sDYDJID = sGetCellTest(Row, CMISproConvert.StrToInt(ColumnNames["3"])).Replace('K', 'k').Replace('v', 'V'); if (ColumnNames.ContainsKey("4")) { string sTMP = sGetCellTest(Row, CMISproConvert.StrToInt(ColumnNames["4"])); sXLBZID = XLBJDUtils.GetBZXLZBZID(sTMP, sDefaultXLBZID, dicXLBZ); } if (ColumnNames.ContainsKey("10"))//10|型号-规格 { //根据 型号-规格 解析出型号、规格 ReadCPXX_10(sGetCellTest(Row, CMISproConvert.StrToInt(ColumnNames["10"])), ref sXLXHID, ref sXLGGID); } //根据 【11|型号-电压等级 规格】 解析出型号、规格、电压等级 //取最新的值 if (ColumnNames.ContainsKey("11"))//11|型号-电压等级 规格 { ReadCPXX_11(sGetCellTest(Row, CMISproConvert.StrToInt(ColumnNames["11"])), ref sXLXHID, ref sXLGGID, ref sDYDJID); } if (ColumnNames.ContainsKey("12")) { sBZ = sGetCellTest(Row, CMISproConvert.StrToInt(ColumnNames["12"])); sBZ = XLBJDUtils.SubStringFunc(sBZ, 250); } //规格处理 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("×", "*"); } if (sXLXHID.Equals("") || sXLGGID.Equals("")) continue; XLBJDUtils.ExistCLQD(ref sXLXHID, ref sXLGGID, ref sXLBZID, ref sDYDJID); int iXH = CMISproDataBase.GetMaxXH("DBERP", "XLXSBJDMX", "XLXSBJDMX_XH", "XLXSBJDMX_BJDID='" + PageParam.GetRTrimString("BJDID") + "'") + 1; int iXSSX = CMISproDataBase.GetMaxXH("DBERP", "XLXSBJDMX", "XLXSBJDMX_XSSX", "XLXSBJDMX_BJDID = '" + PageParam.GetRTrimString("BJDID") + "'") + 1; if (iStartXH == 0) { iStartXH = iXH; } string sJLDW = ColumnNames.ContainsKey("6") ? sGetCellTest(Row, CMISproConvert.StrToInt(ColumnNames["6"])) : ""; if (sJLDW.Equals("")) { sJLDW = sBJU003; } else if (sJLDW.ToUpper().Equals("KM")) { sJLDW = "Km"; } else if (sJLDW.ToUpper().Equals("M")) { sJLDW = "M"; } //如果报价数量不合法或小于0,则按0导入 double fBJSL = 1;//报价数量没有,默认为1 if (ColumnNames.ContainsKey("7")) fBJSL = CMISproConvert.StrToFloat(sGetCellTest(Row, CMISproConvert.StrToInt(ColumnNames["7"])), 0); if (NeedupdCPBJ) { sCPBJ = CMISproConvert.StrToFloat(sGetCellTest(Row, CMISproConvert.StrToInt(ColumnNames["8"])), 0); } if (NeedupdBJJE) { dicUpdBJJE.Add(iXH, NumberUtils.RoundX(CMISproConvert.StrToFloat(sGetCellTest(Row, CMISproConvert.StrToInt(ColumnNames["9"])), 0), 2)); } sSQL.Clear(); sSQL.Add(" insert into XLXSBJDMX( "); sSQL.Add(" XLXSBJDMX_BJDID, XLXSBJDMX_XH, XLXSBJDMX_XSSX, XLXSBJDMX_XLXHID, XLXSBJDMX_XLGGID,XLXSBJDMX_XDXLXHID,XLXSBJDMX_XDXLBZID, "); sSQL.Add(" XLXSBJDMX_XLBZID, XLXSBJDMX_DYDJID, XLXSBJDMX_XLYSID, XLXSBJDMX_BJCP,XLXSBJDMX_WGCPBZ, "); sSQL.Add(" XLXSBJDMX_JLDW, XLXSBJDMX_BJSL, XLXSBJDMX_JGBBJ, XLXSBJDMX_TZQCPBJ,XLXSBJDMX_TZCPBJ,XLXSBJDMX_CPBJ, XLXSBJDMX_TZQBJJE,XLXSBJDMX_TZBJJE,XLXSBJDMX_BJJE, XLXSBJDMX_JGBJJ,XLXSBJDMX_CLCB,XLXSBJDMX_JGBBJJCL,XLXSBJDMX_JGBBJJCE,XLXSBJDMX_CLZL, "); sSQL.Add(" XLXSBJDMX_BJDHQCLCB,XLXSBJDMX_CLCBJCL,XLXSBJDMX_JGBBJLJJCL,XLXSBJDMX_BZ, XLXSBJDMX_DZSC,XLXSBJDMX_WHRID, XLXSBJDMX_WHR, XLXSBJDMX_WHSJ,XLXSBJDMX_BJSDBZ,XLXSBJDMX_BJCPSD)"); sSQL.Add(" values("); sSQL.Add(" :XLXSBJDMX_BJDID, :XLXSBJDMX_XH, :XLXSBJDMX_XSSX, :XLXSBJDMX_XLXHID, :XLXSBJDMX_XLGGID,:XLXSBJDMX_XDXLXHID,:XLXSBJDMX_XDXLBZID, "); sSQL.Add(" :XLXSBJDMX_XLBZID, isnull(:XLXSBJDMX_DYDJID,' '), :XLXSBJDMX_XLYSID, :XLXSBJDMX_BJCP,:XLXSBJDMX_WGCPBZ, "); sSQL.Add(" :XLXSBJDMX_JLDW, :XLXSBJDMX_BJSL, :XLXSBJDMX_JGBBJ, :XLXSBJDMX_TZQCPBJ,:XLXSBJDMX_TZCPBJ,:XLXSBJDMX_CPBJ, :XLXSBJDMX_TZQBJJE,:XLXSBJDMX_TZBJJE,:XLXSBJDMX_BJJE, :XLXSBJDMX_JGBJJ,:XLXSBJDMX_CLCB,:XLXSBJDMX_JGBBJJCL,:XLXSBJDMX_JGBBJJCE,:XLXSBJDMX_CLZL, "); sSQL.Add(" :XLXSBJDMX_BJDHQCLCB,:XLXSBJDMX_CLCBJCL,:XLXSBJDMX_JGBBJLJJCL,:XLXSBJDMX_BZ, :XLXSBJDMX_DZSC,:XLXSBJDMX_WHRID, :XLXSBJDMX_WHR, :XLXSBJDMX_WHSJ,:XLXSBJDMX_BJSDBZ,:XLXSBJDMX_BJCPSD)"); sSQL.ParamByName("XLXSBJDMX_BJDID").Value = PageParam.GetRTrimString("BJDID"); 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 = sXLBZID; sSQL.ParamByName("XLXSBJDMX_DYDJID").Value = sDYDJID; sSQL.ParamByName("XLXSBJDMX_XDXLXHID").Value = sXLXHID; sSQL.ParamByName("XLXSBJDMX_XDXLBZID").Value = sXLBZID; sSQL.ParamByName("XLXSBJDMX_XLYSID").Value = ColumnNames.ContainsKey("5") ? XLBJDInfo.GetYSID(sGetCellTest(Row, CMISproConvert.StrToInt(ColumnNames["5"]))) : XLBJDInfo.GetDefaultYSID(sXLXHID, sXLGGID); string sBJCP = ""; if (ColumnNames.ContainsKey("10"))//10|型号-规格 { sBJCP = sGetCellTest(Row, CMISproConvert.StrToInt(ColumnNames["10"])); } else if (ColumnNames.ContainsKey("11"))//11|型号-电压等级 规格 { sBJCP = sGetCellTest(Row, CMISproConvert.StrToInt(ColumnNames["11"])); } if (!sBJCP.Equals("")) { sSQL.ParamByName("XLXSBJDMX_BJCPSD").Value = "Y"; } else { sSQL.ParamByName("XLXSBJDMX_BJCPSD").Value = "N"; } if (sBJCP.Equals("")) { sBJCP = XLBJDUtils.GroupBJCPXX(sXLXHID, sXLGGID, sDYDJID); } sSQL.ParamByName("XLXSBJDMX_BJCP").Value = sBJCP; sSQL.ParamByName("XLXSBJDMX_JLDW").Value = sJLDW; sSQL.ParamByName("XLXSBJDMX_BJSL").Value = fBJSL; sSQL.ParamByName("XLXSBJDMX_JGBBJ").Value = 0.0; sSQL.ParamByName("XLXSBJDMX_TZQCPBJ").Value = 0.0; sSQL.ParamByName("XLXSBJDMX_TZCPBJ").Value = 0; if (sCPBJ != 0) { sSQL.ParamByName("XLXSBJDMX_CPBJ").Value = sCPBJ; sSQL.ParamByName("XLXSBJDMX_BJSDBZ").Value = "Y"; } else { sSQL.ParamByName("XLXSBJDMX_CPBJ").Value = 0.0; sSQL.ParamByName("XLXSBJDMX_BJSDBZ").Value = "N"; } 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_BJJE").Value = NumberUtils.RoundX(fBJSL * CMISproConvert.StrToFloat(sSQL.ParamByName("XLXSBJDMX_CPBJ").Value.ToString(), 0), 2); sSQL.ParamByName("XLXSBJDMX_TZQBJJE").Value = sSQL.ParamByName("XLXSBJDMX_BJJE").Value; sSQL.ParamByName("XLXSBJDMX_TZBJJE").Value = 0; sSQL.ParamByName("XLXSBJDMX_JGBBJJCE").Value = 0; sSQL.ParamByName("XLXSBJDMX_JGBBJJCL").Value = 0; sSQL.ParamByName("XLXSBJDMX_CLCBJCL").Value = 0; sSQL.ParamByName("XLXSBJDMX_JGBBJLJJCL").Value = 0; sSQL.ParamByName("XLXSBJDMX_WGCPBZ").Value = "N"; sSQL.ParamByName("XLXSBJDMX_BZ").Value = sBZ; if (XLBJDUtils.ISDZBZ(sXLBZID)) { 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 = CMISproConvert.ConvertTime(DateTime.Now); dberp.ExecSQL(sSQL); bNeedUp = true; } XLBJDUtils.UpdateXDXLBZID(dberp, sSQL, PageParam.GetRTrimString("BJDID"), "", iStartXH - 1, ref sErrorNum); XLBJDUtils.SyncXLXSBJXLGGTHB_ByXLXSBJDMX_Batch(dberp, tSession, PageParam.GetRTrimString("BJDID"), "", iStartXH - 1); if (bNeedUp) { XLBJDCalcUtils.CalcBJDMXAfterIns(dberp, sSQL, PageParam.GetRTrimString("BJDID"), iStartXH, GetOption("BJU002"), sBJU003,GetOption("BJU018"), tSession.UserId, tSession.UserName, ref sErrorNum); //用导入文件中的调整后报价金额更新计算出来的调整后报价金额 foreach (int iKey in dicUpdBJJE.Keys) { string sJCLLX = PageParam.GetRTrimString("JCLLX"); string sLJJCLLX = PageParam.GetRTrimString("LJJCLLX"); string sqlBJJE = "RoundFix(:pUpdBJJE,2)"; sSQL.Clear(); sSQL.Add("update XLXSBJDMX set "); sSQL.Add("XLXSBJDMX_BJJE=" + sqlBJJE + ","); sSQL.Add("XLXSBJDMX_TZBJJE=" + sqlBJJE + "-XLXSBJDMX_TZQBJJE,"); if (sJCLLX.Equals("1"))//表价价差率公式 { sSQL.Add("XLXSBJDMX_JGBBJJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); sSQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(" + sqlBJJE + "-RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)," + iXSWS + "), "); } else if (sJCLLX.Equals("2")) { sSQL.Add("XLXSBJDMX_JGBBJJCL =case when XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL-" + sqlBJJE + ")/(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL),2) end,"); sSQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)-" + sqlBJJE + "," + iXSWS + "), "); } else if (sJCLLX.Equals("3")) { sSQL.Add("XLXSBJDMX_JGBBJJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); sSQL.Add("XLXSBJDMX_JGBBJJCE =0, "); } else if (sJCLLX.Equals("4")) { sSQL.Add("XLXSBJDMX_JGBBJJCL =case when XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + " - XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL),2) end,"); sSQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(" + sqlBJJE + " - RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)," + iXSWS + "), "); } else { sSQL.Add("XLXSBJDMX_JGBBJJCL=0,"); sSQL.Add("XLXSBJDMX_JGBBJJCE=0,"); } if (sLJJCLLX.Equals("1"))//料价价差率公式 { sSQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_CLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end"); } else if (sLJJCLLX.Equals("2")) { sSQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end"); } else if (sLJJCLLX.Equals("3")) { sSQL.Add("XLXSBJDMX_CLCBJCL =case when XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL),2) end"); } else if (sLJJCLLX.Equals("4")) { sSQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end"); } else { sSQL.Add("XLXSBJDMX_CLCBJCL=0"); } sSQL.Add(" where XLXSBJDMX_BJDID=:pBJDID and XLXSBJDMX_XH=:pXH"); sSQL.ParamByName("pUpdBJJE").Value = NumberUtils.RoundX(dicUpdBJJE[iKey], 2); sSQL.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID"); sSQL.ParamByName("pXH").Value = iKey; dberp.ExecSQL(sSQL); } } } private void ExcelColumnValid(string sPZXH, DataSet ds) { ColumnNames.Clear(); TDatabase dberpPZ = TContextDatabases.GetDatabase("DBERP"); TSQL sqlPZ = new TSQL(dberpPZ); DataSet dsPZ = null; Dictionary aryBJLM = new Dictionary(); aryBJLM.Add("1", "型号"); aryBJLM.Add("2", "规格"); aryBJLM.Add("3", "电压等级"); aryBJLM.Add("4", "标准"); aryBJLM.Add("5", "颜色"); aryBJLM.Add("6", "计量单位"); aryBJLM.Add("7", "报价数量"); aryBJLM.Add("8", "报价"); aryBJLM.Add("9", "调整后报价金额"); aryBJLM.Add("10", "型号-规格"); aryBJLM.Add("11", "型号-电压等级 规格"); aryBJLM.Add("12", "备注"); foreach (string sBJLM in aryBJLM.Keys) { string sBJLMMC = aryBJLM[sBJLM].Trim(); dsPZ = null; sqlPZ.Clear(); sqlPZ.Add("select XLXSBJDDR_EXCELLM from XLXSBJDDR where XLXSBJDDR_PZXH=:pPZXH and XLXSBJDDR_BJLM=:pBJLM order by XLXSBJDDR_EXCELLM "); sqlPZ.ParamByName("pPZXH").Value = sPZXH; sqlPZ.ParamByName("pBJLM").Value = sBJLM; dsPZ = dberpPZ.OpenDataSet(sqlPZ); if (dsPZ.Tables[0].Rows.Count > 0) { //cs/只会查出一条记录? for (int i = 0; i < dsPZ.Tables[0].Rows.Count; i++) { if (!ColumnNames.ContainsKey(sBJLM)) { for (int j = 0; j < ds.Tables[0].Columns.Count; j++) { if (ds.Tables[0].Columns[j].ColumnName.Trim().Equals(dsPZ.Tables[0].Rows[i]["XLXSBJDDR_EXCELLM"].ToString().Trim())) { ColumnNames.Add(sBJLM, j.ToString().Trim()); break; } } } } } else { for (int j = 0; j < ds.Tables[0].Columns.Count; j++) { if (ds.Tables[0].Columns[j].ColumnName.Trim().Equals(sBJLMMC)) { ColumnNames.Add(sBJLM, j.ToString().Trim()); break; } } } } //10|型号-规格----11|型号-电压等级 规格 if (!ColumnNames.ContainsKey("1") && !ColumnNames.ContainsKey("10") && !ColumnNames.ContainsKey("11")) { throw new Exception("导入文件中没有指定‘型号’列,可通过‘配置格式’按钮设置!"); } if (!ColumnNames.ContainsKey("2") && !ColumnNames.ContainsKey("10") && !ColumnNames.ContainsKey("11")) { throw new Exception("导入文件中没有指定‘规格’列,可通过‘配置格式’按钮设置!"); } //if (!ColumnNames.ContainsKey("3")) //{ // throw new Exception("导入文件中没有指定‘电压等级’列,可通过‘配置格式’按钮设置!"); //} //if (!ColumnNames.ContainsKey("4")) //{ // throw new Exception("导入文件中没有指定‘标准’列,可通过‘配置格式’按钮设置!"); //} //if (!ColumnNames.ContainsKey("7")) //{ // throw new Exception("导入文件中没有指定‘报价数量’列,可通过‘配置格式’按钮设置!"); //} } private void ReadWJ(string sPath, ref DataSet aDataExcel) { string sMessage = ""; aDataExcel = TExcelData.ReadExcel(sPath.Trim(), "", "", false, ref sMessage); if(!sMessage.Trim().Equals("")) { throw new Exception(sMessage); } } private string sGetCellTest(DataRow Row, int ColumnIndex) { return Row[ColumnIndex].ToString().Trim().Replace("\r\n", "").Replace("\n", ""); } private void SetlblText(string sPZXH) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Add("select XLXSBJDDR_EXCELLM,XLXSBJDDR_BJLM from XLXSBJDDR where XLXSBJDDR_PZXH=:pPZXH order by XLXSBJDDR_BJLM"); sql.ParamByName("pPZXH").Value = sPZXH; DataSet ds = dberp.OpenDataSet(sql); string sLMSM = "无"; if (ds.Tables[0].Rows.Count > 0) { sLMSM = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sBJLMMC = GetBJLMMC(ds.Tables[0].Rows[i]["XLXSBJDDR_BJLM"].ToString().Trim()); if (sLMSM.Trim().Equals("")) { sLMSM = ds.Tables[0].Rows[i]["XLXSBJDDR_EXCELLM"].ToString().Trim() + "|" + sBJLMMC; } else { sLMSM = sLMSM + "、" + ds.Tables[0].Rows[i]["XLXSBJDDR_EXCELLM"].ToString().Trim() + "|" + sBJLMMC; } } } lblLMSM.Text = sLMSM; } private string GetBJLMMC(string sBJLM) { switch (sBJLM) { case "1": return "型号"; case "2": return "规格"; case "3": return "电压等级"; case "4": return "标准"; case "5": return "颜色"; case "6": return "计量单位"; case "7": return "报价数量"; case "8": return "报价"; case "9": return "调整后报价金额"; case "10": return "型号-规格"; case "11": return "型号-电压等级 规格"; case "12": return "备注"; default: return ""; } } //根据 型号-规格 解析出型号、规格 private void ReadCPXX_10(string sCPXX, ref string sXLXHID, ref string sXLGGID) { if (sCPXX.Contains("-")) { sXLXHID = sCPXX.Substring(0, sCPXX.LastIndexOf('-')); sXLGGID = sCPXX.Substring(sCPXX.LastIndexOf('-') + 1, sCPXX.Length - sCPXX.LastIndexOf('-') - 1); } } //根据 【11|型号-电压等级 规格】 解析出型号、规格、电压等级 private void ReadCPXX_11(string sCPXX, ref string sXLXHID, ref string sXLGGID, ref string sDYDJID) { if (sCPXX.Contains("-") && sCPXX.Contains(" ")) { sXLXHID = sCPXX.Substring(0, sCPXX.LastIndexOf('-')); sDYDJID = sCPXX.Substring(sCPXX.LastIndexOf('-') + 1, sCPXX.LastIndexOf(' ') -sCPXX.LastIndexOf('-') - 1).Replace('K', 'k').Replace('v', 'V'); sXLGGID = sCPXX.Substring(sCPXX.LastIndexOf(' ') + 1, sCPXX.Length - sCPXX.LastIndexOf(' ') - 1); } } //先获取所有的标准 private void GetALLXLBZ(TDatabase dberp, TSQL sSQL) { dicXLBZ.Clear(); sSQL.Clear(); sSQL.Add("select XLBZ_XLBZID,XLBZ_XLBZLXMC from XLBZ where 1 = 1 "); DataSet ds = dberp.OpenDataSet(sSQL); if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { dicXLBZ.Add(ds.Tables[0].Rows[i]["XLBZ_XLBZID"].ToString().Trim(), ds.Tables[0].Rows[i]["XLBZ_XLBZLXMC"].ToString().Trim()); } } } #endregion } }