Domanda

Di seguito è uno script che sto usando per un foglio di calcolo di Google Docs.

Questi link mostrano quello che sto facendo:

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

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

Come posso creare un "flag" in modo che quando ho eseguito questo script una seconda volta, ma non aggiunge gli articoli di riserva perviously aggiunti?

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());
       }
      }
    }

  }
}​

Credo che sto cercando di fare questo: Una volta che l'oggetto è stato aggiunto all'inventario, lo script aggiunge una x per colonna I di quella linea. Poi, quando lo script viene eseguito nuovamente, salta sopra le righe con una x nella colonna I

È stato utile?

Soluzione

In JavaScript, le funzioni sono oggetti. Gli oggetti hanno proprietà. Quindi, decorare la vostra funzione:

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

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

Altri suggerimenti

Designare una cella per contenere il valore di bandiera, e hanno il controllo di script che cella particolare per il valore bandiera.

Aggiungere i valori in una matrice prima. Ogni volta che si aggiunge un elemento di controllo della matrice per vedere se è già in esso. Poi ciclo l'array un post per l'interfaccia utente.

Ecco un post per aiutare con la verifica se l'array contiene già il valore. stackoverflow.com/questions/237104/

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top