彰化一整天的論壇

 找回密碼
 立即註冊
樓主: imingho

如何設計訂單查詢系統_日期區間顯示加多筆更新狀況

[複製鏈接]
 樓主| 發表於 2021-7-10 08:42:46 | 顯示全部樓層
playhtm 發表於 2021-7-9 17:32
目前發現以上如果顯示兩筆以上,勾選時不會更新資料,能再請問您一下嗎,非常謝謝您。 ...

程式碼已修正,麻煩重新下載.謝謝..
回復 支持 反對

使用道具 舉報

發表於 2021-7-12 14:48:24 | 顯示全部樓層
謝謝您特地修改,看來用文字輸入日期,比較不會有失誤,謝謝
回復 支持 反對

使用道具 舉報

發表於 2021-7-16 09:38:56 | 顯示全部樓層
另外想請問,若想要複製報表出來的話,能否按一個button把顯示的表格都複製起來?謝謝麻煩您了!
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2021-7-16 10:45:53 | 顯示全部樓層
playhtm 發表於 2021-7-16 09:38
另外想請問,若想要複製報表出來的話,能否按一個button把顯示的表格都複製起來?謝謝麻煩您了! ...

您好,
    可以參考.
訂單多筆查詢及更新(日期加選取表格並複製)
http://discuz.bestdaylong.com/thread-39338-1-1.html
(出處: 彰化一整天的論壇)
回復 支持 反對

使用道具 舉報

發表於 2021-7-19 16:45:24 | 顯示全部樓層
謝謝,非常謝謝您,您的設計非常有幫助!
回復 支持 反對

使用道具 舉報

發表於 2021-8-21 16:11:31 來自手機 | 顯示全部樓層
老師您好~想請問為何此範例一樣的網頁程式碼放到google  blogger執行,卻不能正常執行呢?想請問您此程式碼是哪個部分需要做修改呢?
回復 支持 反對

使用道具 舉報

發表於 2021-8-21 17:53:58 來自手機 | 顯示全部樓層
補:意思即我需要將此程式碼哪個部分做改變才能放到google blogger正常執行呢?謝謝老師
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2021-8-21 18:21:23 | 顯示全部樓層
Norah 發表於 2021-8-21 17:53
補:意思即我需要將此程式碼哪個部分做改變才能放到google blogger正常執行呢?謝謝老師 ...

您可以給我您blog的連結嗎?
還有要輸入什麼資料測試.
回復 支持 反對

使用道具 舉報

發表於 2021-8-21 20:53:33 | 顯示全部樓層
本帖最後由 Norah 於 2021-8-21 20:55 編輯

好的老師,
一、blog的連結:https://norahhhhh.blogspot.com/2021/08/date.html#comments
二、測試內容:
內容主要以本篇教學內容,
以日期查詢 改為>>以訂單編號查詢,
訂單狀態打字查詢 改為>>訂單狀態以下拉式選單查詢
查詢結果打字修改並更新 改為>>訂單狀態部分以下拉式選單做修改並更新

三、試算表的內容: 螢幕擷取畫面 2021-08-21 205218.png


