У меня есть список товаров, которые имеют как новые, так и восстановленные детали.Новые они имеют одинаковый номер детали, за исключением того, что отремонтированные детали имеют R в конце.Я хочу найти две строки, а затем добавить, сколько у каждого есть.т. е.
- поз. # описание мин. на руках
- 172077 Соединительный кабель CAT 6, литой - 4 2
- 172077R 172079 Соединительный кабель CAT 6 11
Итак, я хочу взять обе руки и сложить их вместе в сценарии, после чего на вкладке будет напечатан один ряд, в котором будет указано, сколько заказов
У меня работает сценарийна отдельных основаниях, но это не сравнивает как части так, тогда это говорит мне, чтобы заказать части, в которых я не нуждаюсь.Мне нужно только сохранить товар на складе, не имеет значения, его новый или старый
//@@@@@@@@@@@@@@@@@@@@@@@ Needs Ordered @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
function needsOrderedSheet() {
// source spreadsheets
var sourceSpreadSheet = SpreadsheetApp.getActive();
var ss = sourceSpreadSheet.getSheetByName('Products');
//destination spreadsheet
var destinationSpreadSheet = sourceSpreadSheet.getSheetByName('Needs Ordered');
// destinationSpreadSheet.appendRow(['Item #','Description','Type','Min Stock','When To Order','On Order','Portal On Hands','Total In Stock','How Many to Order']);
var startRow=2; // First row of data to process
var numRows =2; // Number of rows to process
var startColumn = 1; // A=1 B=2
var numColumns = 9; // Number of columns to process
var dataRange = ss.getRange(startRow, startColumn, numRows, numColumns);
var data = dataRange.getValues();
for (var i = 0; i < data.length; ++i) {
var column = data[i];
var itemnum = column[0]; // a column
var desc = column[1]; // b column
var type =column[2]; // c column
var minstock = column[3]; // d column
var whentoorder=column[4];// e column
var onorder=column[5];// f column
var portal = column[6]; // g column
var compare= column
var newitem = itemnum.split("R");
var nitem=newitem[0];
var dataRange2 = ss.getRange(startRow, startColumn, numRows, numColumns);
var data2 = dataRange2.getValues();
for (var c = 0; c < data2.length; ++c) {
var compare = data2[c];
var itemnum2 = compare[0]; // a column
var desc2 = compare[1]; // b column
var type2 =compare[2]; // c column
var minstock2 = compare[3]; // d column
var whentoorder2=compare[4];// e column
var onorder2=compare[5];// f column
var portal2 = compare[6]; // g column
var addp=portal + portal2;
var totalwhentoorder=whentoorder+whentoorder2;
var totalminstock=minstock+minstock2;
var instock = addp; // h column
var totalonorder=onorder + onorder2;
var howmanytoorder=totalminstock-(totalonorder+instock);
if (nitem == itemnum2 && itemnum2 != '' && nitem != itemnum){
if(instock <= whentoorder && whentoorder >= '1' && totalonorder < totalwhentoorder || instock < totalminstock && instock < whentoorder){
destinationSpreadSheet.appendRow([itemnum,desc,type,totalminstock,totalwhentoorder,totalonorder,portal,instock,howmanytoorder,nitem]);
}
}
if (nitem == itemnum && itemnum != '' && nitem != itemnum2){
if(instock <= whentoorder && whentoorder >= '1' && totalonorder < totalwhentoorder || instock < totalminstock && instock < whentoorder){
destinationSpreadSheet.appendRow([itemnum,desc,type,totalminstock,totalwhentoorder,totalonorder,portal,instock,howmanytoorder,itemnum2]);
}
}
}
// }
}
}
Я обновил код .. Это на самом деле работает так, как я хочу для первых двух строк, но если я изменю NumRows на100 это в основном просто обработать первые две строки снова ..