2026年6月9日 星期二

V1060305A – 結案 *.js – StrExtract函式在myfunc.js 及 V_UTIL.js 均有宣告 - 函式名稱重複宣告

 目的: V1060305A – 結案 *.js – StrExtract函式在myfunc.js V_UTIL.js 均有宣告
                       *.js  會呼叫最後載入的 StrExtract 函式

處理說明:  1>將myfunc.js 的 StrExtract  改名為 StrExtract1 , 避免呼叫到  V_UTIL.js 的函式
                                            導致錯誤
                                     2>myfunc.js    StrExtract  傳回字串
                                     3>V_UTIL.js     StrExtract  傳回Array
                   2>一般畫面(V30702A.js)  開頭程式時,都會先載入  myfunc.js(最後載入)
                       --> 所以會呼叫到  myfunc.js 的  StrExtract 函式 ,  非  V_UTIL.js 函式
                       --> 所以不會 Error 
                   3>myfunc.js  的 DATE_ADD 函式,呼叫  StrExtract 函式
                       --> 則可能會呼叫到  V_UTIL.js 的 StrExtract 函式
                       --> 因為 myfunc.js 載入時, 
                             不可再 Ext.Loader.loadScript({    url: '../Scripts/myfunc.js'});


1>*.js
var Tmp_L_CHKCHG_DT = nulltoStr(par_rec.data['L_CHKCHG_DT']).toString();
var Tmp_L_CHKCHG_DT2 = DATE_ADD(Tmp_L_CHKCHG_DT, Tmp_TMUNIT, Tmp_TMFEQ);

function DATE_ADD(par_DT, par_UNIT,par_VAL) {
    var Tmp_YYYY, Tmp_MM, Tmp_DD;
    var Tmp_YYYY1, Tmp_MM1, Tmp_DD1;
    var Tmp_ADD_YY1, Tmp_ADD_MM1;
    var Tmp_DT = DatetoStr(par_DT, "Y/m/d");    
    Tmp_YYYY = Number(StrExtract1(Tmp_DT, 1, "/"));
    Tmp_MM = Number(StrExtract1(Tmp_DT, 2, "/"));
    Tmp_DD = Number(StrExtract1(Tmp_DT, 3, "/"));
    Tmp_YYYY1 = Tmp_YYYY; Tmp_MM1 = Tmp_MM; Tmp_DD1 = Tmp_DD;
    switch (par_UNIT) {
        case "A":  //年
        {
            Tmp_YYYY1 = Tmp_YYYY + parseInt(par_VAL);
            break;
        }
        case "B":  //月
            {
                Tmp_MM1 = Tmp_MM + parseInt(par_VAL);
                Tmp_ADD_YY1 = Math.trunc((Tmp_MM1) / 12);  //取商數
                Tmp_YYYY1 = Tmp_YYYY + Tmp_ADD_YY1;
                Tmp_MM1 = Math.trunc((Tmp_MM1) % 12);  //取餘數
                break;
            }
        case "C":  //天
            {
                //日期函式 Tmp_DT.setDate( )  ; 日期不對  
                //Tmp_DD1 = Tmp_DD1 + par_VAL;                
                var Tmp_DT = new Date(par_DT);
                var Tmp_DD = Tmp_DT.getDate();
                //console.log("2 Tmp_DT:", Tmp_DT);
                //Tmp_DD 及 par_VAL 必需先轉成數值,才可以累加
                Tmp_DT.setDate(parseInt(Tmp_DD) + parseInt(par_VAL));   
                //console.log("3 Tmp_DT.setDate():", Tmp_DT);
                Tmp_YYYY1 = Tmp_DT.getFullYear();   // 年份 (例如 2026)
                Tmp_MM1 = Tmp_DT.getMonth() + 1; // 月份 (0~11,要 +1 才是正常月份)
                Tmp_DD1 = Tmp_DT.getDate();        // 日期 (1~31)                
                break;
            }
    }// end of switch (par_UNIT)    
    return Tmp_YYYY1.toString().padStart(4, "0") + "/" + Tmp_MM1.toString().padStart(2, "0") + "/" + Tmp_DD1.toString().padStart(2, "0");
}  // end of  function DATE_ADD(par_DT, par_UNIT,par_VAL) {

沒有留言:

張貼留言