四、試算表的程式碼:
  1. function doGet(e) {
  2.   var params = e.parameter;
  3.   var uid = params.uid;
  4.   
  5.   var BeginDate = Date.parse(params.BeginDate);
  6.   var EndDate=Date.parse(params.EndDate);
  7.   var OrderID=params.OrderID;
  8.   //var OrderName=params.OrderName;
  9.   var OrderStatus=params.OrderStatus;//訂單狀態

  10.   var OrderList=OrderID.split(",");


  11.   var Sheet = SpreadsheetApp.getActiveSheet();

  12.   var LastRow = Sheet.getLastRow();
  13.   var LastColumn = Sheet.getLastColumn();
  14.   var data = [];

  15.   // 取得全部資料
  16.   var listAll = Sheet.getSheetValues(1, 1, LastRow, LastColumn);
  17.   
  18.   //存標題
  19.   data.push({data: listAll[0]})
  20.   
  21.     // 找尋資料是否有存在 訂單編號
  22.   for(var i = 0;i < listAll.length; i++){
  23.       if(listAll[i].indexOf(uid) === 0){//這行的數字可以設定要用打欄主題
  24.         Sheet.getRange("D"+(i+1)).setValue(OrderStatus);//寫回狀態   
  25.         Sheet.getRange("G"+(i+1)).setValue(new params());//寫回狀態
  26.         listAll[i]=Sheet.getSheetValues(i+1,1,1,LastColumn)[0];//重新讀取
  27.     }
  28.      data.push({data: listAll[i]})
  29.   }

  30.   /*var ListDate;//儲存日期格式
  31.   var ListOrderID;
  32.   // 找尋資料是否有存在
  33.   for(var i = 1;i < listAll.length; i++){
  34.     ListDate=listAll[i][1];
  35.     ListDate=Date.parse(ListDate);
  36.     ListOrderID=listAll[i][0];
  37.     if(ListDate>=BeginDate && ListDate<=EndDate){
  38.       if(OrderStatus!="" && OrderList.indexOf(ListOrderID)!=-1)
  39.       {
  40.         Sheet.getRange("D"+(i+1)).setValue(OrderStatus);//寫回狀態   
  41.         Sheet.getRange("G"+(i+1)).setValue(new Date());//寫回狀態
  42.         listAll[i]=Sheet.getSheetValues(i+1,1,1,LastColumn)[0];//重新讀取
  43.       }
  44.       data.push({data: listAll[i]})
  45.     }
  46.   }
  47.   */
  48.   
  49.   //顯示資料
  50.   Logger.log(data);
  51.   
  52.   // 回傳json資料
  53.   return ContentService.createTextOutput(JSON.stringify(data))
  54.     .setMimeType(ContentService.MimeType.JSON);
  55. }
