目的: 傳送檔案至前端 - 若有錯誤(Exception),則顯示錯誤訊息
處理說明: 1>*.cs ,
將錯誤訊息加入 Cookie & HttpContext.Current.ApplicationInstance.CompleteRequest();
catch (Exception e)
{
var Tmp_ErrMsg = e.Message;
//包裝標籤檔產生完成
Tmp_Str = "產生包裝匯出檔案失敗<br>"
+ Tmp_ErrMsg;
MyCookie = new HttpCookie("EX_DFile", HttpUtility.UrlEncode(Tmp_Str));
HttpContext.Current.Response.Cookies.Add(MyCookie);
HttpContext.Current.ApplicationInstance.CompleteRequest();
return;
}
1>*.js
//查詢 - 將目前所選的資料,匯出成報表
function LookBtn_click() {
var Tmp_Grid = Ext.getCmp('grid_Single');
var cur_recs,cur_rec;
var Tmp_SAPNO, Tmp_PN, Tmp_QTY, Tmp_EOCND, Tmp_RMK;
var Tmp_data_JSON = ""; //將store資料轉成 JSON 的字串
var Tmp_sub_np = {};
let Tmp_DataAry1 = [];
var Tmp_Str = "";
cur_recs = Tmp_Grid.getView().selModel.getSelection();
//console.log("cur_recs:", cur_recs);
if (cur_recs.length == 0) {
mywarnalert("請先選擇要查詢的資料");
return;
}
for (var i = 0; i < cur_recs.length; i++) {
cur_rec = cur_recs[i];
//console.log(Tmp_Str + "cur_rec:", cur_rec);
Tmp_DataAry1.push(cur_rec.data);
}
//console.log("Tmp_DataAry1:", Tmp_DataAry1);
// 將目前子畫面的資料(Table)轉成 JSON字串
let Tmp_DataString1 = JSON.stringify(Tmp_DataAry1);
//console.log("Tmp_DataString1:", Tmp_DataString1);
var np = {};
np = {
DataString1: Tmp_DataString1,
};
Ext.getCmp('s_form').submit({
//Ext.Ajax.request({
url: '../../api/V20306API/DoPRNLIST',
method: 'POST',
async: false,
standardSubmit: true, //若要傳送檔案至前端, standardSubmit必需設為 true
params: np,
});
//顯示結果訊息..
var mask = new Ext.LoadMask(Ext.getBody(), {
msg: '處理中,請稍待...'
});
mask.show();//使用 mask 需手動呼叫show() 方法下
var timer = setInterval(function () {
clearInterval(timer);
mask.hide();
timer = null;
var r = r_cookies('EX_DFile');
//console.log("r_cookies=", r);
if (!checkisnull(r)) {
mysuccessalert(r);
}
}, 5000); //3000ms = 3sec
} // end of function LookBtn_click() {
2>*.cs - HttpContext.Current.ApplicationInstance.CompleteRequest();
HttpCookie MyCookie;
try
{
}
catch (Exception e) {
var Tmp_ErrMsg = e.Message;
//包裝標籤檔產生完成
Tmp_Str = "產生包裝匯出檔案失敗<br>"
+ Tmp_ErrMsg;
MyCookie = new HttpCookie("EX_DFile", HttpUtility.UrlEncode(Tmp_Str));
HttpContext.Current.Response.Cookies.Add(MyCookie);
HttpContext.Current.ApplicationInstance.CompleteRequest();
return;
}
finally
{
wk.Dispose();
conn.Close();
}
HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=\"" + HttpUtility.UrlEncode((string)FileName, System.Text.Encoding.UTF8) + "\"");
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;
HttpContext.Current.Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
HttpContext.Current.Response.BinaryWrite(mstream.ToArray());
//包裝標籤檔產生完成
Tmp_Str = "產生包裝匯出檔案成功<br>"
+ "(" + FileName + ")<br>";
MyCookie = new HttpCookie("EX_DFile", HttpUtility.UrlEncode(Tmp_Str));
HttpContext.Current.Response.Cookies.Add(MyCookie);
HttpContext.Current.Response.End();