Frage

Im Folgenden finden Sie ein Skript, das ich für ein Google Docs Spreadsheet verwenden.

zeigen Diese Links, was ich tue:

http://i.stack.imgur.com/uGik7.png

http://i.stack.imgur.com/AbKnQ.png

Wie kann ich eine „Flagge“ gesetzt, so dass, wenn ich dieses Skript ein zweites Mal ausführen, ist es nicht die perviously hinzugefügt Lager Artikel hinzufügen?

function myFunction() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet1 = ss.getSheetByName("Purchase Orders");
  var sheet2 = ss.getSheetByName("Inventory");
  var data = sheet1.getDataRange();
  var i_data = sheet2.getDataRange();
  var lastRow = data.getLastRow();
  var iLastRow = i_data.getLastRow();

  for (i=1;i<=lastRow;i++) {
    if (data.getCell(i, 5).getValue() == "stock"){
      for (n=1;n<=iLastRow;n++){
        if (data.getCell(i,3).getValue() == i_data.getCell(n,3).getValue()) {
        i_data.getCell(n, 1).setValue(i_data.getCell(n,1).getValue() + data.getCell(i,2).getValue());
       }
      }
    }

  }
}​

Ich glaube, ich bin versucht, dies zu tun: Wenn der Artikel zum Inventar hinzugefügt wurde, fügt das Skript eine x Spalte i der Zeile. Dann, wenn das Skript erneut ausgeführt wird, überspringt es über die Leitungen mit einer x in der Spalte i

War es hilfreich?

Lösung

In JavaScript sind Funktionen Objekte. Objekte haben Eigenschaften. So schmücken Sie Ihre Funktion:

function myFunction() {
    if (!myFunction.alreadyDoneRunIt) {
        alert('bapt uia');
        myFunction.alreadyDoneRunIt = true;
    }
}

for (var i = 0; i < 10; i++) {
    myFunction(); // alerts once
}

Andere Tipps

eine Zelle Bezeichnen Sie den Flag-Wert zu halten, und hat das Skript zu prüfen, ob bestimmte Zelle für den Flag-Wert.

Fügen Sie die Werte in ein Array zuerst. Jedes Mal, wenn Sie fügen Sie ein Element des Arrays überprüfen, um zu sehen, ob es schon drin. Dann Schleife Array ein Post an die UI.

Hier ist ein Beitrag zu Hilfe bei der Überprüfung, ob das Array bereits den Wert enthält. stackoverflow.com/questions/237104/

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top