顯示具有 TXT 標籤的文章。 顯示所有文章
顯示具有 TXT 標籤的文章。 顯示所有文章

2023年11月2日 星期四

V80203 – 過濾條件– checkbox 後接著 text輸入欄位

 目的: V80203 – 工單需求物料查詢 – checkbox 後接著 text輸入欄位

處理說明:  1>利用 panel 當 container , 包含 checkbox + text 欄位


1>*.js
//預估到件率>xx
    var cmp_RT = get_cmp_panel1(0);
    var cmp_RT1 = get_cmp_chk1('預估到件率>', 's_RT', 80, 'Y','0 5 0 0');
    var cmp_RT2 = get_cmp_txt0('s_RT1', 30);
    cmp_RT.items.push(cmp_RT1,cmp_RT2);
    
//超過xx天
    var cmp_STARTDT = get_cmp_panel1(0);
    var cmp_STARTDT1 = get_cmp_chk1('超過', 's_START', 80, 'Y', '0 5 0 0');
    var cmp_STARTDT2 = get_cmp_txt0('s_STARTDT1', 30);
    var cmp_STARTDT3 = get_cmp_lbl0('天', 30);
    cmp_STARTDT.items.push(cmp_STARTDT1, cmp_STARTDT2, cmp_STARTDT3,);




2023年8月2日 星期三

V40AA – SAP工單狀態異動 – 傳回 TXT檔至前端 - dt2JSON - JSON2dt - Cookie - 勾選資料

 目的: V40A – [SAP工單狀態異動] 傳回 TXT檔至前端

處理說明: 1>將勾選的資料傳至後端  (JSON2dt)
                 2>後端開啟TXT檔案
                3>依每筆資料呼叫 WebService , 並將傳回訊息寫入檔案
                4>將TXT檔案   傳至前端
                5>將訊息加入 Cookie 




1>將勾選的資料傳至後端
   1>>*.js
                     var Tmp_DataAry = [];
                     var cur_rec;
                     for (let i = 0; i < CHK_PK_OBJ.PK_LIST.length; i++) {                        
                        cur_rec = CHK_PK_OBJ.ALL_LIST[i];
                        Tmp_DataAry.push(cur_rec);
                    }  // for i=0 to 
                    //將 DataAry轉成 JSON
                    var Tmp_DataString = JSON.stringify(Tmp_DataAry);
                    var np = {}; //TMFunction.js, 組合form上的查詢條件為json參數傳遞                                            np["sub_DataString"] = Tmp_DataString;  //存入目前勾選的資料

      -->後端處理 *.cs  ,  將 JSON 轉成 table
           string Tmp_DataString = nvc["sub_DataString"];   
           DataTable dt1 = myfunc.JSON2dt(Tmp_DataString);  //目前子畫面所勾選的資料

2>後端開啟TXT檔案
     1>>*.cs
          using System.Text;
          string Tmp_out_FName = "V40A_SAP工單單況異動_log.txt";      //處理_log.txt
            string documentPath = HttpContext.Current.Server.MapPath("~") + "document\\";  // 取得實實的路徑            
            string Tmp_out_pFName = documentPath + Tmp_out_FName;    //含 path 的Filename
                                                                     //清除檔案內容
            if (File.Exists(Tmp_out_pFName))
            { File.Delete(Tmp_out_pFName); }
            File.WriteAllText(Tmp_out_pFName, String.Empty);
            Tmp_Str = " 工單號碼                     工單異動說明                         " +"\r\n";;
            File.AppendAllText(Tmp_out_pFName, Tmp_Str);


3>依每筆資料呼叫 WebService , 並將訊息寫入TXT檔案
    1>>*.cs
          //處理每筆工單
            for (var i = 0; i < dt1.Rows.Count; i++)
                {
                    Tmp_SAPNO = dt1.Rows[i]["SAPNO"].ToString();
                    //呼叫 WebService , 取得傳回 ds
                    Tmp_ds = myfunc.set_SAPSTAT(Tmp_SAPNO, Tmp_STAT, Tmp_EMPLYID);
                    var Tmp_dr = Tmp_ds.Tables[0].Rows[0];
                    Tmp_Str = Tmp_dr["AUFNR"].ToString() + "                " + Tmp_dr["MSG"].ToString()+ "\r\n";              
                     File.AppendAllText(Tmp_out_pFName, Tmp_Str);
                }//  end of  for (var i = 0; i < dt1.Rows.Count; i++)       
          
      2>>呼叫 WebService
public static dynamic set_SAPSTAT(string par_SAPNO, string par_STAT,string par_EMPLYID)
        {            
            string Tmp_Str = "";
            DataSet ds=new DataSet(); 

            if ((!checkisnull(par_SAPNO))  && (!checkisnull(par_STAT)))
            {
                ZCO02.ZRFC_ZCO02SoapClient ZCO02_cls = new ZCO02.ZRFC_ZCO02SoapClient();
                try
                {
                    ds = ZCO02_cls.PROCESS_TRANS_WEB_CO02(par_SAPNO, par_STAT, par_EMPLYID);                    
                }
                catch (Exception ex)
                { }  //throw ex;  可能回傳 null
                finally
                { };
            }
            return ds;
        }  


4>將TXT檔案   傳至前端
      HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=\"" + HttpUtility.UrlEncode((string)Tmp_out_FName, System.Text.Encoding.UTF8) + "\"");
      HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;
      HttpContext.Current.Response.ContentType = "text/plain";
      HttpContext.Current.Response.WriteFile(Tmp_out_pFName);
      HttpContext.Current.Response.End();



5>訊息加入 Cookie
     //記錄 " 已執行完成 Cookie "
    var Tmp_finished_str = "已執行完成!!";
    MyCookie = new HttpCookie("UPDATE_SAPSTAT_finished", HttpUtility.UrlEncode(Tmp_finished_str));
    HttpContext.Current.Response.Cookies.Add(MyCookie);