目的: 利用 myfunc 的函式 SelectFile , 產生 [選擇畫面] 子畫面
處理說明: 1> {
xtype: 'button', text: '批次新增', id: 'BatchAddBtn',
listeners: {
click: function (me,e,eOpts) {
console.log(" 1 批次新增: ");
//xlsInBtn_click();
//挑選檔案,傳入 CallBack函式(按OK時的處理函式)
console.log(" 2 before SelFile ");
SelectFile(Ok_process);
console.log(" 3 after SelectFile: ");
}
}
},
1>V20301.js
{
xtype: 'button', text: '批次新增', id: 'BatchAddBtn',
listeners: {
click: function (me,e,eOpts) {
//挑選檔案,傳入 CallBack函式(按OK時的處理函式)
SelectFile(Ok_process);
}
}
},
//[選擇檔案]子畫面. [確認匯入]鈕 , 處理
function Ok_process(me, e, eOpts) {
//取得 [檔案上傳].檔名
var Tmp_FileObj = Ext.getCmp('FName');
console.log("FName Obj:", Tmp_FileObj);
var Tmp_Str = "";
var np = {
FName: Ext.getDom(Tmp_FileObj.inputId).value
};
console.log("FName: ", np.FName);
//submit會將fileUploadForm裡面input name送到後端
//Ext.getCmp('btn_FileIn').getForm().submit({
me.up("form").submit({
//standardSubmit: false, //default:false
url: '../api/V20301API/uploadFileToDB',
method: 'POST',
headers: { 'Content-type': 'multipart/form-data' },
params: np,
success: function (response, opts) {
console.log("success opts.response.responseText:", opts.response.responseText);
var obj = Ext.decode(opts.response.responseText);
console.log("obj:", obj);
if (obj["success"]) {
Tmp_Str = "[匯入]完成 !! <br>"
+ obj['Rtn_Msg'];
mysuccessalert(Tmp_Str);
console.log("success=true , Tmp_Str=", Tmp_Str);
me.up("window").close();
me.up("window").destroy();
Ext.getCmp('btn_Show').fireHandler();
}
else {
Tmp_Str = "[匯入]失敗 !! <br>"
+ obj['Rtn_Msg'];
mywarnalert(Tmp_Str);
//Tmp_Sql = " Tmp_sql :<br> "
// +obj['Tmp_Sql'];
//mywarnalert(Tmp_Str);
console.log("success=false , Tmp_Str=", Tmp_Str);
me.up("window").close();
me.up("window").destroy();
};
},
failure: function (response, opts) {
console.log(" failure opts.response.responseText:", opts.response.responseText);
var obj = Ext.decode(opts.response.responseText);
console.log("obj:", obj);
Tmp_Str = "[匯入]失敗!! <br>"
+ "(" + obj['FName'] + ") <br>"
+ obj['Rtn_Msg'];
mywarnalert(Tmp_Str);
me.up("window").close();
me.up("window").destroy();
}
});
}; // end of Ok_process() { //批次新增
2>myfunc.js SelectFile() 函式
//[選擇檔案]按鈕處理
//[匯入]子畫面
var J_SelFile = [
{
xtype: 'filefield',
id: 'FName',
name: 'FName',
fieldLabel: '檔案名稱',
labelWidth: 60,
msgTarget: 'side',
allowBlank: false,
flex: 1,
anchor: '100%',
buttonText: '選擇檔案',
listeners: {
'change': function (fb, v) {
var fileName = getFileName(v.replace(/C:\\fakepath\\/g, ''));
Ext.getDom(fb.inputId).value = fileName;
//Ext.getDom(fb.inputId).value = v;
}
}
},
];
//取得檔名+副檔名
function getFileName(val) {
filename = val.split('\\').pop().split('/').pop();
return filename;
}
//[匯入]子畫面
var J_SelFile = [
{
xtype: 'filefield',
id: 'FName',
name: 'FName',
fieldLabel: '檔案名稱',
labelWidth: 60,
msgTarget: 'side',
allowBlank: false,
flex: 1,
anchor: '100%',
buttonText: '選擇檔案',
listeners: {
'change': function (fb, v) {
var fileName = getFileName(v.replace(/C:\\fakepath\\/g, ''));
Ext.getDom(fb.inputId).value = fileName;
//Ext.getDom(fb.inputId).value = v;
}
}
},
];
//取得檔名+副檔名
function getFileName(val) {
filename = val.split('\\').pop().split('/').pop();
return filename;
}
function SelectFile(par_OkProcess) {
console.log(" 2 inside SelectFile() ");
//var mySubForm = Ext.create('Ext.form.FormPanel', {
var SelectForm = Ext.create('Ext.form.FormPanel', {
autoScroll: true,
fieldDefaults: {
labelAlign: 'right',
},
layout: {
type: 'vbox',
align: 'stretch'
},
id: "SelectForm",
form_id: "SelectForm",
items: J_SelFile, //挑選檔案畫面欄位
buttons: [
{
text: "確定匯入", id: "SelectForm_okbtn", handler: function (me,e,eOpts) {
//mySubForm_2_btnokClick();
par_OkProcess(this,e,eOpts);
}
},
{
text: "取消", id: "SelectForm_cancelbtn", handler: function () {
var Tmp_win = this.up("window");
if (Tmp_win == undefined) {
Ext.Msg.alert("關閉時未取到Window Object");
}
this.up("window").close();
this.up("window").destroy();
}
}
]
}
);
var win = getEditWindow_my("匯入", SelectForm, 1);
win.width = 600;
win.height = 100;
win.show();
};
3>*.cs
//[匯入] 鈕 , 匯入 XLS 檔案
[HttpPost]
public HttpResponseMessage uploadFileToDB()
{
HttpContext c = HttpContext.Current;
NameValueCollection nvc = c.Request.Form;
string FName = nvc["FName"];
Workbook wk = null;
HttpRequest Request = HttpContext.Current.Request;
var response = this.Request.CreateResponse();
string file_Name = FName;
string FILEDT = DateTime.Now.ToString("yyyy/MM/dd");
string Tmp_RtnMsg = "";
string Tmp_RtnMsg1 = "";
string Tmp_Sql = "", Tmp_Str = "";
int Tmp_cnt = 0;
foreach (string cur_FName in Request.Files)
{
string fileType = Request.Files[cur_FName].ContentType;
Stream file_Strm = Request.Files[cur_FName].InputStream;
file_Name = Path.GetFileName(Request.Files[cur_FName].FileName);
int fileSize = Request.Files[cur_FName].ContentLength;
byte[] fileRcrd = new byte[fileSize];
//更新資料庫欄位值
int Tmp_curpos = 0;
try
{
wk = new Workbook();
wk.LoadFromStream(file_Strm);
Worksheet sheet1 = wk.Worksheets[0];//獲取第一個工作表
/*
//共 33 欄
//string[] outFieldArray = { 資料來源,拆檢提領編號,維修提領編號,拆檢交修單號,維修約交修單號,
WBS,數量,中文名稱(SAP勞務內容),英文簡稱,料號,
件號,序號,機種,接收批次,預計拆檢完工日,
客戶拆檢需求日,實際工廠接收日期,SAP OSM,EO,情況碼,
工單類型,發工人員,管制人員,維修人員,拆檢結束日期,
QDRNO,AMM工單備註,承修工場,專案,群組,
是否序號管制,保固或構改管制碼,專案需求日};
//int RowsCount = sheet1.Rows.Count();
*/
int RowsCount = sheet1.LastRow;
string Tmp_FMNO;
string Tmp_DTSOR, Tmp_OGONOAF, Tmp_NGONOAF, Tmp_RPNOAF, Tmp_MRPNOAF;
string Tmp_WBSNO, Tmp_RQTYAF, Tmp_C_NM, Tmp_ES_NM, Tmp_NSN;
string Tmp_PN, Tmp_SEQOAF, Tmp_EIAC_CUS,Tmp_RBTHAF,Tmp_PRNRAF;
string Tmp_CRNRAF, Tmp_FREDTAF, Tmp_OSM, Tmp_EONO, Tmp_CDCODE;
string Tmp_FRTP, Tmp_DLEMPLYID, Tmp_CREMPLYID, Tmp_MTEMPLYID, Tmp_NRCLAF;
string Tmp_QDRNO, Tmp_REMARK, Tmp_FACWC, Tmp_NEMPID, Tmp_LGROUP;
string Tmp_ISSN, Tmp_MCODE, Tmp_PJDT,Tmp_STATFM,Tmp_BTDT,Tmp_MDDT;
//STEP1 檢核 XLS 欄位名稱資料是否正確
Tmp_DTSOR = sheet1.Range[myfunc.GetExcelPos(0, 0)].Value;
Tmp_OGONOAF = sheet1.Range[myfunc.GetExcelPos(1, 0)].Value;
Tmp_NGONOAF = sheet1.Range[myfunc.GetExcelPos(2, 0)].Value;
Tmp_RPNOAF = sheet1.Range[myfunc.GetExcelPos(3, 0)].Value;
Tmp_MRPNOAF = sheet1.Range[myfunc.GetExcelPos(4, 0)].Value;
Tmp_WBSNO = sheet1.Range[myfunc.GetExcelPos(5, 0)].Value;
Tmp_RQTYAF = sheet1.Range[myfunc.GetExcelPos(6, 0)].Value;
Tmp_C_NM = sheet1.Range[myfunc.GetExcelPos(7, 0)].Value;
Tmp_ES_NM = sheet1.Range[myfunc.GetExcelPos(8, 0)].Value;
Tmp_NSN = sheet1.Range[myfunc.GetExcelPos(9, 0)].Value;
Tmp_PN = sheet1.Range[myfunc.GetExcelPos(10, 0)].Value;
Tmp_SEQOAF = sheet1.Range[myfunc.GetExcelPos(11, 0)].Value;
Tmp_EIAC_CUS = sheet1.Range[myfunc.GetExcelPos(12, 0)].Value;
Tmp_RBTHAF = sheet1.Range[myfunc.GetExcelPos(13, 0)].Value;
Tmp_PRNRAF = sheet1.Range[myfunc.GetExcelPos(14, 0)].Value;
Tmp_CRNRAF = sheet1.Range[myfunc.GetExcelPos(15, 0)].Value;
Tmp_FREDTAF = sheet1.Range[myfunc.GetExcelPos(16, 0)].Value;
Tmp_OSM = sheet1.Range[myfunc.GetExcelPos(17, 0)].Value;
Tmp_EONO = sheet1.Range[myfunc.GetExcelPos(18, 0)].Value;
Tmp_CDCODE = sheet1.Range[myfunc.GetExcelPos(19, 0)].Value;
Tmp_FRTP = sheet1.Range[myfunc.GetExcelPos(20, 0)].Value;
Tmp_DLEMPLYID = sheet1.Range[myfunc.GetExcelPos(21, 0)].Value;
Tmp_CREMPLYID = sheet1.Range[myfunc.GetExcelPos(22, 0)].Value;
Tmp_MTEMPLYID = sheet1.Range[myfunc.GetExcelPos(23, 0)].Value;
Tmp_NRCLAF = sheet1.Range[myfunc.GetExcelPos(24, 0)].Value;
Tmp_QDRNO = sheet1.Range[myfunc.GetExcelPos(25, 0)].Value;
Tmp_REMARK = sheet1.Range[myfunc.GetExcelPos(26, 0)].Value;
Tmp_FACWC = sheet1.Range[myfunc.GetExcelPos(27, 0)].Value;
Tmp_NEMPID = sheet1.Range[myfunc.GetExcelPos(28, 0)].Value;
Tmp_LGROUP = sheet1.Range[myfunc.GetExcelPos(29, 0)].Value;
Tmp_ISSN = sheet1.Range[myfunc.GetExcelPos(30, 0)].Value;
Tmp_MCODE = sheet1.Range[myfunc.GetExcelPos(31, 0)].Value;
Tmp_PJDT = sheet1.Range[myfunc.GetExcelPos(32, 0)].Value;
/*
string Tmp_DTSOR, Tmp_OGONOAF, Tmp_NGONOAF, Tmp_RPNOAF, Tmp_MRPNOAF;
string Tmp_WBSNO, Tmp_SEQOAF, Tmp_C_NM, Tmp_ES_NM, Tmp_NSN;
string Tmp_PN, Tmp_SEQOAF, Tmp_EIAC_CUS,Tmp_RBTHAF,Tmp_PRNRAF;
string Tmp_CRNRAF, Tmp_FREDTAF, Tmp_OSM, Tmp_EONO,, Tmp_CDCODE;
string Tmp_FRTP, Tmp_DLEMPLYID, Tmp_CREMPLYID, Tmp_MTEMPLYID, Tmp_NRCLAF;
string Tmp_QDRNO, Tmp_REMARK, Tmp_FACWC, Tmp_NEMPID, Tmp_LGROUP;
string Tmp_ISSN, Tmp_MCODE, Tmp_PJDT;
*/
//xls 欄位名稱有問題
if ((Tmp_DTSOR != "資料來源") || (Tmp_OGONOAF != "拆檢提領編號") || (Tmp_NGONOAF != "維修提領編號") || (Tmp_RPNOAF != "拆檢交修單號") || (Tmp_MRPNOAF != "維修約交修單號") ||
(Tmp_WBSNO != "WBS") || (Tmp_RQTYAF != "數量") || (!Tmp_C_NM.Contains("中文名稱")) || (Tmp_ES_NM != "英文簡稱") || (Tmp_NSN != "料號") ||
(Tmp_PN != "件號") || (Tmp_SEQOAF != "序號")|| (Tmp_EIAC_CUS != "機種") || (Tmp_RBTHAF != "接收批次") || (Tmp_PRNRAF != "預計拆檢完工日") ||
(Tmp_CRNRAF != "客戶拆檢需求日") || (Tmp_FREDTAF != "實際工廠接收日期")|| (!Tmp_OSM.Contains("OSM")) || (Tmp_EONO != "EO") || (Tmp_CDCODE != "情況碼") ||
(Tmp_FRTP != "工單類型") || (Tmp_DLEMPLYID != "發工人員")|| (Tmp_CREMPLYID != "管制人員") || (Tmp_MTEMPLYID != "維修人員") || (Tmp_NRCLAF != "拆檢結束日期") ||
(Tmp_QDRNO != "QDRNO") || (Tmp_REMARK != "AMM工單備註")|| (Tmp_FACWC != "承修工場") || (Tmp_NEMPID != "專案") || (Tmp_LGROUP != "群組") ||
(Tmp_ISSN != "是否序號管制") || (Tmp_MCODE != "保固或構改管制碼")|| (Tmp_PJDT != "專案需求日")
)
{
Tmp_RtnMsg = "匯入檔案欄位名稱必需如下:<br>";
//(Tmp_DTSOR != "資料來源") || (Tmp_OGONOAF != "拆檢提領編號") || (Tmp_NGONOAF != "維修提領編號") || (Tmp_RPNOAF != "拆檢交修單號") || (Tmp_MRPNOAF != "維修約交修單號") ||
if (Tmp_DTSOR != "資料來源")
Tmp_RtnMsg = Tmp_RtnMsg+"第1欄欄位名稱: [資料來源];";
if (Tmp_OGONOAF != "拆檢提領編號")
Tmp_RtnMsg = Tmp_RtnMsg + "第2欄欄位名稱: [拆檢提領編號];";
if (Tmp_NGONOAF != "維修提領編號")
Tmp_RtnMsg = Tmp_RtnMsg + "第3欄欄位名稱: [維修提領編號];";
if (Tmp_RPNOAF != "拆檢交修單號")
Tmp_RtnMsg = Tmp_RtnMsg + "第4欄欄位名稱: [拆檢交修單號];";
if (Tmp_MRPNOAF != "維修約交修單號")
Tmp_RtnMsg = Tmp_RtnMsg + "第5欄欄位名稱: [維修約交修單號];";
//(Tmp_WBSNO != "WBS") || (Tmp_RQTYAF != "數量") || (!Tmp_C_NM.Contains("中文名稱")) || (Tmp_ES_NM != "英文簡稱") || (Tmp_PRNRAF != "保管人") || (Tmp_NSN != "料號") ||
if (Tmp_WBSNO != "WBS")
Tmp_RtnMsg = Tmp_RtnMsg + "第6欄欄位名稱: [WBS];";
if (Tmp_RQTYAF != "數量")
Tmp_RtnMsg = Tmp_RtnMsg + "第7欄欄位名稱: [數量];";
if (!Tmp_C_NM.Contains("中文名稱"))
Tmp_RtnMsg = Tmp_RtnMsg + "第8欄欄位名稱: [中文名稱];";
if (Tmp_ES_NM != "英文簡稱")
Tmp_RtnMsg = Tmp_RtnMsg + "第9欄欄位名稱: [英文簡稱];";
if (Tmp_NSN != "料號")
Tmp_RtnMsg = Tmp_RtnMsg + "第10欄欄位名稱: [料號];";
//(Tmp_PN != "件號") || (Tmp_SEQOAF != "序號")|| (Tmp_EIAC_CUS != "機種") || (Tmp_RBTHAF != "接收批次") || (Tmp_PRNRAF != "預計拆檢完工日") ||
if (Tmp_PN != "件號")
Tmp_RtnMsg = Tmp_RtnMsg + "第11欄欄位名稱: [件號];";
if (Tmp_SEQOAF != "序號")
Tmp_RtnMsg = Tmp_RtnMsg + "第12欄欄位名稱: [序號];";
if (Tmp_EIAC_CUS != "機種")
Tmp_RtnMsg = Tmp_RtnMsg + "第13欄欄位名稱: [機種];";
if (Tmp_RBTHAF != "接收批次")
Tmp_RtnMsg = Tmp_RtnMsg + "第14欄欄位名稱: [接收批次];";
if (Tmp_PRNRAF != "預計拆檢完工日")
Tmp_RtnMsg = Tmp_RtnMsg + "第15欄欄位名稱: [預計拆檢完工日];";
//(Tmp_CRNRAF != "客戶拆檢需求日") || (Tmp_FREDTAF != "實際工廠接收日期") || (!Tmp_OSM.Contains("OSM")) || (Tmp_EONO != "EO") || (Tmp_CDCODE != "情況碼") ||
if (Tmp_CRNRAF != "客戶拆檢需求日")
Tmp_RtnMsg = Tmp_RtnMsg + "第16欄欄位名稱: [客戶拆檢需求日];";
if (Tmp_FREDTAF != "實際工廠接收日期")
Tmp_RtnMsg = Tmp_RtnMsg + "第17欄欄位名稱: [實際工廠接收日期];";
if (!Tmp_OSM.Contains("OSM"))
Tmp_RtnMsg = Tmp_RtnMsg + "第18欄欄位名稱: [OSM];";
if (Tmp_EONO != "EO")
Tmp_RtnMsg = Tmp_RtnMsg + "第19欄欄位名稱: [EO];";
if (Tmp_CDCODE != "情況碼")
Tmp_RtnMsg = Tmp_RtnMsg + "第20欄欄位名稱: [情況碼];";
//(Tmp_FRTP != "工單類型") || (Tmp_DLEMPLYID != "發工人員") || (Tmp_CREMPLYID != "管制人員") || (Tmp_MTEMPLYID != "維修人員") || (Tmp_NRCLAF != "拆檢結束日期") ||
if (Tmp_FRTP != "工單類型")
Tmp_RtnMsg = Tmp_RtnMsg + "第21欄欄位名稱: [工單類型];";
if (Tmp_DLEMPLYID != "發工人員")
Tmp_RtnMsg = Tmp_RtnMsg + "第22欄欄位名稱: [發工人員];";
if (Tmp_CREMPLYID != "管制人員")
Tmp_RtnMsg = Tmp_RtnMsg + "第23欄欄位名稱: [管制人員];";
if (Tmp_MTEMPLYID != "維修人員")
Tmp_RtnMsg = Tmp_RtnMsg + "第24欄欄位名稱: [維修人員];";
if (Tmp_NRCLAF != "拆檢結束日期")
Tmp_RtnMsg = Tmp_RtnMsg + "第25欄欄位名稱: [拆檢結束日期];";
//(Tmp_QDRNO != "QDRNO") || (Tmp_REMARK != "AMM工單備註")|| (Tmp_FACWC != "承修工場") || (Tmp_NEMPID != "專案") || (Tmp_LGROUP != "群組") ||
if (Tmp_QDRNO != "QDRNO")
Tmp_RtnMsg = Tmp_RtnMsg + "第26欄欄位名稱: [QDRNO];";
if (Tmp_REMARK != "AMM工單備註")
Tmp_RtnMsg = Tmp_RtnMsg + "第27欄欄位名稱: [AMM工單備註];";
if (Tmp_FACWC != "承修工場")
Tmp_RtnMsg = Tmp_RtnMsg + "第28欄欄位名稱: [承修工場];";
if (Tmp_NEMPID != "專案")
Tmp_RtnMsg = Tmp_RtnMsg + "第29欄欄位名稱: [專案];";
if (Tmp_LGROUP != "群組")
Tmp_RtnMsg = Tmp_RtnMsg + "第30欄欄位名稱: [群組];";
// (Tmp_ISSN != "是否序號管制") || (Tmp_MCODE != "保固或構改管制碼")|| (Tmp_PJDT != "專案需求日")
if (Tmp_ISSN != "是否序號管制")
Tmp_RtnMsg = Tmp_RtnMsg + "第31欄欄位名稱: [是否序號管制];";
if (Tmp_MCODE != "保固或構改管制碼")
Tmp_RtnMsg = Tmp_RtnMsg + "第32欄欄位名稱: [保固或構改管制碼];";
if (Tmp_PJDT != "專案需求日")
Tmp_RtnMsg = Tmp_RtnMsg + "第33欄欄位名稱: [專案需求日];";
//Tmp_RtnMsg = "匯入檔案欄位名稱必需如下:<br>"
// + "\"資料來源\",\"拆檢提領編號\",\"維修提領編號\",\"拆檢交修單號\",\"維修約交修單號\",<br>"
// + "\"WBS\",\"數量\",\"中文名稱(SAP勞務內容)\",\"英文簡稱\",\"料號\",<br>"
// + "\"件號\",\"序號\",\"機種\",\"接收批次\",\"預計拆檢完工日\",<br>"
// + "\"客戶拆檢需求日\",\"實際工廠接收日期\",\"SAP OSM\",\"EO\",\"情況碼\",<br>"
// + "\"工單類型\",\"發工人員\",\"管制人員\",\"維修人員\",\"拆檢結束日期\",<br>"
// + "\"QDRNO\",\"AMM工單備註\",\"承修工場\",\"專案\",\"群組\",<br>"
// + "\"是否序號管制\",\"保固或構改管制碼\",\"專案需求日\"<br>"
// + " 敬請檢核";
Tmp_Str = "{success: false,FName:" + myfunc.AA(FName) + ",Rtn_Msg:" + myfunc.AA(Tmp_RtnMsg) + "}";
response.Content = new StringContent(Tmp_Str); // 回應內容
return response;
};
int Tmp_index;
//STEP2 檢核 xls 欄位值
Tmp_RtnMsg = "";
for (int i = 0; i < RowsCount; i++)
{
Tmp_RtnMsg1 = "";
Tmp_curpos = i + 1;
Tmp_DTSOR = sheet1.Range[myfunc.GetExcelPos(0, i + 1)].Value;
if (myfunc.checkisnull(Tmp_DTSOR))
{
break;
//Tmp_RtnMsg1 = Tmp_RtnMsg1 + "[資料來源]欄位值不可空白;";
}
Tmp_OGONOAF = sheet1.Range[myfunc.GetExcelPos(1, i + 1)].Value;
Tmp_NGONOAF = sheet1.Range[myfunc.GetExcelPos(2, i + 1)].Value;
Tmp_RPNOAF = sheet1.Range[myfunc.GetExcelPos(3, i + 1)].Value;
Tmp_MRPNOAF = sheet1.Range[myfunc.GetExcelPos(4, i + 1)].Value;
Tmp_WBSNO = sheet1.Range[myfunc.GetExcelPos(5, i + 1)].Value;
Tmp_RQTYAF = sheet1.Range[myfunc.GetExcelPos(6, i + 1)].Value;
Tmp_C_NM = sheet1.Range[myfunc.GetExcelPos(7, i + 1)].Value;
Tmp_ES_NM = sheet1.Range[myfunc.GetExcelPos(8, i + 1)].Value;
Tmp_NSN = sheet1.Range[myfunc.GetExcelPos(9, i + 1)].Value;
Tmp_PN = sheet1.Range[myfunc.GetExcelPos(10, i + 1)].Value;
Tmp_SEQOAF = sheet1.Range[myfunc.GetExcelPos(11, i + 1)].Value;
Tmp_EIAC_CUS = sheet1.Range[myfunc.GetExcelPos(12, i + 1)].Value;
Tmp_RBTHAF = sheet1.Range[myfunc.GetExcelPos(13, i + 1)].Value;
Tmp_PRNRAF = sheet1.Range[myfunc.GetExcelPos(14, i + 1)].Value;
Tmp_CRNRAF = sheet1.Range[myfunc.GetExcelPos(15, i + 1)].Value;
Tmp_FREDTAF = sheet1.Range[myfunc.GetExcelPos(16, i + 1)].Value;
Tmp_OSM = sheet1.Range[myfunc.GetExcelPos(17, i + 1)].Value;
Tmp_EONO = sheet1.Range[myfunc.GetExcelPos(18, i + 1)].Value;
Tmp_CDCODE = sheet1.Range[myfunc.GetExcelPos(19, i + 1)].Value;
Tmp_FRTP = sheet1.Range[myfunc.GetExcelPos(20, i + 1)].Value;
Tmp_DLEMPLYID = sheet1.Range[myfunc.GetExcelPos(21, i + 1)].Value;
Tmp_CREMPLYID = sheet1.Range[myfunc.GetExcelPos(22, i + 1)].Value;
Tmp_MTEMPLYID = sheet1.Range[myfunc.GetExcelPos(23, i + 1)].Value;
Tmp_NRCLAF = sheet1.Range[myfunc.GetExcelPos(24, i + 1)].Value;
Tmp_QDRNO = sheet1.Range[myfunc.GetExcelPos(25, i + 1)].Value;
Tmp_REMARK = sheet1.Range[myfunc.GetExcelPos(26, i + 1)].Value;
Tmp_FACWC = sheet1.Range[myfunc.GetExcelPos(27, i + 1)].Value;
Tmp_NEMPID = sheet1.Range[myfunc.GetExcelPos(28, i + 1)].Value;
Tmp_LGROUP = sheet1.Range[myfunc.GetExcelPos(29, i + 1)].Value;
Tmp_ISSN = sheet1.Range[myfunc.GetExcelPos(30, i + 1)].Value;
Tmp_MCODE = sheet1.Range[myfunc.GetExcelPos(31, i + 1)].Value;
Tmp_PJDT = sheet1.Range[myfunc.GetExcelPos(32, i + 1)].Value;
//if (Tmp_curpos == 290)
//{
// Tmp_Str = " 第 290筆資料";
//};
//將日期轉成 yyyy/MM/dd 格式, 若非日期格式,則傳回 ""
Tmp_PRNRAF = myfunc.DatetoStr(Tmp_PRNRAF);
Tmp_CRNRAF = myfunc.DatetoStr(Tmp_CRNRAF);
Tmp_NRCLAF = myfunc.DatetoStr(Tmp_NRCLAF);
Tmp_FREDTAF = myfunc.DatetoStr(Tmp_FREDTAF);
//檢核 1: 欄位值不可空白 - 資料來源、WBS、數量、序號、機種、工單類型、是否序號管制
if (myfunc.checkisnull(Tmp_WBSNO))
{
Tmp_RtnMsg1 = Tmp_RtnMsg1 + "[WBS]不可空白;";
}
if (myfunc.checkisnull(Tmp_RQTYAF))
{
Tmp_RtnMsg1 = Tmp_RtnMsg1 + "[數量]不可空白;";
}
if (myfunc.checkisnull(Tmp_SEQOAF))
{
Tmp_RtnMsg1 = Tmp_RtnMsg1 + "[序號]不可空白;";
}
if (myfunc.checkisnull(Tmp_EIAC_CUS))
{
Tmp_RtnMsg1 = Tmp_RtnMsg1 + "[機種]不可空白;";
}
if (myfunc.checkisnull(Tmp_FRTP))
{
Tmp_RtnMsg1 = Tmp_RtnMsg1 + "[工單類型]不可空白;";
}
if (myfunc.checkisnull(Tmp_ISSN))
{
Tmp_RtnMsg1 = Tmp_RtnMsg1 + "[是否序號管制]不可空白;";
}
if (Tmp_PN.Substring(0,2)=="R=")
if (Tmp_FRTP!="DT03")
{
Tmp_RtnMsg1 = Tmp_RtnMsg1 + "件號以[R=]開頭,則工單類別必需為[DT03];";
}
if ( (!myfunc.checkisnull(Tmp_EONO)) && (!myfunc.checkisnull(Tmp_OSM)) )
Tmp_RtnMsg1 = Tmp_RtnMsg1 + "[EO]及 [SAP OSM] 不可均有值;";
if ( (!myfunc.checkisnull(Tmp_CDCODE)) && (!myfunc.checkisnull(Tmp_OSM)) )
Tmp_RtnMsg1 = Tmp_RtnMsg1 + "[情況碼]及 [SAP OSM] 不可均有值;";
if (!myfunc.checkisnum(Tmp_DLEMPLYID))
Tmp_RtnMsg1 = Tmp_RtnMsg1 + "[發工人員] 必需為員工編號,非姓名;";
if (!myfunc.checkisnum(Tmp_CREMPLYID))
Tmp_RtnMsg1 = Tmp_RtnMsg1 + "[管制人員] 必需為員工編號,非姓名;";
if (!myfunc.checkisnum(Tmp_MTEMPLYID))
Tmp_RtnMsg1 = Tmp_RtnMsg1 + "[維修人員] 必需為員工編號,非姓名;";
if (Tmp_MCODE.Substring(0, 1) == "C")
if (myfunc.checkisnull(Tmp_PJDT))
{
Tmp_RtnMsg1 = Tmp_RtnMsg1 + "[保固或構改管制碼]='C',則[專案需求日]不可空白;";
}
if (Tmp_RtnMsg1.Length > 0)
Tmp_RtnMsg = Tmp_RtnMsg
+"第" + Tmp_curpos.ToString() + "行欄位值錯誤, 請檢核:<br>"
+ Tmp_RtnMsg1
+"<br>";
} //end for
if (Tmp_RtnMsg.Length>0)
{
Tmp_RtnMsg = "批次匯入失敗!!<br>"
+ Tmp_RtnMsg + "<br>";
//+ Tmp_Sql ;
//Tmp_Str = "{success: false,FName:" + myfunc.AA(FName) + ",Rtn_Msg:" + myfunc.AA(Tmp_RtnMsg) +",Tmp_Sql:"+ myfunc.AA(Tmp_Sql) +"}";
Tmp_Str = "{success: false,FName:" + myfunc.AA(FName) + ",Rtn_Msg:" + myfunc.AA(Tmp_RtnMsg) + "}";
response.Content = new StringContent(Tmp_Str); // 回應內容
return response;
}
//STEP3 寫入資料庫
Tmp_RtnMsg = "";
for (int i = 0; i < RowsCount; i++)
{
Tmp_curpos = i + 1;
Tmp_DTSOR = sheet1.Range[myfunc.GetExcelPos(0, i + 1)].Value;
if (myfunc.checkisnull(Tmp_DTSOR))
{
break;
//Tmp_RtnMsg = Tmp_RtnMsg + "[資料來源]欄位值不可空白";
}
Tmp_OGONOAF = sheet1.Range[myfunc.GetExcelPos(1, i + 1)].Value;
Tmp_NGONOAF = sheet1.Range[myfunc.GetExcelPos(2, i + 1)].Value;
Tmp_RPNOAF = sheet1.Range[myfunc.GetExcelPos(3, i + 1)].Value;
Tmp_MRPNOAF = sheet1.Range[myfunc.GetExcelPos(4, i + 1)].Value;
Tmp_WBSNO = sheet1.Range[myfunc.GetExcelPos(5, i + 1)].Value;
Tmp_RQTYAF = sheet1.Range[myfunc.GetExcelPos(6, i + 1)].Value;
Tmp_C_NM = sheet1.Range[myfunc.GetExcelPos(7, i + 1)].Value;
Tmp_ES_NM = sheet1.Range[myfunc.GetExcelPos(8, i + 1)].Value;
Tmp_NSN = sheet1.Range[myfunc.GetExcelPos(9, i + 1)].Value;
Tmp_PN = sheet1.Range[myfunc.GetExcelPos(10, i + 1)].Value;
Tmp_SEQOAF = sheet1.Range[myfunc.GetExcelPos(11, i + 1)].Value;
Tmp_EIAC_CUS = sheet1.Range[myfunc.GetExcelPos(12, i + 1)].Value;
Tmp_RBTHAF = sheet1.Range[myfunc.GetExcelPos(13, i + 1)].Value;
Tmp_PRNRAF = sheet1.Range[myfunc.GetExcelPos(14, i + 1)].Value;
Tmp_CRNRAF = sheet1.Range[myfunc.GetExcelPos(15, i + 1)].Value;
Tmp_FREDTAF = sheet1.Range[myfunc.GetExcelPos(16, i + 1)].Value;
Tmp_OSM = sheet1.Range[myfunc.GetExcelPos(17, i + 1)].Value;
Tmp_EONO = sheet1.Range[myfunc.GetExcelPos(18, i + 1)].Value;
Tmp_CDCODE = sheet1.Range[myfunc.GetExcelPos(19, i + 1)].Value;
Tmp_FRTP = sheet1.Range[myfunc.GetExcelPos(20, i + 1)].Value;
Tmp_DLEMPLYID = sheet1.Range[myfunc.GetExcelPos(21, i + 1)].Value;
Tmp_CREMPLYID = sheet1.Range[myfunc.GetExcelPos(22, i + 1)].Value;
Tmp_MTEMPLYID = sheet1.Range[myfunc.GetExcelPos(23, i + 1)].Value;
Tmp_NRCLAF = sheet1.Range[myfunc.GetExcelPos(24, i + 1)].Value;
Tmp_QDRNO = sheet1.Range[myfunc.GetExcelPos(25, i + 1)].Value;
Tmp_REMARK = sheet1.Range[myfunc.GetExcelPos(26, i + 1)].Value;
Tmp_FACWC = sheet1.Range[myfunc.GetExcelPos(27, i + 1)].Value;
Tmp_NEMPID = sheet1.Range[myfunc.GetExcelPos(28, i + 1)].Value;
Tmp_LGROUP = sheet1.Range[myfunc.GetExcelPos(29, i + 1)].Value;
Tmp_ISSN = sheet1.Range[myfunc.GetExcelPos(30, i + 1)].Value;
Tmp_MCODE = sheet1.Range[myfunc.GetExcelPos(31, i + 1)].Value;
Tmp_PJDT = sheet1.Range[myfunc.GetExcelPos(32, i + 1)].Value;
//if (Tmp_curpos == 290)
//{
// Tmp_Str = " 第 290筆資料";
//};
//將日期轉成 yyyy/MM/dd 格式, 若非日期格式,則傳回 ""
Tmp_PRNRAF = myfunc.DatetoStr(Tmp_PRNRAF);
Tmp_CRNRAF = myfunc.DatetoStr(Tmp_CRNRAF);
Tmp_NRCLAF = myfunc.DatetoStr(Tmp_NRCLAF);
Tmp_FREDTAF = myfunc.DatetoStr(Tmp_FREDTAF);
Tmp_PJDT = myfunc.DatetoStr(Tmp_PJDT);
Tmp_STATFM = "A";
Tmp_BTDT= DateTime.Now.ToString("yyyy/MM/dd");
Tmp_MDDT = DateTime.Now.ToString("yyyy/MM/dd");
Tmp_FMNO = get_NEXT_FMNO1();
Tmp_Sql = " INSERT INTO AMM_FM "
+ " ( FMNO,"
+ " DTSOR, OGONOAF, NGONOAF, RPNOAF, MRPNOAF,"
+ " WBSNO, RQTYAF, C_NM, ES_NM, NSN, "
+ " PN, SEQOAF, EIAC_CUS,RBTHAF,PRNRAF, "
+ " CRNRAF, FREDTAF, OSM, EONO, CDCODE, "
+ " FRTP, DLEMPLYID, CREMPLYID, MTEMPLYID, NRCLAF, "
+ " QDRNO, REMARK, FACWC, NEMPID, LGROUP, "
+ " ISSN, MCODE, PJDT , STATFM, BTDT, "
+" MDDT"
+ ") "
+ " VALUES "
+ "(" + myfunc.AA(Tmp_FMNO) + ","
+ myfunc.AA(Tmp_DTSOR) + ","+ myfunc.AA(Tmp_OGONOAF) + "," + myfunc.AA(Tmp_NGONOAF) + "," + myfunc.AA(Tmp_RPNOAF) + "," + myfunc.AA(Tmp_MRPNOAF) + ", "
+ myfunc.AA(Tmp_WBSNO) + "," + myfunc.AA(Tmp_RQTYAF) + "," + myfunc.AA(Tmp_C_NM) + "," + myfunc.AA(Tmp_ES_NM) + "," + myfunc.AA(Tmp_NSN) + ", "
+ myfunc.AA(Tmp_PN) + "," + myfunc.AA(Tmp_SEQOAF) + "," + myfunc.AA(Tmp_EIAC_CUS) + "," + myfunc.AA(Tmp_RBTHAF) + "," + myfunc.AA(Tmp_PRNRAF) + ", "
+ myfunc.AA(Tmp_CRNRAF) + "," + myfunc.AA(Tmp_FREDTAF) + "," + myfunc.AA(Tmp_OSM) + "," + myfunc.AA(Tmp_EONO) + "," + myfunc.AA(Tmp_CDCODE) + ", "
+ myfunc.AA(Tmp_FRTP) + "," + myfunc.AA(Tmp_DLEMPLYID) + "," + myfunc.AA(Tmp_CREMPLYID) + "," + myfunc.AA(Tmp_MTEMPLYID) + "," + myfunc.AA(Tmp_NRCLAF) + ", "
+ myfunc.AA(Tmp_QDRNO) + "," + myfunc.AA(Tmp_REMARK) + "," + myfunc.AA(Tmp_FACWC) + "," + myfunc.AA(Tmp_NEMPID) + "," + myfunc.AA(Tmp_LGROUP) + ", "
+ myfunc.AA(Tmp_ISSN) + "," + myfunc.AA(Tmp_MCODE) + "," + myfunc.AA(Tmp_PJDT) +","+ myfunc.AA(Tmp_STATFM)+"," + myfunc.AA(Tmp_BTDT) +","
+ myfunc.AA(Tmp_MDDT)
+ ") ";
myfunc.SqlExec(Tmp_Sql);
};
Tmp_RtnMsg = "匯入成功!!";
Tmp_Str = "{success: true,FName:" + myfunc.AA(FName) + ",Rtn_Msg:" + myfunc.AA(Tmp_RtnMsg) + "}";
response.Content = new StringContent(Tmp_Str); // 回應內容
return response;
}// try
catch (Exception e)
{ //失敗
Tmp_RtnMsg = "批次匯入失敗!!<br>"
+ "第" + Tmp_curpos.ToString() + "筆資料<br>"
+ e.Message + "<br>";
//+ Tmp_Sql ;
//Tmp_Str = "{success: false,FName:" + myfunc.AA(FName) + ",Rtn_Msg:" + myfunc.AA(Tmp_RtnMsg) +",Tmp_Sql:"+ myfunc.AA(Tmp_Sql) +"}";
Tmp_Str = "{success: false,FName:" + myfunc.AA(FName) + ",Rtn_Msg:" + myfunc.AA(Tmp_RtnMsg) + "}";
response.Content = new StringContent(Tmp_Str); // 回應內容
return response;
}
} //end of foreach (string cur_FName in Request.Files)
return response;
} // end of uploadFileToDB()
沒有留言:
張貼留言