Question

Je suis en train d'écrire un script simple pour une feuille de calcul Google Docs. Les deux liens ci-dessous sont une capture d'écran des feuilles j'écris le scénario.

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

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

Pour les commandes d'achat de la feuille, Si la colonne e == « stock » alors j'ai besoin pour trouver le numéro de pièce et d'ajuster la quantité en feuille « Inventaire ». Bellow est un début à ce que je suis en train de faire. Quelqu'un peut-il me donner un coup de main?

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
  }
}

Merci pour l'aide.

Était-ce utile?

La solution

javascript ne fonction foreach -. Il y a moyen possible de contourner ce problème, y compris vous-même la mise en œuvre du mécanisme

S'il est un onetime Fix et vous migrer vers une autre langue bientôt - je suggère ce qui suit:

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

Quelque chose simmilar pour Itère lignes et des colonnes ...

Si vous souhaitez implémenter votre propre foreach jeter un oeil à ce site .

Si vous voulez étendre vos efforts Javascript considèrent texte du lien.

penser autrement de faire appletts en Java et de les mettre en œuvre au lieu d'un script.

Autres conseils

Si votre drapeau pour le stock et la quantité sont dans la même feuille, vous pouvez obtenir tout le contenu dans le même tableau (utilisé .getDataRange (), juste tout grab), puis quand vous trouvez votre teneur en stock, vous pouvez simplement saisir le prochain index dans cette ligne.

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];
  }
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top