複製代碼
五、google blogger的程式碼:
  1. <html>
  2. <head>
  3. <meta charset="UTF-8" />
  4. <script type="text/javascript">
  5. /*Date.prototype.format = function(fmt)
  6. {
  7.   var o = {
  8.     "M+" : this.getMonth()+1, //月份
  9.     "d+" : this.getDate(), //日
  10.     "h+" : this.getHours()%12 == 0 ? 12 : this.getHours()%12, //小時
  11.     "H+" : this.getHours(), //小時
  12.     "m+" : this.getMinutes(), //分
  13.     "s+" : this.getSeconds(), //秒
  14.     "q+" : Math.floor((this.getMonth()+3)/3), //季度
  15.     "S" : this.getMilliseconds() //毫秒
  16.   };
  17.   if(/(y+)/.test(fmt))
  18.     fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));
  19.   for(var k in o)
  20.     if(new RegExp("("+ k +")").test(fmt))
  21.   fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
  22.   return fmt;
  23. }
  24. */
  25. /*var dateReviver = function (key, value) {
  26.     var a;
  27.     if (typeof value === 'string') {
  28.         a = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value);
  29.         if (a) {
  30.             return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4], +a[5], +a[6])).format("yyyy-MM-dd HH:mm:ss");
  31.         }
  32.     }
  33.     return value;
  34. };*/
  35.   
  36. function inq()
  37. {
  38. var xmlhttp;

  39.         if (window.XMLHttpRequest)
  40.           {// code for IE7+, Firefox, Chrome, Opera, Safari
  41.           xmlhttp=new XMLHttpRequest();
  42.           }
  43.         else
  44.           {// code for IE6, IE5
  45.           xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  46.           }
  47.         xmlhttp.onreadystatechange=function()
  48.           {
  49.                   if (xmlhttp.readyState==4 && xmlhttp.status==200)      
  50.                   {
  51.                         var result=xmlhttp.responseText;
  52.                         var obj = JSON.parse(resul);//解析json字串為json物件形式
  53.                                                 
  54.                         var html = '<table border=1 width=100%>';//
  55.                         
  56.                         for (var i = 0; i < obj.length; i ++ ) {//
  57.                                 html  += '<tr>';//
  58.                             if(i==0)
  59.                                html+="<td>編號</td>";
  60.                             else
  61.                                html+="<td>"+'<input type=checkbox id="OrderID" value="'+obj[i].data[0]+'">'+i+"</td>";
  62.                                 for(j=0;j<obj[i].data.length;j++)
  63.                                 {
  64.                                   html+= '<td>'+obj[i].data[j]+'</td>';
  65.                                 }
  66.                                 html  += '</tr>';            
  67.                         }
  68.                         html+="</table>";
  69.                         
  70.                         document.getElementById("order_status").innerHTML=html;
  71.                         if(obj.length==1) //只有一筆代表查不到資料
  72.                                 alert('查無資料');
  73.                   }

  74.           }
  75.     //var url="https://script.google.com/a/nkust.edu.tw/macros/s/AKfycbzVZV1jg494vAWy70WEeOFSoxGNuYbqGvInkQbm/exec";
  76.         var url="https://script.google.com/a/nkust.edu.tw/macros/s/AKfycbyBcO_glKtrdAhn_sJLvvJNxDssdNqhWer7bqQCbQ/exec";
  77.         xmlhttp.open("get",url+"?uid="+encodeURIComponent(str),true);
  78.         xmlhttp.send();
  79.         console.log(url);
  80.         var OrderID_list="";
  81.                 if (typeof(OrderID) !== 'undefined')
  82.                 {
  83.                         for (var i = 0; i < OrderID.length; i++) {
  84.                           if (OrderID[i].checked) {
  85.                                         OrderID_list += OrderID[i].value + ",";
  86.                           }
  87.                         }
  88.                         if(OrderID_list.length>0)
  89.                            OrderID_list=OrderID_list.substr(0,OrderID_list.length-1);
  90.                         if(typeof(OrderID.length)==='undefined') //單一選項
  91.                            OrderID_list=OrderID.value;               
  92.                 }
  93.                
  94.                 /*url+="?BeginDate="+BeginDate.value+"&EndDate="+EndDate.value+"&OrderID="+OrderID_list+"&OrderStatus="+OrderStatus.value;
  95.                 console.log(url);
  96.         xmlhttp.open("get",url,true);
  97.         xmlhttp.send();*/
  98. }

  99. </script>
  100. </head>
  101. <body>
  102. 輸入訂單編號:<input type="text" id="uid" /><br/>

  103. 訂單狀態:<input type=="button"
  104.      id="<option>選擇訂單狀態</option>
  105.             <option>尚未匯款</option>
  106.             <option>已匯款</option>
  107.             <option>已寄出</option>" value="" /></select>
  108. <input type="button" name="inq" value="查詢/更新" onclick="inq();"></br>
  109. <span id="order_status"></span>
  110. </body>
  111. </html>
複製代碼
非常謝謝老師!

回復 支持 反對

使用道具 舉報

 樓主| 發表於 2021-8-21 21:03:11 | 顯示全部樓層
本帖最後由 imingho 於 2021-8-21 21:05 編輯
Norah 發表於 2021-8-21 20:53
好的老師,
一、blog的連結:https://norahhhhh.blogspot.com/2021/08/date.html#comments
二、測試內容:

您的前端語法就錯了.您的程式碼也不是第1篇的,是另一篇文章.
google_form_str_20210821.jpg

您可以看一下.
【Google表單教學】如何利用chrome來偵錯前端javascript錯誤



回復 支持 反對

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

Archiver|手機版|小黑屋|彰化一整天的論壇(Excel,Office)

GMT+8, 2021-9-21 17:10 , Processed in 0.137095 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回復 返回頂部 返回列表