Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过使用谷歌应用程序脚本检查其他工作表中的状态,更新订单状态谷歌电子表格_Javascript_Google Apps Script_Google Sheets_Spreadsheet - Fatal编程技术网

Javascript 通过使用谷歌应用程序脚本检查其他工作表中的状态,更新订单状态谷歌电子表格

Javascript 通过使用谷歌应用程序脚本检查其他工作表中的状态,更新订单状态谷歌电子表格,javascript,google-apps-script,google-sheets,spreadsheet,Javascript,Google Apps Script,Google Sheets,Spreadsheet,我正在努力获取订单的状态,以便在主控表中进行更新。我已在另一张名为“停用表”的表格中断开状态为的订单。当我更新主机时,我需要应用以下逻辑检查这些订单的状态: 如果订单已停用&停用表中不可用(&N) 那么订单是实时的 如果订单在退役表中可用,则检查 状态如果已停用,则订单已停用 我用一种完全不同的方式做了这件事,但它对我不起作用。任何帮助都将不胜感激 function pathstatus() { var MasterSs = SpreadsheetApp.openById('ID');

我正在努力获取订单的状态,以便在主控表中进行更新。我已在另一张名为“停用表”的表格中断开状态为的订单。当我更新主机时,我需要应用以下逻辑检查这些订单的状态:

  • 如果订单已停用&停用表中不可用(&N) 那么订单是实时的
  • 如果订单在退役表中可用,则检查 状态如果已停用,则订单已停用
我用一种完全不同的方式做了这件事,但它对我不起作用。任何帮助都将不胜感激

function pathstatus() {
  var MasterSs = SpreadsheetApp.openById('ID');
  var MsterSh = MasterSs.getSheetByName('Master Sheet');
  var MasterData = MsterSh.getDataRange().getValues();
  var DecommisstionSh = MasterSs.getSheetByName('Decommisstion');
  var DecommisstionData=DecommisstionSh.getDataRange().getValues();
  for(var x=0;x<MasterData.length;x++){   
    var MasterPathName =MasterData[x][2]
    var Masterstatus=MasterData[x][6]
    var MasterStage=MasterData[x][7]
    if(MasterStage == "DECOMMISSIONED"){
      for(var i=0;i<DecommisstionData.length;i++){
        var   DecommisstionPathName = DecommisstionData[i][2]
        var    DecommisstionStatus = DecommisstionData[i][7]
        var   DecommissionedDate = DecommisstionData[i][10]
        if(DecommisstionPathName == MasterPathName && DecommisstionStatus == "COMPLETED") {
          MasterData[x][6]="DECOMMISSIONED"
          MasterData[x][12]=DecommissionedDate
        }else { 
          MasterData[x][6]="LIVE"  
        }
      }
    }
  }
  MsterSh.getRange(2,1,MsterSh.getLastRow(),MsterSh.getLastColumn()).clearContent();
  MsterSh.getRange(2,1,MasterData.length,MasterData[0].length).setValues(MasterData)
  SpreadsheetApp.flush()
}
函数路径状态(){
var MasterSs=SpreadsheetApp.openById('ID');
var MsterSh=MasterSs.getSheetByName(“主工作表”);
var MasterData=MsterSh.getDataRange().getValues();
var decommissionsh=MasterSs.getSheetByName('decommission');
var decommissiondata=decommissionsh.getDataRange().getValues();

对于(var x=0;xYou需要重新表述问题,并更清楚地说明哪些内容不适合您。哪些内容不适合您,您是否收到错误,或者输出是否不是您想要的方式?哪些内容不适合您,您是否收到错误,或者输出是否不是您想要的方式?代码工作正常,但没有反映准确的信息。如果您有获取此数据的另一种方式,如在宏中,我使用类似于countifs的方式获取此数据如果可以,请清理并共享您的工作表,以便我们可以尝试了解您的问题。没有上下文的代码块使您很难完全理解您的问题。“停用”代码中似乎拼写错误。可能是我编辑时出错。请告诉我。
function myFunction() {
  var MasterSs = SpreadsheetApp.openById('ID');
  var MsterSh = MasterSs.getSheetByName('Master Sheet');
  var MasterData = MsterSh.getDataRange().getValues();
  var DecommisstionSh = MasterSs.getSheetByName('Decommisstion');
  var DecommisstionData=DecommisstionSh.getDataRange().getValues();

  MasterData.splice(0,1);
  DecommisstionData.splice(0,1);
  var  Decommisstionpath = [];
  var  Decommisstionstatus = [];

  for(var i=0;i<DecommisstionData.length;i++) {
    Decommisstionpath.push(Number(DecommisstionData[i][2]))
    Decommisstionstatus.push(DecommisstionData[i][7])
  }
  var i=0;
  for(var x=0;x<MasterData.length && MasterData[x][3] != undefined ;x++) {
    var OrderStage = MasterData[x][8]
    if(OrderStage=='DECOMMISSIONED') {
      var PathName = MasterData[x][2]
      var index = Decommisstionpath.indexOf(PathName);
      if(index == -1)
      {MasterData[x][6]="LIVE" } 
      else{
        MasterData[x][6]="Check"
      }
    }
  }
  MsterSh.getRange(2,1,MsterSh.getLastRow(),MsterSh.getLastColumn()).clearContent();
  MsterSh.getRange(2,1,MasterData.length,MasterData[0].length).setValues(MasterData)
  SpreadsheetApp.flush();
}