Google Script в HTML получает строку и ее невозможно использовать - PullRequest
0 голосов
/ 12 февраля 2020

У меня огромная проблема: я создаю скрипт, который получает значение из таблицы HTML и сравнивает его в GS-скрипте. Как выглядит скрипт HTML (он вызывается с событием "oninput"):

     function testhandler(i){
       var ref = document.getElementById('ref'+i).textContent;
       var lot = document.getElementById('lot'+i).textContent;
       var newref = ref.replace ('\xa0','');
       var newlot = lot.replace ('\xa0','');
       google.script.run.withSuccessHandler(LigneSup).withUserObject(i).ajoutLot(newref,newlot)
     }

Затем в GS я нахожу "newref" в таблице GSheet и нахожу все связанные "lot" к нему (и я создаю список этих лотов, кроме "newlot"):

function ajoutLot (RP, lotexist){
  var listeLot=[];
  var s =SpreadsheetApp.getActive();
  var sheet = s.getSheetByName("Stocks");
  var Lots=sheet.getRange('B2:B').getValues();
  sheet.getRange("A2:A").setNumberFormat("@");
  var RPList =sheet.getRange("A2:A").getValues();
  var RealRP = RPList.reduce(function(ar, e) { if (e[0]) ar.push(e[0]); return ar;}, []);
  for (var i=1;i<=RealRP.length;i++){
    if (RP==RealRP[i-1] && Lots[i]!=lotexist){
      listeLot.push(Lots[i]);
    }
  }
  if (listeLot.length ==0){
    listeLot=["Nothing"];
  }
  var Out = listeLot;
  return (Out);
}

(для вашего понимания RP = ref)

Тогда у меня "Out" идет в Сценарий "Lignesup" в HTML, и я должен проверить, находится ли значение в входе HTML в массиве "Out".

Прежде всего: Lignesup не работал должным образом, потому что элементы " Out "не были поняты как строки (но элементы были" L1 "," L2 ".. et c). Поэтому мне пришлось форсировать строковый тип, создавая вторичный список, в который я помещал элементы Out: StringList.push(String(Elemlist))) Это первое, что я не понимаю

Другое: «newlot» все еще находится в массиве «Out», но, как вы видели в моих сценариях, это не должно быть!

Не могли бы вы помочь мне с этим? Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...