Frage

Ich versuche, ein einfaches Skript für ein Google Docs Spreadsheet zu schreiben. Die beiden Links unten sind ein Screenshot der Blätter ich das Skript ich schreibe für.

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

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

Auf Blatt Bestellungen, wenn Spalt e == „Lager“, dann ich es brauche die Teilenummer zu finden und die Menge in Blatt „Inventar“ einzustellen. Bellow ist ein Anfang, was ich zu tun versuchen. Kann jemand mir eine Hand?

function updateInventoryFromPurchaseOrders() {
  var purchaseOrders = {}; // A mapping of partNumber => quantity.
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName('Purchase Orders');
  if (sheet) {
    // For each row, if column "E" == "stock" then set partNumber, quantity.
    purchaseOrders[partNumber] = quantity;
  }
  // Now purchaseOrders should look like {'SL249':5, 'ML50':1, 'MWF':1}

  sheet = ss.getSheetByName('Inventory');
  if (sheet) {
    // For each row, set quantity, partNumber.
    var purchased = purchaseOrders[partNumber];
    // Set column "A" value = quantity + purchased
  }
}

Danke für die Hilfe.

War es hilfreich?

Lösung

kein JavaScript Funktion foreach -. Es gibt Möglichkeit, dies zu umgehen, einschließlich des Mechanismus selbst Durchführung

Wenn es eine einmalige Fix ist und Sie werden bald in eine andere Sprache migrieren - ich würde folgendes vorschlagen:

for( var CurrentRow=0; CurrentRow < DetermineMaxRows(); CurrentRow++ ) {
    if(isColumnEEqualStock()){
        //Things you want to do
    }
}

Etwas simmilar für das Iterieren durch Zeilen und Spalten ...

Wenn Sie Ihre eigene foreach zu sehen diese Website implementieren.

Wenn Sie Ihre Javascript Bemühungen erweitern betrachten Link-Text .

Ansonsten denke über appletts in Java zu machen und sie anstelle eines Skripts zu implementieren.

Andere Tipps

Wenn Sie Ihre Flagge für Lager, und die Menge in dem gleichen Blatt ist, können Sie den gesamten Inhalt in dem gleichen Array bekommen können (verwendet .getDataRange (), um nur greift alles), dann, wenn Sie Ihre auf Lager Inhalt finden, Sie können einfach den nächsten Index in dieser Reihe greifen.

var partNumbers = sheet.getDataRange().getValues(); 

for(num in partNumbers){
  if(partNumbers[num][4] == 'stock'){ //
    // Assuming quantity is in column F
    purchaseOrders[partNumber] = partNumbers[num][5];
  }
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top