2025年11月17日 星期一

V20201K – 排程資料匯出 – 套表 - 全部匯出(含CaluField) - New

 目的: V20201K – 排程資料匯出 套表 - 全部匯出(CaluField)

處理說明:  1>*.js  匯出所有的資料
                         Ext.Ajax.request({
                            url: '../api/V20201API/getGridData_M?par_paging=false',
                            method: 'POST',
                            params: { all: 1 },
                            async: false, //將非同步功能關閉
                            failure: function (response, opts) {},
                            success: function (response, opts) {
                                  let Tmp_DataAry1 = [];
                                  var obj = Ext.decode(response.responseText);
                                  obj.T1.forEach(function (item, i) {
                                           Tmp_DataAry1.push(item);
                                  });
                                CALL_V20201K(Tmp_DataAry1); //排程資料匯出
                        }
                        });

                  2>*.cs  - 套表
public void XLSOUT()
        {           
            // 1>將 SS_FILES.FBOLD 存成 Local檔案
            //取得目前子畫面的欄位值
            string Tmp_DataString1 = nvc["DataString1"];    //Tmp_DataString:  將目前子畫面的資料. 

            //將 table 字串轉成 DataTable
            DataTable dt1 = myfunc.JSON2dt(Tmp_DataString1);
            int Tmp_cnt1 = dt1.Rows.Count;
          
            string Tmp_FName = "V20201_排程資料匯出格式.xlsx";      //套表的檔案名稱 , 
            //documentPath = c:\\inetpub\wwwroot\TLS5\TLSWEB_AMM5\document\
            string documentPath = HttpContext.Current.Server.MapPath("~") + "document\\"; 
            string Tmp_pFName = documentPath + Tmp_FName;
            //需要擷取大量資料時,DataReader 是很好的選擇,因為資料不會快取至記憶體。
            //OracleDataReader reader;
            FileStream fs = null;
            Workbook wk = null;

              string Tmp_FName1 = "V20305_物料清單匯出_" + DateTime.Now.ToString("yyyyMMdd") + ".xlsx";
            string Tmp_pFName1 = documentPath + Tmp_FName1;
            MemoryStream mstream = new MemoryStream();
            HttpCookie MyCookie;
            int row = 0;            
            try
            {
                // 取得 Template SS_FILES 
                fs = myfunc.get_SS_FILES(Tmp_FName);
                wk = new Workbook();
                wk.LoadFromStream(fs);

},



1>*.js
{
xtype: 'button', text: '排程資料匯出', id: 'btn_V202K',
iconCls: 'icon-article',
disabled: false,
listeners: {
click: function () {
//將 所有資料.PK 加入 CHK_PK_OBJ.PK_LIST
Ext.Ajax.request({
url: '../api/V20201API/getGridData_M?par_paging=false',

method: 'POST',
params: { all: 1 },
async: false, //將非同步功能關閉
failure: function (response, opts) {
},
success: function (response, opts) {
let Tmp_DataAry1 = [];
var obj = Ext.decode(response.responseText);
obj.T1.forEach(function (item, i) {
Tmp_DataAry1.push(item);
});

CALL_V20201K(Tmp_DataAry1); //排程資料匯出
}
});
},
},
},


function CALL_V20201K(par_DataAry1) {
var Tmp_Grid = Ext.getCmp('grid_M');
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 = [];
Tmp_DataAry1 = par_DataAry1;
var Tmp_Str = "";
//將目前子畫面的資料(Table)轉成 JSON字串
let Tmp_DataString1 = JSON.stringify(Tmp_DataAry1);
//因為[備註]欄位 有/n .. 等特殊字元 , JSON.stringify 會 Error
var np = {};
np = {
      DataString1: Tmp_DataString1,
};
Ext.getCmp('s_form').submit({
url: '../../api/V20201KAPI/XLSOUT',
method: 'POST',
async: false,
standardSubmit: true, //若要傳送檔案至前端, standardSubmit必需設為 true
params: np,
});

//顯示結果訊息..
var mask = new Ext.LoadMask(Ext.getBody(), {
      msg: '處理中,請稍待...'
});

mask.show();
//使用 mask 需手動呼叫show() 方法下
//每1秒檢核一次,是否已完成, 若已完成,則不再檢核
var timer = setInterval(function () {
var r = r_cookies('Rtn_Msg');
if (!checkisnull(r)) {
mysuccessalert(r);
clearInterval(timer);
mask.hide();
timer = null;
}
}, 1000); //1000ms = 1sec


沒有留言:

張貼留言