2025年3月20日 星期四

Web V20301 – 複製 -目前勾選的資料, 非目前所在資料 - 移除原本Template eventhandler - 複製 Array -跳至最後一頁

 目的: Web V20301 – 複製 -目前勾選的資料, 非目前所在資料

處理說明:1>將[複製]鈕 - Template 程式. disable
                     Ext.getCmp('btn_copy').setVisible(true);
                     Ext.getCmp('btn_copy').setText("複製");
             Ext.getCmp('btn_copy').un("click", Ext.getCmp('btn_copy').events.click.listeners[0].fn);

                2>處理勾選的資料s
                     if (CHK_PK_OBJ.PK_LIST.length == 0) {
                          buttonModel.modelType = 0;
                          mywarnalert('請先勾選要複製的資料!!');
                   }
                   else {
                    copy_recs = Array.from(CHK_PK_OBJ.ALL_LIST);
                    for (let i = 0; i <= CHK_PK_OBJ.PK_LIST.length - 1; i++) {
                        console.log("i:", i);                        
                        copy_rec = copy_recs[i];
                        Tmp_NEXT_FMNO = get_NEXT_FMNO();
                        var Tmp_cur_DT = DatetoStr(now, "Y/m/d");
                        var Tmp_MDDT = DatetoStr(copy_rec["MDDT"], "Y/m/d");
                        copy_rec["FMNO"]=Tmp_NEXT_FMNO;                        

               3>複製後,停留在最新的一筆資料           
                    gridstore.on('load', function (me, records, successful, eOpts) {
                        var Tmp_index = gridstore.find("FMNO", Tmp_NEXT_FMNO);
                        var sel_rec = gridstore.getAt(Tmp_index);
                        Ext.getCmp('grid_Single').getView().getSelectionModel().select(sel_rec);
                        //locate 後, reset load function 
   gridstore.un("load", gridstore.events.load.listeners[gridstore.events.load.listeners.length-1].fn);
                    })  // end of Ext.getCmp('grid_Single')..on("load")
    



1>*.js

Ext.getCmp("btn_copy").on('click', function (me, e, eOpts) {
        //原始的Grid 選擇資料
         //var cur_recs = Ext.getCmp('grid_Single').getSelectionModel().getSelection();
        var cur_recs = [];
        var cur_rec;
        console.log("before copy_rec");
        var copy_recs,copy_rec;  //?? 如何產生另一 copy_rec 不和 cur_rec 相同
        var np = {};
        if (CHK_PK_OBJ.PK_LIST.length == 0) {
            buttonModel.modelType = 0;
            mywarnalert('請先勾選要複製的資料!!');
        }
        else {
            me.delMessage = "確定複製勾選的資料嗎?";
            Ext.Msg.confirm('提醒', me.delMessage, callBackFunc);
            function callBackFunc(id) {
                if (id == 'yes') {
                    gridstore.on('load', function (me, records, successful, eOpts) {
                        var Tmp_index = gridstore.find("FMNO", Tmp_NEXT_FMNO);
                        console.log("Tmp_index:", Tmp_index);
                        var sel_rec = gridstore.getAt(Tmp_index);
                        console.log("sel_rec:", sel_rec);
                        Ext.getCmp('grid_Single').getView().getSelectionModel().select(sel_rec);
                        console.log("gridstore.events:", gridstore.events);
    gridstore.un("load", gridstore.events.load.listeners[gridstore.events.load.listeners.length-1].fn);
                    })  // end of Ext.getCmp('grid_Single')..on("load")
                    console.log("cur_recs.length:", cur_recs.length);
                    //複製 新的  Array , 不覆蓋原本的 Array
                    copy_recs = Array.from(CHK_PK_OBJ.ALL_LIST);
                    for (let i = 0; i <= CHK_PK_OBJ.PK_LIST.length - 1; i++) {
                        copy_rec = copy_recs[i];
                        Tmp_NEXT_FMNO = get_NEXT_FMNO();
                        var Tmp_cur_DT = DatetoStr(now, "Y/m/d");
                        //var Tmp_MDDT = DatetoStr(copy_rec.data["MDDT"], "Y/m/d");
                        var Tmp_MDDT = DatetoStr(copy_rec["MDDT"], "Y/m/d");
                        console.log("Tmp_NEXT_FMNO:", Tmp_NEXT_FMNO);
                        copy_rec["FMNO"]=Tmp_NEXT_FMNO;                        
                        copy_rec["BTDT"] = Tmp_cur_DT;        
                        copy_rec["MDDT"] = Tmp_cur_DT;        
                        copy_rec["STATFM"] = "A";        
                        copy_rec["DTSOR"] = "A";        
                        copy_rec["OSM"] = "";                    
                        copy_rec["PAMMNO"] = "";                    
                        copy_rec["FRNOAF"] = "";                    
                        //新增資料庫資料
                        Copy_FMNO(copy_rec);
                    } //  end of for (let i=0,)                    
                    //因為複製後, 按[顯示資料]鈕, 並不會顯示刪才新增的資料,& Local 新增的資料                    
                    Ext.getCmp('btn_Show').fireHandler();
                    Ext.getCmp('grid_Single').getView().refresh();
                    //跳至最後一頁
                    var Tmp_ptb = Ext.getCmp('grid_ptb');
                    Tmp_ptb.moveLast();                    
                    buttonModel.modelType = 0;
                }  // end    if (id == 'yes')             
            }  // end of callbackfunc
        }  //end of else {}       
    }
    );

沒有留言:

張貼留言