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.Collections.Generic; using GThinking.N_CONTROL; using GThinking.N_MISPROAS; namespace GThinking.N_XLXSBJ { public partial class TZYZJJ7_DRInfo : SingleCardBase { TZYZJJ7_DR entity = new TZYZJJ7_DR(); protected void Page_Load(object sender, EventArgs e) { this.UMID = 100860031; this.UMName = "按型号电压芯线结构主芯截面范围调报价"; base.CurMaster = Master; base.CurEntity = entity; this.PageHeight = 210; 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; fupdPost.Filter = "XLS,XLSX"; if (PageParam.GetRTrimString("DRFS").Equals("DRWJ")) this.Page.Title = "按主芯截面范围导入"; else if (PageParam.GetRTrimString("DRFS").Equals("LMDR")) this.Page.Title = "按主芯截面栏目导入"; else this.Page.Title = "按主芯截面范围栏目导入"; base.InitPage(); if (!IsPostBack) { if (PageParam.GetRTrimString("DRFS").Equals("DRWJ")) GtLabel1.Text = "Excel栏目依次为:型号、电压等级、芯线结构、主芯截面始、
主芯截面止、调价因子"; else if (PageParam.GetRTrimString("DRFS").Equals("LMDR")) GtLabel1.Text = "Excel栏目依次为:型号、电压等级、芯线结构、主芯截面栏目1、
主芯截面栏目2、……"; else GtLabel1.Text = "Excel栏目依次为:型号、电压等级、芯线结构、主芯截面范围栏目1、
主芯截面范围栏目2、……"; txtJGBID.Value = PageParam.GetRTrimString("JGBID"); chkIns.Value = "Y"; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add("select XLXSTZYZ_YZID, XLXSTZYZ_YZMC, XLXSTZYZ_JJFS "); SQL.Add(" from XLXSTZYZ"); SQL.Add(" where XLXSTZYZ_MXBH = 'BJD' and XLXSTZYZ_TJYS='7' "); SQL.Add(" and XLXSTZYZ_JGBID = :pJGBID"); SQL.Add("order by XLXSTZYZ_YZID,XLXSTZYZ_XSXH"); SQL.ParamByName("pJGBID").Value = txtJGBID.Value; DataSet ds = dberp.OpenDataSet(SQL); cbxYZID.ClearItems(); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sJJFSMC = ""; if (ds.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim().Equals("JJ")) { sJJFSMC = "(元)"; } else if (ds.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim().Equals("JD") || ds.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim().Equals("KD")) { sJJFSMC = "(%)"; } cbxYZID.Items.Add(new ListItem(ds.Tables[0].Rows[i]["XLXSTZYZ_YZMC"].ToString().Trim() + sJJFSMC, ds.Tables[0].Rows[i]["XLXSTZYZ_YZID"].ToString().Trim())); } if (ds.Tables[0].Rows.Count == 1) { cbxYZID.SelectedValue = ds.Tables[0].Rows[0]["XLXSTZYZ_YZID"].ToString().Trim(); } } } #region 控件事件 protected void btnQD_Click(object sender, EventArgs e) { if (cbxYZID.SelectedValue.Trim().Equals("")) { ShowMessage("请选择待设置的调价因子!"); return; } 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) { if (PageParam.GetRTrimString("DRFS").Equals("DRWJ")) aDataExcel = XLBJDUtils.ReadFromExcelFile(fupdPost.FilePath, 0, ""); else aDataExcel = XLBJDUtils.ReadFromExcelFile(fupdPost.FilePath, false, ""); } else // AppBitType.Bit64 ReadWJ(fupdPost.FilePath, ref aDataExcel);//只能读出前33356行记录 ExcelColumnValid(aDataExcel); InsertYZZ7(dberp, sSQL, aDataExcel); dberp.CommitTrans(); ShowMessage("设置完成!"); //执行完毕后关闭当前页面 DialogOperationScript dos = new DialogOperationScript(this); dos.CloseSelf(); dos.Execute(); } catch (Exception ex) { lblTitle.Text = ""; dberp.RollbackTrans(); ShowMessage(ex.Message); } } protected void btnQX_Click(object sender, EventArgs e) { CloseWindow(); } #endregion #region 自定义事件 private void InsertYZZ7(TDatabase dberp, TSQL sSQL, DataSet ds) { if (PageParam.GetRTrimString("DRFS").Equals("DRWJ")) { int rrrorNUM = 2; foreach (DataRow Row in ds.Tables[0].Rows) { string sXLXHID = sGetCellTest(Row, 0).Trim(); string sXLDYDJ = sGetCellTest(Row, 1).Trim(); sXLDYDJ = sXLDYDJ.Trim().Equals("") ? " " : sXLDYDJ.Trim(); string sXXJGID = sGetCellTest(Row, 2).Trim(); sXXJGID = sXXJGID.Trim().Equals("") ? " " : sXXJGID.Trim(); double dZXJMXX = CMISproConvert.StrToFloat(sGetCellTest(Row, 3).Trim()); double dZXJMSX = CMISproConvert.StrToFloat(sGetCellTest(Row, 4).Trim()); double dYZZ = CMISproConvert.StrToFloat(sGetCellTest(Row, 5), 0); //if (dYZZ < 0) //因子值为0的记录也导入 // continue; if (sXLXHID.Trim().Equals("")) { throw new Exception("第" + rrrorNUM + "行型号为空!"); } if (!CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXHB where XLXHB_XLXHID='{0}' and ISNULL(XLXHB_TYBZ,'N') <> 'Y' ", sXLXHID))) { throw new Exception("第" + rrrorNUM + "行型号[" + sXLXHID + "]不存在或已停用!"); } if (!sXLDYDJ.Trim().Equals("") && !CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLDYDJB where XLDYDJB_DYDJID='{0}' and ISNULL(XLDYDJB_TYBZ,'N') <> 'Y' ", sXLDYDJ))) { throw new Exception("第" + rrrorNUM + "行电压等级[" + sXLDYDJ + "]不存在或已停用!"); } if (dZXJMXX < 0) { throw new Exception("第" + rrrorNUM + "行主芯截面下限[" + dZXJMXX.ToString().Trim() + "]--不允许为负数!"); } if (dZXJMSX < 0) { throw new Exception("第" + rrrorNUM + "行主芯截面上限[" + dZXJMSX.ToString().Trim() + "]--不允许为负数!"); } if (dZXJMSX != 0) { if (dZXJMXX > dZXJMSX) { throw new Exception("第" + rrrorNUM + "行主芯截面下限[" + dZXJMXX.ToString().Trim() + "]不允许超过主芯截面上限[" + dZXJMSX.ToString().Trim() + "]!"); } } if (!CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSBJDYZZ7 where XLXSBJDYZZ7_JGBID='{0}' and XLXSBJDYZZ7_XLXHID='{1}' and XLXSBJDYZZ7_DYDJID='{2}' and XLXSBJDYZZ7_XXJGID='{3}' and XLXSBJDYZZ7_ZXJMSX='{4}' and XLXSBJDYZZ7_ZXJMXX='{5}' and XLXSBJDYZZ7_YZID='{6}'", txtJGBID.Value.Trim(), sXLXHID, sXLDYDJ, sXXJGID, dZXJMSX, dZXJMXX, cbxYZID.SelectedValue.Trim()))) { if (chkIns.Checked)//不存在的记录自动插入 { sSQL.Clear(); sSQL.Add("select XLXSBJDYZZ7_XLXHID, XLXSBJDYZZ7_DYDJID, XLXSBJDYZZ7_XXJGID, XLXSBJDYZZ7_ZXJMXX,XLXSBJDYZZ7_ZXJMSX "); sSQL.Add("from XLXSBJDYZZ7 "); sSQL.Add("where XLXSBJDYZZ7_JGBID=:pJGBID and XLXSBJDYZZ7_YZID=:pYZID "); sSQL.Add(" and XLXSBJDYZZ7_XLXHID=:pXLXHID and XLXSBJDYZZ7_DYDJID=:pDYDJID "); sSQL.Add(" and XLXSBJDYZZ7_XXJGID=:pXXJGID "); sSQL.Add(" and ((XLXSBJDYZZ7_ZXJMXX>=:pZXJMXX "); if (dZXJMSX != 0) { sSQL.Add(" and XLXSBJDYZZ7_ZXJMXX<=:pZXJMSX "); } sSQL.Add(" ) "); sSQL.Add(" or ("); if (dZXJMSX != 0) { sSQL.Add(" XLXSBJDYZZ7_ZXJMSX>0 and XLXSBJDYZZ7_ZXJMSX>=:pZXJMXX and XLXSBJDYZZ7_ZXJMSX<=:pZXJMSX "); } else { sSQL.Add(" (XLXSBJDYZZ7_ZXJMSX>0 and XLXSBJDYZZ7_ZXJMSX>=:pZXJMXX) or (XLXSBJDYZZ7_ZXJMSX=0) "); } sSQL.Add(" ) "); sSQL.Add(" or (XLXSBJDYZZ7_ZXJMXX<=:pZXJMXX and (XLXSBJDYZZ7_ZXJMSX=0 or XLXSBJDYZZ7_ZXJMSX>=:pZXJMSX))"); sSQL.Add(" ) "); sSQL.ParamByName("pJGBID").Value = txtJGBID.Value.Trim(); sSQL.ParamByName("pYZID").Value = cbxYZID.SelectedValue.Trim(); sSQL.ParamByName("pXLXHID").Value = sXLXHID; sSQL.ParamByName("pDYDJID").Value = sXLDYDJ; sSQL.ParamByName("pXXJGID").Value = sXXJGID; sSQL.ParamByName("pZXJMXX").Value = dZXJMXX; if (dZXJMSX != 0) { sSQL.ParamByName("pZXJMSX").Value = dZXJMSX; } DataSet ds1 = dberp.OpenDataSet(sSQL); if (ds1.Tables[0].Rows.Count > 0) { string sZXJMQJ = ""; string sResult = "(型号:" + ds1.Tables[0].Rows[0]["XLXSBJDYZZ7_XLXHID"].ToString().Trim() + ",电压等级:" + ds1.Tables[0].Rows[0]["XLXSBJDYZZ7_DYDJID"].ToString().Trim() + ",芯线结构:" + ds1.Tables[0].Rows[0]["XLXSBJDYZZ7_XXJGID"].ToString().Trim() + ")"; if (CMISproConvert.StrToFloat(ds1.Tables[0].Rows[0]["XLXSBJDYZZ7_ZXJMSX"].ToString()) != 0) sZXJMQJ = ds1.Tables[0].Rows[0]["XLXSBJDYZZ7_ZXJMXX"].ToString().Trim() + "~" + ds1.Tables[0].Rows[0]["XLXSBJDYZZ7_ZXJMSX"].ToString().Trim(); else sZXJMQJ = ds1.Tables[0].Rows[0]["XLXSBJDYZZ7_ZXJMXX"].ToString().Trim() + "~" + "--"; throw new Exception(string.Format("第" + rrrorNUM + "行因子{1}的记录与已有或上一行主芯截面区间【{0}】{2}的记录有交集!", sZXJMQJ, cbxYZID.SelectedItem.Text.Trim(), sResult)); } sSQL.Clear(); sSQL.Add("insert into XLXSBJDYZZ7(XLXSBJDYZZ7_JGBID,XLXSBJDYZZ7_XLXHID,XLXSBJDYZZ7_DYDJID,XLXSBJDYZZ7_XXJGID,XLXSBJDYZZ7_ZXJMSX,XLXSBJDYZZ7_ZXJMXX,XLXSBJDYZZ7_YZID,XLXSBJDYZZ7_YZZ,XLXSBJDYZZ7_WHR,XLXSBJDYZZ7_WHRID,XLXSBJDYZZ7_WHSJ)"); sSQL.Add(" values(:XLXSBJDYZZ7_JGBID,:XLXSBJDYZZ7_XLXHID,:XLXSBJDYZZ7_DYDJID,:XLXSBJDYZZ7_XXJGID,:XLXSBJDYZZ7_ZXJMSX,:XLXSBJDYZZ7_ZXJMXX,:XLXSBJDYZZ7_YZID,:XLXSBJDYZZ7_YZZ,:XLXSBJDYZZ7_WHR,:XLXSBJDYZZ7_WHRID,:XLXSBJDYZZ7_WHSJ)"); sSQL.ParamByName("XLXSBJDYZZ7_JGBID").Value = txtJGBID.Value.Trim(); sSQL.ParamByName("XLXSBJDYZZ7_XLXHID").Value = sXLXHID; sSQL.ParamByName("XLXSBJDYZZ7_DYDJID").Value = sXLDYDJ; sSQL.ParamByName("XLXSBJDYZZ7_XXJGID").Value = sXXJGID; sSQL.ParamByName("XLXSBJDYZZ7_ZXJMSX").Value = dZXJMSX; sSQL.ParamByName("XLXSBJDYZZ7_ZXJMXX").Value = dZXJMXX; sSQL.ParamByName("XLXSBJDYZZ7_YZID").Value = cbxYZID.SelectedValue.Trim(); sSQL.ParamByName("XLXSBJDYZZ7_YZZ").Value = dYZZ; sSQL.ParamByName("XLXSBJDYZZ7_WHR").Value = tSession.UserName; sSQL.ParamByName("XLXSBJDYZZ7_WHRID").Value = tSession.UserId; sSQL.ParamByName("XLXSBJDYZZ7_WHSJ").Value = DateTime.Now; dberp.ExecSQL(sSQL); } } else { sSQL.Clear(); sSQL.Add("update XLXSBJDYZZ7 set XLXSBJDYZZ7_YZZ = :pYZZ,XLXSBJDYZZ7_WHR = :pWHR,XLXSBJDYZZ7_WHRID =:pWHRID,XLXSBJDYZZ7_WHSJ =:pWHSJ "); sSQL.Add(" where XLXSBJDYZZ7_JGBID=:XLXSBJDYZZ7_JGBID"); sSQL.Add(" and XLXSBJDYZZ7_XLXHID=:XLXSBJDYZZ7_XLXHID"); sSQL.Add(" and XLXSBJDYZZ7_DYDJID=:XLXSBJDYZZ7_DYDJID"); sSQL.Add(" and XLXSBJDYZZ7_XXJGID=:XLXSBJDYZZ7_XXJGID"); sSQL.Add(" and XLXSBJDYZZ7_ZXJMSX=:XLXSBJDYZZ7_ZXJMSX"); sSQL.Add(" and XLXSBJDYZZ7_ZXJMXX=:XLXSBJDYZZ7_ZXJMXX"); sSQL.Add(" and XLXSBJDYZZ7_YZID=:XLXSBJDYZZ7_YZID"); sSQL.ParamByName("XLXSBJDYZZ7_JGBID").Value = txtJGBID.Value.Trim(); sSQL.ParamByName("XLXSBJDYZZ7_XLXHID").Value = sXLXHID; sSQL.ParamByName("XLXSBJDYZZ7_DYDJID").Value = sXLDYDJ; sSQL.ParamByName("XLXSBJDYZZ7_XXJGID").Value = sXXJGID; sSQL.ParamByName("XLXSBJDYZZ7_ZXJMSX").Value = dZXJMSX; sSQL.ParamByName("XLXSBJDYZZ7_ZXJMXX").Value = dZXJMXX; sSQL.ParamByName("XLXSBJDYZZ7_YZID").Value = cbxYZID.SelectedValue.Trim(); sSQL.ParamByName("pYZZ").Value = dYZZ; sSQL.ParamByName("pWHR").Value = tSession.UserName; sSQL.ParamByName("pWHRID").Value = tSession.UserId; sSQL.ParamByName("pWHSJ").Value = DateTime.Now; dberp.ExecSQL(sSQL); } rrrorNUM++; } } else if (PageParam.GetRTrimString("DRFS").Equals("LMDR")) { string sColums = ""; int index = 1; foreach (DataColumn Colunm in ds.Tables[0].Rows[0].Table.Columns) { if (index > 3 && !string.IsNullOrEmpty(ds.Tables[0].Rows[0][Colunm].ToString().Trim())) { double dZXJM = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0][Colunm].ToString().Trim()); if (dZXJM <= 0) throw new Exception("第" + index.ToString().Trim() + "列主芯截面不合法!"); if (!sColums.Equals("")) sColums += ","; sColums += ds.Tables[0].Rows[0][Colunm].ToString().Trim(); } index++; } int rowindex = 1; foreach (DataRow Row in ds.Tables[0].Rows) { if (rowindex == 1) { rowindex++; continue; } string sXLXHID = sGetCellTest(Row, 0).Trim(); string sXLDYDJ = sGetCellTest(Row, 1).Trim(); sXLDYDJ = sXLDYDJ.Trim().Equals("") ? " " : sXLDYDJ.Trim(); string sXXJGID = sGetCellTest(Row, 2).Trim(); sXXJGID = sXXJGID.Trim().Equals("") ? " " : sXXJGID.Trim(); if (sXLXHID.Trim().Equals("")) { throw new Exception("第" + rowindex + "行型号为空!"); } if (!CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXHB where XLXHB_XLXHID='{0}' and ISNULL(XLXHB_TYBZ,'N') <> 'Y' ", sXLXHID))) { throw new Exception("第" + rowindex + "行型号[" + sXLXHID + "]不存在或已停用!"); } if (!sXLDYDJ.Trim().Equals("") && !CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLDYDJB where XLDYDJB_DYDJID='{0}' and ISNULL(XLDYDJB_TYBZ,'N') <> 'Y' ", sXLDYDJ))) { throw new Exception("第" + rowindex + "行电压等级[" + sXLDYDJ + "]不存在或已停用!"); } index = 4; foreach (string sZXJM in sColums.Split(',')) { double dZXJMXX = CMISproConvert.StrToFloat(sZXJM); double dZXJMSX = CMISproConvert.StrToFloat(sZXJM); double dYZZ = CMISproConvert.StrToFloat(Row[index - 1].ToString().Trim(), 0); //if (dYZZ < 0) //因子值为0的记录也导入 //{ // index++; // continue; //} if (!CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSBJDYZZ7 where XLXSBJDYZZ7_JGBID='{0}' and XLXSBJDYZZ7_XLXHID='{1}' and XLXSBJDYZZ7_DYDJID='{2}' and XLXSBJDYZZ7_XXJGID='{3}' and XLXSBJDYZZ7_ZXJMSX='{4}' and XLXSBJDYZZ7_ZXJMXX='{5}' and XLXSBJDYZZ7_YZID='{6}'", txtJGBID.Value.Trim(), sXLXHID, sXLDYDJ, sXXJGID, dZXJMSX, dZXJMXX, cbxYZID.SelectedValue.Trim()))) { if (chkIns.Checked)//不存在的记录自动插入 { sSQL.Clear(); sSQL.Add("select XLXSBJDYZZ7_XLXHID, XLXSBJDYZZ7_DYDJID, XLXSBJDYZZ7_XXJGID, XLXSBJDYZZ7_ZXJMXX,XLXSBJDYZZ7_ZXJMSX "); sSQL.Add("from XLXSBJDYZZ7 "); sSQL.Add("where XLXSBJDYZZ7_JGBID=:pJGBID and XLXSBJDYZZ7_YZID=:pYZID "); sSQL.Add(" and XLXSBJDYZZ7_XLXHID=:pXLXHID and XLXSBJDYZZ7_DYDJID=:pDYDJID "); sSQL.Add(" and XLXSBJDYZZ7_XXJGID=:pXXJGID "); sSQL.Add(" and ((XLXSBJDYZZ7_ZXJMXX>=:pZXJMXX "); if (dZXJMSX != 0) { sSQL.Add(" and XLXSBJDYZZ7_ZXJMXX<=:pZXJMSX "); } sSQL.Add(" ) "); sSQL.Add(" or ("); if (dZXJMSX != 0) { sSQL.Add(" XLXSBJDYZZ7_ZXJMSX>0 and XLXSBJDYZZ7_ZXJMSX>=:pZXJMXX and XLXSBJDYZZ7_ZXJMSX<=:pZXJMSX "); } else { sSQL.Add(" (XLXSBJDYZZ7_ZXJMSX>0 and XLXSBJDYZZ7_ZXJMSX>=:pZXJMXX) or (XLXSBJDYZZ7_ZXJMSX=0) "); } sSQL.Add(" ) "); sSQL.Add(" or (XLXSBJDYZZ7_ZXJMXX<=:pZXJMXX and (XLXSBJDYZZ7_ZXJMSX=0 or XLXSBJDYZZ7_ZXJMSX>=:pZXJMSX))"); sSQL.Add(" ) "); sSQL.ParamByName("pJGBID").Value = txtJGBID.Value.Trim(); sSQL.ParamByName("pYZID").Value = cbxYZID.SelectedValue.Trim(); sSQL.ParamByName("pXLXHID").Value = sXLXHID; sSQL.ParamByName("pDYDJID").Value = sXLDYDJ; sSQL.ParamByName("pXXJGID").Value = sXXJGID; sSQL.ParamByName("pZXJMXX").Value = dZXJMXX; if (dZXJMSX != 0) { sSQL.ParamByName("pZXJMSX").Value = dZXJMSX; } DataSet ds1 = dberp.OpenDataSet(sSQL); if (ds1.Tables[0].Rows.Count > 0) { string sZXJMQJ = ""; string sResult = "(型号:" + ds1.Tables[0].Rows[0]["XLXSBJDYZZ7_XLXHID"].ToString().Trim() + ",电压等级:" + ds1.Tables[0].Rows[0]["XLXSBJDYZZ7_DYDJID"].ToString().Trim() + ",芯线结构:" + ds1.Tables[0].Rows[0]["XLXSBJDYZZ7_XXJGID"].ToString().Trim() + ")"; if (CMISproConvert.StrToFloat(ds1.Tables[0].Rows[0]["XLXSBJDYZZ7_ZXJMSX"].ToString()) != 0) sZXJMQJ = ds1.Tables[0].Rows[0]["XLXSBJDYZZ7_ZXJMXX"].ToString().Trim() + "~" + ds1.Tables[0].Rows[0]["XLXSBJDYZZ7_ZXJMSX"].ToString().Trim(); else sZXJMQJ = ds1.Tables[0].Rows[0]["XLXSBJDYZZ7_ZXJMXX"].ToString().Trim() + "~" + "--"; throw new Exception(string.Format("第" + rowindex.ToString().Trim() + "行第" + index.ToString().Trim() + "列因子{1}的记录与已有主芯截面区间【{0}】{2}的记录有交集!", sZXJMQJ, cbxYZID.SelectedItem.Text.Trim(), sResult)); } sSQL.Clear(); sSQL.Add("insert into XLXSBJDYZZ7(XLXSBJDYZZ7_JGBID,XLXSBJDYZZ7_XLXHID,XLXSBJDYZZ7_DYDJID,XLXSBJDYZZ7_XXJGID,XLXSBJDYZZ7_ZXJMSX,XLXSBJDYZZ7_ZXJMXX,XLXSBJDYZZ7_YZID,XLXSBJDYZZ7_YZZ,XLXSBJDYZZ7_WHR,XLXSBJDYZZ7_WHRID,XLXSBJDYZZ7_WHSJ)"); sSQL.Add(" values(:XLXSBJDYZZ7_JGBID,:XLXSBJDYZZ7_XLXHID,:XLXSBJDYZZ7_DYDJID,:XLXSBJDYZZ7_XXJGID,:XLXSBJDYZZ7_ZXJMSX,:XLXSBJDYZZ7_ZXJMXX,:XLXSBJDYZZ7_YZID,:XLXSBJDYZZ7_YZZ,:XLXSBJDYZZ7_WHR,:XLXSBJDYZZ7_WHRID,:XLXSBJDYZZ7_WHSJ)"); sSQL.ParamByName("XLXSBJDYZZ7_JGBID").Value = txtJGBID.Value.Trim(); sSQL.ParamByName("XLXSBJDYZZ7_XLXHID").Value = sXLXHID; sSQL.ParamByName("XLXSBJDYZZ7_DYDJID").Value = sXLDYDJ; sSQL.ParamByName("XLXSBJDYZZ7_XXJGID").Value = sXXJGID; sSQL.ParamByName("XLXSBJDYZZ7_ZXJMSX").Value = dZXJMSX; sSQL.ParamByName("XLXSBJDYZZ7_ZXJMXX").Value = dZXJMXX; sSQL.ParamByName("XLXSBJDYZZ7_YZID").Value = cbxYZID.SelectedValue.Trim(); sSQL.ParamByName("XLXSBJDYZZ7_YZZ").Value = dYZZ; sSQL.ParamByName("XLXSBJDYZZ7_WHR").Value = tSession.UserName; sSQL.ParamByName("XLXSBJDYZZ7_WHRID").Value = tSession.UserId; sSQL.ParamByName("XLXSBJDYZZ7_WHSJ").Value = DateTime.Now; dberp.ExecSQL(sSQL); } } else { sSQL.Clear(); sSQL.Add("update XLXSBJDYZZ7 set XLXSBJDYZZ7_YZZ = :pYZZ,XLXSBJDYZZ7_WHR = :pWHR,XLXSBJDYZZ7_WHRID =:pWHRID,XLXSBJDYZZ7_WHSJ =:pWHSJ "); sSQL.Add(" where XLXSBJDYZZ7_JGBID=:XLXSBJDYZZ7_JGBID"); sSQL.Add(" and XLXSBJDYZZ7_XLXHID=:XLXSBJDYZZ7_XLXHID"); sSQL.Add(" and XLXSBJDYZZ7_DYDJID=:XLXSBJDYZZ7_DYDJID"); sSQL.Add(" and XLXSBJDYZZ7_XXJGID=:XLXSBJDYZZ7_XXJGID"); sSQL.Add(" and XLXSBJDYZZ7_ZXJMSX=:XLXSBJDYZZ7_ZXJMSX"); sSQL.Add(" and XLXSBJDYZZ7_ZXJMXX=:XLXSBJDYZZ7_ZXJMXX"); sSQL.Add(" and XLXSBJDYZZ7_YZID=:XLXSBJDYZZ7_YZID"); sSQL.ParamByName("XLXSBJDYZZ7_JGBID").Value = txtJGBID.Value.Trim(); sSQL.ParamByName("XLXSBJDYZZ7_XLXHID").Value = sXLXHID; sSQL.ParamByName("XLXSBJDYZZ7_DYDJID").Value = sXLDYDJ; sSQL.ParamByName("XLXSBJDYZZ7_XXJGID").Value = sXXJGID; sSQL.ParamByName("XLXSBJDYZZ7_ZXJMSX").Value = dZXJMSX; sSQL.ParamByName("XLXSBJDYZZ7_ZXJMXX").Value = dZXJMXX; sSQL.ParamByName("XLXSBJDYZZ7_YZID").Value = cbxYZID.SelectedValue.Trim(); sSQL.ParamByName("pYZZ").Value = dYZZ; sSQL.ParamByName("pWHR").Value = tSession.UserName; sSQL.ParamByName("pWHRID").Value = tSession.UserId; sSQL.ParamByName("pWHSJ").Value = DateTime.Now; dberp.ExecSQL(sSQL); } index++; } rowindex++; } } else { string sColums = ""; int index = 1; foreach (DataColumn Colunm in ds.Tables[0].Rows[0].Table.Columns) { if (index > 3 && !string.IsNullOrEmpty(ds.Tables[0].Rows[0][Colunm].ToString().Trim())) { string sZXJMFW = ds.Tables[0].Rows[0][Colunm].ToString().Trim(); sZXJMFW = sZXJMFW.Replace('-', '~'); sZXJMFW = sZXJMFW.Replace(',', '~'); if (sZXJMFW.Split('~').Length != 2) throw new Exception("第" + index.ToString().Trim() + "列主芯截面范围不合法!"); double MinNum = CMISproConvert.StrToFloat(sZXJMFW.Split('~')[0].ToString().Trim()); double MaxNum = CMISproConvert.StrToFloat(sZXJMFW.Split('~')[1].ToString().Trim()); if (MinNum < 0) { throw new Exception("第" + index + "列主芯截面下限[" + MinNum.ToString().Trim() + "]--不允许为负数!"); } if (MaxNum < 0) { throw new Exception("第" + index + "列主芯截面上限[" + MaxNum.ToString().Trim() + "]--不允许为负数!"); } if (MaxNum != 0) { if (MinNum > MaxNum) { throw new Exception("第" + index + "列主芯截面下限[" + MinNum.ToString().Trim() + "]不允许超过主芯截面上限[" + MaxNum.ToString().Trim() + "]!"); } } if (!sColums.Equals("")) sColums += ","; sColums += sZXJMFW; } index++; } int rowindex = 1; foreach (DataRow Row in ds.Tables[0].Rows) { if (rowindex == 1) { rowindex++; continue; } string sXLXHID = sGetCellTest(Row, 0).Trim(); string sXLDYDJ = sGetCellTest(Row, 1).Trim(); sXLDYDJ = sXLDYDJ.Trim().Equals("") ? " " : sXLDYDJ.Trim(); string sXXJGID = sGetCellTest(Row, 2).Trim(); sXXJGID = sXXJGID.Trim().Equals("") ? " " : sXXJGID.Trim(); if (sXLXHID.Trim().Equals("")) { throw new Exception("第" + rowindex + "行型号为空!"); } if (!CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXHB where XLXHB_XLXHID='{0}' and ISNULL(XLXHB_TYBZ,'N') <> 'Y' ", sXLXHID))) { throw new Exception("第" + rowindex + "行型号[" + sXLXHID + "]不存在或已停用!"); } if (!sXLDYDJ.Trim().Equals("") && !CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLDYDJB where XLDYDJB_DYDJID='{0}' and ISNULL(XLDYDJB_TYBZ,'N') <> 'Y' ", sXLDYDJ))) { throw new Exception("第" + rowindex + "行电压等级[" + sXLDYDJ + "]不存在或已停用!"); } index = 4; foreach (string sZXJM in sColums.Split(',')) { double dZXJMXX = CMISproConvert.StrToFloat(sZXJM.Split('~')[0].ToString().Trim()); double dZXJMSX = CMISproConvert.StrToFloat(sZXJM.Split('~')[1].ToString().Trim()); double dYZZ = CMISproConvert.StrToFloat(Row[index - 1].ToString().Trim(), 0); if (!CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSBJDYZZ7 where XLXSBJDYZZ7_JGBID='{0}' and XLXSBJDYZZ7_XLXHID='{1}' and XLXSBJDYZZ7_DYDJID='{2}' and XLXSBJDYZZ7_XXJGID='{3}' and XLXSBJDYZZ7_ZXJMSX='{4}' and XLXSBJDYZZ7_ZXJMXX='{5}' and XLXSBJDYZZ7_YZID='{6}'", txtJGBID.Value.Trim(), sXLXHID, sXLDYDJ, sXXJGID, dZXJMSX, dZXJMXX, cbxYZID.SelectedValue.Trim()))) { if (chkIns.Checked)//不存在的记录自动插入 { sSQL.Clear(); sSQL.Add("select XLXSBJDYZZ7_XLXHID, XLXSBJDYZZ7_DYDJID, XLXSBJDYZZ7_XXJGID, XLXSBJDYZZ7_ZXJMXX,XLXSBJDYZZ7_ZXJMSX "); sSQL.Add("from XLXSBJDYZZ7 "); sSQL.Add("where XLXSBJDYZZ7_JGBID=:pJGBID and XLXSBJDYZZ7_YZID=:pYZID "); sSQL.Add(" and XLXSBJDYZZ7_XLXHID=:pXLXHID and XLXSBJDYZZ7_DYDJID=:pDYDJID "); sSQL.Add(" and XLXSBJDYZZ7_XXJGID=:pXXJGID "); sSQL.Add(" and ((XLXSBJDYZZ7_ZXJMXX>=:pZXJMXX "); if (dZXJMSX != 0) { sSQL.Add(" and XLXSBJDYZZ7_ZXJMXX<=:pZXJMSX "); } sSQL.Add(" ) "); sSQL.Add(" or ("); if (dZXJMSX != 0) { sSQL.Add(" XLXSBJDYZZ7_ZXJMSX>0 and XLXSBJDYZZ7_ZXJMSX>=:pZXJMXX and XLXSBJDYZZ7_ZXJMSX<=:pZXJMSX "); } else { sSQL.Add(" (XLXSBJDYZZ7_ZXJMSX>0 and XLXSBJDYZZ7_ZXJMSX>=:pZXJMXX) or (XLXSBJDYZZ7_ZXJMSX=0) "); } sSQL.Add(" ) "); sSQL.Add(" or (XLXSBJDYZZ7_ZXJMXX<=:pZXJMXX and (XLXSBJDYZZ7_ZXJMSX=0 or XLXSBJDYZZ7_ZXJMSX>=:pZXJMSX))"); sSQL.Add(" ) "); sSQL.ParamByName("pJGBID").Value = txtJGBID.Value.Trim(); sSQL.ParamByName("pYZID").Value = cbxYZID.SelectedValue.Trim(); sSQL.ParamByName("pXLXHID").Value = sXLXHID; sSQL.ParamByName("pDYDJID").Value = sXLDYDJ; sSQL.ParamByName("pXXJGID").Value = sXXJGID; sSQL.ParamByName("pZXJMXX").Value = dZXJMXX; if (dZXJMSX != 0) { sSQL.ParamByName("pZXJMSX").Value = dZXJMSX; } DataSet ds1 = dberp.OpenDataSet(sSQL); if (ds1.Tables[0].Rows.Count > 0) { string sZXJMQJ = ""; string sResult = "(型号:" + ds1.Tables[0].Rows[0]["XLXSBJDYZZ7_XLXHID"].ToString().Trim() + ",电压等级:" + ds1.Tables[0].Rows[0]["XLXSBJDYZZ7_DYDJID"].ToString().Trim() + ",芯线结构:" + ds1.Tables[0].Rows[0]["XLXSBJDYZZ7_XXJGID"].ToString().Trim() + ")"; if (CMISproConvert.StrToFloat(ds1.Tables[0].Rows[0]["XLXSBJDYZZ7_ZXJMSX"].ToString()) != 0) sZXJMQJ = ds1.Tables[0].Rows[0]["XLXSBJDYZZ7_ZXJMXX"].ToString().Trim() + "~" + ds1.Tables[0].Rows[0]["XLXSBJDYZZ7_ZXJMSX"].ToString().Trim(); else sZXJMQJ = ds1.Tables[0].Rows[0]["XLXSBJDYZZ7_ZXJMXX"].ToString().Trim() + "~" + "--"; throw new Exception(string.Format("第" + rowindex.ToString().Trim() + "行第" + index.ToString().Trim() + "列因子{1}的记录与已有主芯截面区间【{0}】{2}的记录有交集!", sZXJMQJ, cbxYZID.SelectedItem.Text.Trim(), sResult)); } sSQL.Clear(); sSQL.Add("insert into XLXSBJDYZZ7(XLXSBJDYZZ7_JGBID,XLXSBJDYZZ7_XLXHID,XLXSBJDYZZ7_DYDJID,XLXSBJDYZZ7_XXJGID,XLXSBJDYZZ7_ZXJMSX,XLXSBJDYZZ7_ZXJMXX,XLXSBJDYZZ7_YZID,XLXSBJDYZZ7_YZZ,XLXSBJDYZZ7_WHR,XLXSBJDYZZ7_WHRID,XLXSBJDYZZ7_WHSJ)"); sSQL.Add(" values(:XLXSBJDYZZ7_JGBID,:XLXSBJDYZZ7_XLXHID,:XLXSBJDYZZ7_DYDJID,:XLXSBJDYZZ7_XXJGID,:XLXSBJDYZZ7_ZXJMSX,:XLXSBJDYZZ7_ZXJMXX,:XLXSBJDYZZ7_YZID,:XLXSBJDYZZ7_YZZ,:XLXSBJDYZZ7_WHR,:XLXSBJDYZZ7_WHRID,:XLXSBJDYZZ7_WHSJ)"); sSQL.ParamByName("XLXSBJDYZZ7_JGBID").Value = txtJGBID.Value.Trim(); sSQL.ParamByName("XLXSBJDYZZ7_XLXHID").Value = sXLXHID; sSQL.ParamByName("XLXSBJDYZZ7_DYDJID").Value = sXLDYDJ; sSQL.ParamByName("XLXSBJDYZZ7_XXJGID").Value = sXXJGID; sSQL.ParamByName("XLXSBJDYZZ7_ZXJMSX").Value = dZXJMSX; sSQL.ParamByName("XLXSBJDYZZ7_ZXJMXX").Value = dZXJMXX; sSQL.ParamByName("XLXSBJDYZZ7_YZID").Value = cbxYZID.SelectedValue.Trim(); sSQL.ParamByName("XLXSBJDYZZ7_YZZ").Value = dYZZ; sSQL.ParamByName("XLXSBJDYZZ7_WHR").Value = tSession.UserName; sSQL.ParamByName("XLXSBJDYZZ7_WHRID").Value = tSession.UserId; sSQL.ParamByName("XLXSBJDYZZ7_WHSJ").Value = DateTime.Now; dberp.ExecSQL(sSQL); } } else { sSQL.Clear(); sSQL.Add("update XLXSBJDYZZ7 set XLXSBJDYZZ7_YZZ = :pYZZ,XLXSBJDYZZ7_WHR = :pWHR,XLXSBJDYZZ7_WHRID =:pWHRID,XLXSBJDYZZ7_WHSJ =:pWHSJ "); sSQL.Add(" where XLXSBJDYZZ7_JGBID=:XLXSBJDYZZ7_JGBID"); sSQL.Add(" and XLXSBJDYZZ7_XLXHID=:XLXSBJDYZZ7_XLXHID"); sSQL.Add(" and XLXSBJDYZZ7_DYDJID=:XLXSBJDYZZ7_DYDJID"); sSQL.Add(" and XLXSBJDYZZ7_XXJGID=:XLXSBJDYZZ7_XXJGID"); sSQL.Add(" and XLXSBJDYZZ7_ZXJMSX=:XLXSBJDYZZ7_ZXJMSX"); sSQL.Add(" and XLXSBJDYZZ7_ZXJMXX=:XLXSBJDYZZ7_ZXJMXX"); sSQL.Add(" and XLXSBJDYZZ7_YZID=:XLXSBJDYZZ7_YZID"); sSQL.ParamByName("XLXSBJDYZZ7_JGBID").Value = txtJGBID.Value.Trim(); sSQL.ParamByName("XLXSBJDYZZ7_XLXHID").Value = sXLXHID; sSQL.ParamByName("XLXSBJDYZZ7_DYDJID").Value = sXLDYDJ; sSQL.ParamByName("XLXSBJDYZZ7_XXJGID").Value = sXXJGID; sSQL.ParamByName("XLXSBJDYZZ7_ZXJMSX").Value = dZXJMSX; sSQL.ParamByName("XLXSBJDYZZ7_ZXJMXX").Value = dZXJMXX; sSQL.ParamByName("XLXSBJDYZZ7_YZID").Value = cbxYZID.SelectedValue.Trim(); sSQL.ParamByName("pYZZ").Value = dYZZ; sSQL.ParamByName("pWHR").Value = tSession.UserName; sSQL.ParamByName("pWHRID").Value = tSession.UserId; sSQL.ParamByName("pWHSJ").Value = DateTime.Now; dberp.ExecSQL(sSQL); } index++; } rowindex++; } } } private void ExcelColumnValid(DataSet ds) { Dictionary ColumnNames = new Dictionary(); ColumnNames.Add("0", "型号"); ColumnNames.Add("1", "电压等级"); ColumnNames.Add("2", "芯线结构"); ColumnNames.Add("3", "主芯截面始"); ColumnNames.Add("4", "主芯截面止"); ColumnNames.Add("5", cbxYZID.SelectedItem.Text.Trim()); if (PageParam.GetRTrimString("DRFS").Equals("DRWJ")) { for (int i = 0; i < 6; i++) { if (!ds.Tables[0].Columns[i].ColumnName.Trim().Equals(ColumnNames[i.ToString()].Trim())) { throw new Exception("导入文件的内容格式不正确,Excel栏目依次为:型号、电压等级、芯线结构、主芯截面始、主芯截面止、" + cbxYZID.SelectedItem.Text.Trim() + "!"); } } } else if (PageParam.GetRTrimString("DRFS").Equals("LMDR")) { for (int i = 0; i < 3; i++) { if (!ds.Tables[0].Rows[0][i].ToString().Trim().Equals(ColumnNames[i.ToString()].Trim())) { throw new Exception("导入文件的内容格式不正确,Excel栏目依次为:型号、电压等级、芯线结构、主芯截面栏目1、主芯截面栏目2、……!"); } } } else { for (int i = 0; i < 3; i++) { if (!ds.Tables[0].Rows[0][i].ToString().Trim().Equals(ColumnNames[i.ToString()].Trim())) { throw new Exception("导入文件的内容格式不正确,Excel栏目依次为:型号、电压等级、芯线结构、主芯截面范围栏目1、主芯截面范围栏目2、……!"); } } } } private void ReadWJ(string sPath, ref DataSet aDataExcel) { string sMessage = ""; if (PageParam.GetRTrimString("DRFS").Equals("DRWJ")) aDataExcel = TExcelData.ReadExcel(sPath.Trim(), "", "", false, ref sMessage); else aDataExcel = TExcelData.ReadExcel(sPath.Trim(), "", "", false, 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 SortNum(ref double MinNum, ref double MaxNum)//数值排序 { if (MinNum > MaxNum) { double tempNum = MinNum; MinNum = MaxNum; MaxNum = tempNum; } } #endregion } }