2026821
This commit is contained in:
@@ -0,0 +1,265 @@
|
||||
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;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
|
||||
namespace GThinking.N_XLJC
|
||||
{
|
||||
[TableMap(DB = "DBERP", DbTableName = "XLXLB", Umid = 101421012, IsWorkFlow = false, UseWhr = false, IsAttach = false,
|
||||
|
||||
QuerySelSql = "",
|
||||
|
||||
EntitySelSql = "",
|
||||
|
||||
InsertSql = "",
|
||||
|
||||
UpdateSql = "",
|
||||
|
||||
DeleteSql = "")]
|
||||
|
||||
public class XLCPWHDR : EntityManager
|
||||
{
|
||||
|
||||
}
|
||||
public partial class XLCPWHDRInfo : SingleCardBase
|
||||
{
|
||||
XLCPWHDR entity = new XLCPWHDR();
|
||||
|
||||
#region page类事件
|
||||
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
this.UMID = 101421012;
|
||||
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";
|
||||
base.InitPage();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#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 = ReadFromExcelFile(fupdPost.FilePath, 0, "");
|
||||
else // AppBitType.Bit64
|
||||
ReadWJ(fupdPost.FilePath, "", ref aDataExcel);
|
||||
ExcelColumnValid(aDataExcel);
|
||||
DateTime WHSJ = MISproUtils.GetServerTime();//获取服务器时间
|
||||
N_PUBLIC2.XLUtils.InsXLXLBXX(dberp, sSQL, aDataExcel, WHSJ);
|
||||
dberp.CommitTrans();
|
||||
if (PageParam.GetRTrimString("txtNeedCallBackCID").Equals(""))
|
||||
{
|
||||
ShowMessage("导入成功!");
|
||||
CloseWindow();
|
||||
}
|
||||
else
|
||||
{
|
||||
DialogOperationScript dos = new DialogOperationScript(this);
|
||||
dos.SetOwnerControlValue(PageParam.GetRTrimString("txtNeedCallBackCID"), "Y");
|
||||
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 自定义事件
|
||||
|
||||
//AppBitType.Bit32运行时,只能读取xls格式,导入Excel使用该方法,解决混合列读取数据丢失的问题
|
||||
private DataSet ReadFromExcelFile(string filePath, int headerRowIndex, string SheetName)
|
||||
{
|
||||
string sMessage = "";
|
||||
DataSet ds = TExcelData.ReadExcel_NPOI(filePath, SheetName, headerRowIndex, true, ref sMessage);
|
||||
if (!sMessage.Trim().Equals(""))
|
||||
{
|
||||
throw new Exception("文件读取失败!具体原因:" + sMessage);
|
||||
}
|
||||
return ds;
|
||||
}
|
||||
|
||||
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", "物料编码");
|
||||
ColumnNames.Add("6", "外径");
|
||||
ColumnNames.Add("7", "最小弯曲倍数");
|
||||
ColumnNames.Add("8", "导体结构信息");
|
||||
|
||||
for (int i = 0; i < ds.Tables[0].Columns.Count; i++)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (!ds.Tables[0].Columns[i].ColumnName.Replace("*", "").Trim().Equals(ColumnNames[i.ToString()].Trim()))
|
||||
{
|
||||
throw new Exception("导入文件的内容格式不正确,第" + (i + 1) + "列的标题应为【" + ColumnNames[i.ToString()].Trim() + "】,请按导出示例中要求的内容格式调整导入文件!");
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw new Exception("导入文件的路线内容格式不正确,请按导出示例中要求的内容格式调整导入文件!错误信息:" + e.Message);
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
|
||||
{
|
||||
DataRow Row = ds.Tables[0].Rows[i];
|
||||
string sXH = sGetCellTest(Row, 0).Trim();
|
||||
string sGG = sGetCellTest(Row, 1).Trim();
|
||||
string sBZ = sGetCellTest(Row, 2).Trim();
|
||||
string sDYDJ = sGetCellTest(Row, 3).Trim();
|
||||
string sXLYSID = N_PUBLIC2.XLUtils.GetXLYSID(sGetCellTest(Row, 4).Trim());
|
||||
string sWLID = sGetCellTest(Row, 5).Trim();
|
||||
string sWJ = sGetCellTest(Row, 6).Trim();
|
||||
string sZXWQBS = sGetCellTest(Row, 7).Trim();
|
||||
string sDTJGXX = sGetCellTest(Row, 8).Trim();
|
||||
|
||||
if (sXH.Equals(""))
|
||||
throw new Exception("第" + (i + 1) + "行型号为空,导入失败!");
|
||||
|
||||
if (sGG.Equals(""))
|
||||
throw new Exception("第" + (i + 1) + "行规格为空,导入失败!");
|
||||
|
||||
if (sBZ.Equals(""))
|
||||
throw new Exception("第" + (i + 1) + "行标准为空,导入失败!");
|
||||
|
||||
if (sDYDJ.Equals(""))
|
||||
throw new Exception("第" + (i + 1) + "行电压等级为空,导入失败!");
|
||||
|
||||
if (!sGetCellTest(Row, 4).Trim().Equals("") && sXLYSID.Equals(""))
|
||||
throw new Exception("第" + (i + 1) + "行颜色不存在,导入失败!");
|
||||
|
||||
if(sXLYSID.Equals("")&&!sWLID.Equals(""))
|
||||
throw new Exception("第" + (i + 1) + "行颜色、物料编码应该同时为空或同时不为空,导入失败!");
|
||||
|
||||
if (!sXLYSID.Equals("") && sWLID.Equals(""))
|
||||
throw new Exception("第" + (i + 1) + "行颜色、物料编码应该同时为空或同时不为空,导入失败!");
|
||||
|
||||
if(!XLXHIDValid(sXH))
|
||||
throw new Exception("第" + (i + 1) + "行型号不存在,导入失败!");
|
||||
|
||||
if(!XLBZIDValid(sBZ))
|
||||
throw new Exception("第" + (i + 1) + "行标准不存在,导入失败!");
|
||||
|
||||
if (!DYDJIDValid(sDYDJ))
|
||||
throw new Exception("第" + (i + 1) + "行电压等级不存在,导入失败!");
|
||||
|
||||
|
||||
|
||||
|
||||
if (!sWLID.Equals("")&&!CMISproDataBase.ExistsRecord("DBERP", "select 1 from WL where WL_WLID='" + sWLID + "'"))
|
||||
throw new Exception("第" + (i + 1) + "行物料编码不存在,导入失败!");
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void ReadWJ(string sPath, string sSheetName, ref DataSet aDataExcel)
|
||||
{
|
||||
string sMessage = "";
|
||||
aDataExcel = TExcelData.ReadExcel(sPath.Trim(), sSheetName, "", 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 bool XLXHIDValid(string sXLXHID)
|
||||
{
|
||||
if (CMISproDataBase.ExistsRecord("DBERP", "select 1 from XLXHB where XLXHB_XLXHID='" + sXLXHID + "'"))
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
private bool XLBZIDValid(string sXLBZID)
|
||||
{
|
||||
if (CMISproDataBase.ExistsRecord("DBERP", "select 1 from XLBZ where XLBZ_XLBZID='" + sXLBZID + "'"))
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
private bool DYDJIDValid(string sDYDJID)
|
||||
{
|
||||
if (CMISproDataBase.ExistsRecord("DBERP", "select 1 from XLDYDJB where XLDYDJB_DYDJID='" + sDYDJID + "'"))
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user