253 lines
10 KiB
C#
253 lines
10 KiB
C#
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_PUBLIC2;
|
|
using GThinking.N_MISPRO.Utility;
|
|
using GThinking.N_CONTROL;
|
|
using System.IO;
|
|
using System.Data.OleDb;
|
|
using System.Data.Common;
|
|
using GThinking.N_MISPRO.Caching;
|
|
using GThinking.N_MISPRO.TableCache;
|
|
using GThinking.N_MISPROAS;
|
|
|
|
namespace GThinking.N_XLXSBJ
|
|
{
|
|
public partial class BJCPXD_DRInfo : SingleCardBase
|
|
{
|
|
BJCPXD_DR entity = new BJCPXD_DR();
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
{
|
|
this.UMID = 100860097;
|
|
this.UMName = "报价产品修订";
|
|
base.CurMaster = Master;
|
|
this.CurEntity = entity;
|
|
this.PageHeight = 180;
|
|
this.PageWidth = 420;
|
|
|
|
this.Master.EnableAttachBtn = false;
|
|
this.Master.EnableCancelBtn = false;
|
|
this.Master.EnableCopyBtn = false;
|
|
this.Master.EnableDeleteBtn = false;
|
|
this.Master.EnableEditBtn = false;
|
|
this.Master.EnableInsertBtn = false;
|
|
this.Master.EnablePrintBtn = false;
|
|
this.Master.EnableRefreshBtn = false;
|
|
this.Master.EnableSaveBtn = false;
|
|
Server.ScriptTimeout = 3600;
|
|
fupdPost.FileSaveType = gtAsyncFileUpload.DFileSaveType.SaveToPath;
|
|
if (AppRuntime.BitType == AppBitType.Bit32)
|
|
fupdPost.Filter = "XLS";
|
|
else // AppBitType.Bit64
|
|
fupdPost.Filter = "XLS,XLSX";
|
|
base.InitPage();
|
|
Server.ScriptTimeout = 3600;
|
|
btnUn.Style["display"] = "none";
|
|
}
|
|
#region 控件事件
|
|
|
|
protected void btnQX_Click(object sender, EventArgs e)
|
|
{
|
|
CloseWindowNoQuery();
|
|
}
|
|
|
|
protected void btnUnDis_Click(object sender, EventArgs e)
|
|
{
|
|
|
|
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(aDataExcel);
|
|
InsertDRJL(dberp, sSQL, aDataExcel);
|
|
dberp.CommitTrans();
|
|
ShowMessage("导入成功!");
|
|
|
|
DialogOperationScript dos = new DialogOperationScript(this);
|
|
dos.ClickOwnerButton(PageParam.GetRTrimString("btnRefreshCID"));
|
|
dos.CloseSelf();
|
|
dos.Execute();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
lblTitle.Text = "";
|
|
dberp.RollbackTrans();
|
|
ShowMessage(ex.Message);
|
|
}
|
|
finally
|
|
{
|
|
System.IO.File.Delete(fupdPost.FilePath.Trim());
|
|
}
|
|
CloseWindowNoQuery();
|
|
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region 自定义函数
|
|
|
|
private void InsertDRJL(TDatabase dberp, TSQL SQL, DataSet ds)
|
|
{
|
|
int iXH = CMISproDataBase.GetMaxXH("DBERP", "XLXSBJYLZDMX", "XLXSBJYLZDMX_XH", "XLXSBJYLZDMX_SQDH ='0000000000'") + 1;
|
|
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
|
|
{
|
|
string sXLXHID = ds.Tables[0].Rows[i][0].ToString().Trim();
|
|
string sXLGGID = ds.Tables[0].Rows[i][1].ToString().Trim();
|
|
string sST = ds.Tables[0].Rows[i][2].ToString().Trim();
|
|
string sDYDJ = ds.Tables[0].Rows[i][3].ToString().Trim();
|
|
string sXDXLXHID = ds.Tables[0].Rows[i][4].ToString().Trim();
|
|
string sXDXLGGID = ds.Tables[0].Rows[i][5].ToString().Trim();
|
|
string sXDST = ds.Tables[0].Rows[i][6].ToString().Trim();
|
|
string sXDDYDJ = ds.Tables[0].Rows[i][7].ToString().Trim();
|
|
string sBZ = ds.Tables[0].Rows[i][8].ToString().Trim();
|
|
|
|
#region 校验数据
|
|
|
|
if (sXLXHID.Equals("")||sXLGGID.Equals("")||sST.Equals("")||sDYDJ.Equals(""))
|
|
{
|
|
string sDRXXMessage ="导入失败!修订前产品型号、规格、标准、电压等级不能为空!";
|
|
throw new Exception(sDRXXMessage);
|
|
}
|
|
|
|
if (sXDXLXHID.Equals("") || sXDXLGGID.Equals("") || sXDST.Equals("") || sXDDYDJ.Equals(""))
|
|
{
|
|
string sDRXXMessage = "导入失败!修订产品型号、规格、标准、电压等级不能为空!";
|
|
throw new Exception(sDRXXMessage);
|
|
}
|
|
|
|
if (sXLXHID.Equals(sXDXLXHID) && sXLGGID.Equals(sXDXLGGID))
|
|
{
|
|
if (sST.Equals(sXDST) && sDYDJ.Equals(sXDDYDJ))
|
|
{
|
|
string sDRXXMessage = string.Format("导入失败!修订前产品{0}、{1}、{2}、{3}不能与修订后产品相同!", sXLXHID, sXLGGID, sST, sDYDJ);
|
|
throw new Exception(sDRXXMessage);
|
|
}
|
|
}
|
|
|
|
string sSQL = string.Format(@"select top 1 XLXSBJYLZDMX_SQDH
|
|
from XLXSBJYLZDMX
|
|
where XLXSBJYLZDMX_SQDH='0000000000' and XLXSBJYLZDMX_BJDXLXHID='{0}' and XLXSBJYLZDMX_BJDXLGGID='{1}' and
|
|
XLXSBJYLZDMX_BJDXLBZID='{2}'and XLXSBJYLZDMX_BJDDYDJID='{3}' ", sXLXHID, sXLGGID, sST, sDYDJ);
|
|
|
|
if (CMISproDataBase.ExistsRecord("DBERP", sSQL))
|
|
{
|
|
SQL.Clear();
|
|
SQL.Add(@" update XLXSBJYLZDMX set XLXSBJYLZDMX_XLXHID=:pXLXHID ,XLXSBJYLZDMX_XLGGID=:pXLGGID,XLXSBJYLZDMX_XLBZID=:pXLBZID,XLXSBJYLZDMX_DYDJID=:pDYDJID,
|
|
XLXSBJYLZDMX_WHR=:pWHR,XLXSBJYLZDMX_WHRID=:pWHRID,XLXSBJYLZDMX_WHSJ=:pWHSJ
|
|
where XLXSBJYLZDMX_SQDH='0000000000' and XLXSBJYLZDMX_BJDXLXHID=:pBJDXLXHID and XLXSBJYLZDMX_BJDXLGGID=:pBJDXLGGID and XLXSBJYLZDMX_BJDXLBZID=:pBJDXLBZID and XLXSBJYLZDMX_BJDDYDJID=:pBJDDYDJID ");
|
|
|
|
SQL.ParamByName("pBJDXLXHID").Value = sXLXHID;
|
|
SQL.ParamByName("pBJDXLGGID").Value = sXLGGID;
|
|
SQL.ParamByName("pBJDXLBZID").Value = sST;
|
|
SQL.ParamByName("pBJDDYDJID").Value = sDYDJ;
|
|
SQL.ParamByName("pXLXHID").Value = sXDXLXHID;
|
|
SQL.ParamByName("pXLGGID").Value = sXDXLGGID;
|
|
SQL.ParamByName("pXLBZID").Value = sXDST;
|
|
SQL.ParamByName("pDYDJID").Value = sXDDYDJ;
|
|
SQL.ParamByName("pWHR").Value = tSession.UserName;
|
|
SQL.ParamByName("pWHRID").Value = tSession.UserId;
|
|
SQL.ParamByName("pWHSJ").Value = DateTime.Now;
|
|
dberp.ExecSQL(SQL);
|
|
continue;
|
|
}
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
#region 插入语句
|
|
|
|
SQL.Clear();
|
|
SQL.Add(@"insert into XLXSBJYLZDMX(XLXSBJYLZDMX_SQDH,XLXSBJYLZDMX_XH,XLXSBJYLZDMX_BJDXLXHID,XLXSBJYLZDMX_BJDXLGGID,XLXSBJYLZDMX_BJDXLBZID,XLXSBJYLZDMX_BJDDYDJID,
|
|
XLXSBJYLZDMX_XLXHID,XLXSBJYLZDMX_XLGGID,XLXSBJYLZDMX_XLBZID,XLXSBJYLZDMX_DYDJID,
|
|
XLXSBJYLZDMX_BZ,XLXSBJYLZDMX_WHR,XLXSBJYLZDMX_WHRID,XLXSBJYLZDMX_WHSJ,XLXSBJYLZDMX_DZSC)
|
|
values(:pSQDH,:pXH,:pXLXHID,:pXLGGID,:pXLBZID,:pDYDJID,:pXDXLXHID,:pXDXLGGID,:pXDXLBZID,:pXDDYDJID,:pBZ,:pWHR,:pWHRID,:pWHSJ,:pDZSC )");
|
|
|
|
SQL.ParamByName("pSQDH").Value = "0000000000";
|
|
SQL.ParamByName("pXH").Value = iXH++;
|
|
SQL.ParamByName("pXLXHID").Value = sXLXHID;
|
|
SQL.ParamByName("pXLGGID").Value = sXLGGID;
|
|
SQL.ParamByName("pXLBZID").Value = sST;
|
|
SQL.ParamByName("pDYDJID").Value = sDYDJ;
|
|
SQL.ParamByName("pXDXLXHID").Value = sXDXLXHID;
|
|
SQL.ParamByName("pXDXLGGID").Value = sXDXLGGID;
|
|
SQL.ParamByName("pXDXLBZID").Value = sXDST;
|
|
SQL.ParamByName("pXDDYDJID").Value = sXDDYDJ;
|
|
SQL.ParamByName("pBZ").Value = sBZ;
|
|
SQL.ParamByName("pWHR").Value = tSession.UserName;
|
|
SQL.ParamByName("pWHRID").Value = tSession.UserId;
|
|
SQL.ParamByName("pWHSJ").Value = DateTime.Now;
|
|
SQL.ParamByName("pDZSC").Value = "N";
|
|
|
|
dberp.ExecSQL(SQL);
|
|
|
|
#endregion
|
|
}
|
|
|
|
}
|
|
|
|
private void ExcelColumnValid(DataSet ds)
|
|
{
|
|
Dictionary<string, string> ColumnNames = new Dictionary<string, string>();
|
|
|
|
ColumnNames.Clear();
|
|
ColumnNames.Add("0", "型号");
|
|
ColumnNames.Add("1", "规格");
|
|
ColumnNames.Add("2", "标准");
|
|
ColumnNames.Add("3", "电压等级");
|
|
ColumnNames.Add("4", "修订型号");
|
|
ColumnNames.Add("5", "修订规格");
|
|
ColumnNames.Add("6", "修订标准");
|
|
ColumnNames.Add("7", "修订电压等级");
|
|
ColumnNames.Add("8", "备注");
|
|
foreach (KeyValuePair<string, string> kpv in ColumnNames)
|
|
{
|
|
if (!ds.Tables[0].Columns[CMISproConvert.StrToInt(kpv.Key.Trim())].ColumnName.Trim().Equals(kpv.Value.Trim()))
|
|
{
|
|
throw new Exception(string.Format("({0})列标题错误,该列为({1})", ds.Tables[0].Columns[CMISproConvert.StrToInt(kpv.Key.Trim())].ColumnName.Trim()+1, kpv.Value.Trim()));
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
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("文件读取失败!");
|
|
}
|
|
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
}
|