Files
N_XLXSBJ----MX/TZYZJJ7_DRInfo.aspx.cs
2026-08-21 17:03:02 +08:00

696 lines
42 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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栏目依次为:型号、电压等级、芯线结构、主芯截面始、<br />主芯截面止、调价因子";
else if (PageParam.GetRTrimString("DRFS").Equals("LMDR"))
GtLabel1.Text = "Excel栏目依次为:型号、电压等级、芯线结构、主芯截面栏目1、<br />主芯截面栏目2、……";
else
GtLabel1.Text = "Excel栏目依次为:型号、电压等级、芯线结构、主芯截面范围栏目1、<br />主芯截面范围栏目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<string, string> ColumnNames = new Dictionary<string, string>();
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
}
}