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_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; using System.Collections.Generic; using GThinking.N_PUBLIC2; using Newtonsoft.Json; using Newtonsoft.Json.Linq; namespace GThinking.N_XLXSBJ { public partial class XLBJD_WBBJDXDRInfo : SingleCardBase { XLBJD_WBBJDNR entity = new XLBJD_WBBJDNR(); protected void Page_Load(object sender, EventArgs e) { this.UMID = 100860043; this.UMName = "外部线缆产品导入"; base.CurMaster = Master; base.CurEntity = entity; //this.PageHeight = 600; //this.PageWidth = 1000; 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; Server.ScriptTimeout = 3600; XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000); string sCPML = pzxx.XLXSBJPZ_XSCPML; string sXSPWQD = pzxx.XLXSBJPZ_XSPWQD; string sXSYXJ = PageParam.GetRTrimString("XSYXJ"); string sXSYZ = PageParam.GetRTrimString("XSYZ"); string sXSYSCP = PageParam.GetRTrimString("XSYSCP"); string sXSBH = PageParam.GetRTrimString("XSBH"); string sXSCPBJXJ = PageParam.GetRTrimString("XSCPBJXJ"); bool bXsGWBM = XLBJDUtils.ExistXLXSBJGWWL(); int col = 0; string stitle = ""; stitle += "序号,"; col++; Dictionary dicGDLM = XLBJD_WBBJDDRList.GetGDLM(); Dictionary dicDRLM = XLBJD_WBBJDDRList.GetDRLM(sXSYXJ, sXSYSCP, sXSYZ, sXSBH, sXSCPBJXJ, sCPML, sXSPWQD, bXsGWBM, PageParam.GetRTrimString("BJDID")); BJFLXX bjflxx = XLBJDUtils.GetBJFLXXByBJDID(PageParam.GetRTrimString("BJDID")); if (!string.IsNullOrEmpty(bjflxx.XLXSBJFL_JMBGSBM.Trim())) { dicGDLM["O"] = bjflxx.XLXSBJFL_JMBGSBM.Trim(); } Dictionary dicYZGDLM = XLWBBJDUtils.GetWBBJDYZZGDLM(PageParam.GetRTrimString("BJDID")); foreach (KeyValuePair kvp in dicYZGDLM) dicGDLM[kvp.Key] = kvp.Value; foreach (string stDRLM in dicDRLM.Keys) { stitle += dicGDLM[stDRLM] + ","; col++; } stitle.TrimEnd(','); txtCols.Value = col.ToString(); txtTitle.Value = stitle; base.InitPage(); } #region 控件事件 protected void btnQD_Click(object sender, EventArgs e) { DataTable dt = ConvertJsonToDataTable(txttabledata.Value); int Rcount = CMISproConvert.StrToInt(GetOption(100860043, "BJU069")); //int col = dt.Columns.Count; XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000); string sCPML = pzxx.XLXSBJPZ_XSCPML; string sXSPWQD = pzxx.XLXSBJPZ_XSPWQD; string sBJDID = PageParam.GetRTrimString("BJDID"); string sXSYXJ = PageParam.GetRTrimString("XSYXJ"); string sXSYZ = PageParam.GetRTrimString("XSYZ"); string sXSYSCP = PageParam.GetRTrimString("XSYSCP"); string sXSBH = PageParam.GetRTrimString("XSBH"); string sXSCPBJXJ = PageParam.GetRTrimString("XSCPBJXJ"); bool bXsGWBM = XLBJDUtils.ExistXLXSBJGWWL(); string sHTBH = PageParam.GetRTrimString("HTBH"); int cols = dt.Columns.Count; if (sBJDID.Equals("")) { sBJDID = " "; } int LastRows = 0; for (int i = 0; i < dt.Rows.Count; i++) { for (int j = 0; j < dt.Columns.Count; j++) { if (!dt.Rows[i][j].ToString().Trim().Equals("")) { LastRows = i+1; break; } } } bool Success = false; string sWBBJDID = ""; double pCount = 0; string sDateTime = PageParam.GetRTrimString("txtTimeSpan").Split('|')[1]; string sWBBJDIDList = ""; int iZFS = 1; Dictionary dicDRLM = XLBJD_WBBJDDRList.GetDRLM(sXSYXJ, sXSYSCP, sXSYZ, sXSBH, sXSCPBJXJ, sCPML, sXSPWQD, bXsGWBM, sBJDID); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sSQL = new TSQL(dberp); try { dberp.BeginTrans(); sSQL.Clear(); sSQL.Add("insert into XLWBBJDNR("); sSQL.Add(" XLWBBJDNR_BJDID, XLWBBJDNR_WBBJDID, XLWBBJDNR_DRHH, "); sSQL.Add(" XLWBBJDNR_LMNR01, XLWBBJDNR_LMNR02, XLWBBJDNR_LMNR03, XLWBBJDNR_LMNR04, XLWBBJDNR_LMNR05, XLWBBJDNR_LMNR06,"); sSQL.Add(" XLWBBJDNR_LMNR07, XLWBBJDNR_LMNR08, XLWBBJDNR_LMNR09,XLWBBJDNR_LMNR10,XLWBBJDNR_LMNR11,XLWBBJDNR_LMNR12,XLWBBJDNR_LMNR13,XLWBBJDNR_LMNR14,XLWBBJDNR_LMNR15,XLWBBJDNR_LMNR16,XLWBBJDNR_LMNR17,XLWBBJDNR_LMNR18,"); sSQL.Add(" XLWBBJDNR_LMNR19,XLWBBJDNR_LMNR20,XLWBBJDNR_LMNR21,XLWBBJDNR_LMNR22,XLWBBJDNR_LMNR23,XLWBBJDNR_LMNR24,XLWBBJDNR_LMNR25)"); sSQL.Add("values (:XLWBBJDNR_BJDID, :XLWBBJDNR_WBBJDID, :XLWBBJDNR_DRHH, "); sSQL.Add(" isnull(:XLWBBJDNR_LMNR01,' '), isnull(:XLWBBJDNR_LMNR02,' '), isnull(:XLWBBJDNR_LMNR03,' '), isnull(:XLWBBJDNR_LMNR04,' '), isnull(:XLWBBJDNR_LMNR05,' '), isnull(:XLWBBJDNR_LMNR06,' '),"); sSQL.Add(" isnull(:XLWBBJDNR_LMNR07,' '), isnull(:XLWBBJDNR_LMNR08,' '), isnull(:XLWBBJDNR_LMNR09,' '), isnull(:XLWBBJDNR_LMNR10,' '), isnull(:XLWBBJDNR_LMNR11,' '), isnull(:XLWBBJDNR_LMNR12,' '),"); sSQL.Add(" isnull(:XLWBBJDNR_LMNR13,' '), isnull(:XLWBBJDNR_LMNR14,' '), isnull(:XLWBBJDNR_LMNR15,' '), isnull(:XLWBBJDNR_LMNR16,' '), isnull(:XLWBBJDNR_LMNR17,' '), isnull(:XLWBBJDNR_LMNR18,' '),"); sSQL.Add(" isnull(:XLWBBJDNR_LMNR19,' '), isnull(:XLWBBJDNR_LMNR20,' '), isnull(:XLWBBJDNR_LMNR21,' '), isnull(:XLWBBJDNR_LMNR22,' '), isnull(:XLWBBJDNR_LMNR23,' '), isnull(:XLWBBJDNR_LMNR24,' '),"); sSQL.Add(" isnull(:XLWBBJDNR_LMNR25,' '))"); for (int i = 0; i < LastRows; i++) { if (i == Rcount * iZFS) { iZFS++; sWBBJDID = XLWBBJDUtils.GetNewWBBJDID(); sWBBJDIDList += "," + sWBBJDID; XLBJD_WBBJDDRList.InsertWBBJDML(sBJDID, sWBBJDID, sHTBH, sDateTime, tSession); } if (!Success) { sWBBJDID = XLWBBJDUtils.GetNewWBBJDID(); sWBBJDIDList += "," + sWBBJDID; XLBJD_WBBJDDRList.InsertWBBJDML(sBJDID, sWBBJDID, sHTBH, sDateTime, tSession); } sSQL.ParamByName("XLWBBJDNR_BJDID").Value = sBJDID; sSQL.ParamByName("XLWBBJDNR_WBBJDID").Value = sWBBJDID; sSQL.ParamByName("XLWBBJDNR_DRHH").Value = (i + 1).ToString(); int iLM = 1; foreach (string sKey in dicDRLM.Keys) { if (sKey.Equals("5") || sKey.Equals("6") || sKey.Equals("B") || sKey.Equals("G") || sKey.Equals("H") || sKey.Equals("P") || XLWBBJDUtils.IsWBBJDYZZLM(sKey)) sSQL.ParamByName("XLWBBJDNR_LMNR" + iLM.ToString().PadLeft(2, '0')).Value = CMISproConvert.StrToFloat(dt.Rows[i][iLM - 1].ToString().Trim()).ToString().Trim(); else sSQL.ParamByName("XLWBBJDNR_LMNR" + iLM.ToString().PadLeft(2, '0')).Value = dt.Rows[i][iLM - 1].ToString().Trim().Equals("") ? " " : dt.Rows[i][iLM - 1].ToString().Trim(); iLM++; } if (iLM < 26) { for (; iLM < 26; iLM++) { sSQL.ParamByName("XLWBBJDNR_LMNR" + iLM.ToString().PadLeft(2, '0')).Value = " "; } } dberp.ExecSQL(sSQL); pCount++; Success = true; } if (Success) { string[] sWBBJDID_list = sWBBJDIDList.TrimStart(',').Split(','); int iMLFZH = CMISproDataBase.GetMaxXH("DBERP", "XLWBBJDML", "XLWBBJDML_MLFZH", "") + 1; for (int i = 0; i < sWBBJDID_list.Length; i++) //插入默认数据 XLBJD_WBBJDDRList.ComplementXLWBBJDML(sWBBJDID_list[i], sBJDID, sDateTime, pCount.ToString().Trim(), i + 1, iZFS, iMLFZH, sXSYXJ, sXSYZ, sXSYSCP, sXSBH, sXSCPBJXJ, "Y", tSession); //处理规格列 //XLBJD_WBBJDNRList.ConvertWBBJDMX_XLBZID(dberp, sSQL, sWBBJDID, sBJDID, sDateTime, tSession.UserId, XLBJDUtils.GetDefaultXLBZID()); } dberp.CommitTrans(); DialogOperationScript dos = new DialogOperationScript(this); //dos.SetOwnerControlValue(PageParam.GetRTrimString("txtOpen"), "CLOSE"); dos.CloseSelf(); dos.Execute(); } catch (Exception ex) { Success = false; dberp.RollbackTrans(); ShowMessage(ex.Message); } } protected void btnQX_Click(object sender, EventArgs e) { CloseWindow(); } #endregion #region 自定义事件 public DataTable ConvertJsonToDataTable(string jsonData) { DataTable dataTable = new DataTable(); // 将JSON数据转换为JArray JArray jsonArray = JArray.Parse(jsonData); int index2 = 0; // 创建表的列 if (jsonArray.Count > 0) { foreach (JToken token in jsonArray[0]) { //第一列是标题,所以去掉 if (index2 > 0) { // 获取所有子元素 foreach (JToken child in token.Children()) { dataTable.Columns.Add(child.ToString(), typeof(string)); break; } } index2++; } } int index = 0; // 将JSON数据填充到DataTable中 foreach (JObject jsonObject in jsonArray) { //第一行是标题,所以去掉 if (index > 0) { index2 = 0; DataRow row = dataTable.NewRow(); foreach (JProperty property in jsonObject.Properties()) { //第一列是标题,所以去掉 if (index2 > 0) { row[property.Name] = property.Value.ToString(); } index2++; } dataTable.Rows.Add(row); } index++; } return dataTable; } #endregion } }