У меня есть следующий скрипт, прикрепленный к флажку. Когда флажок установлен, поле предлагает пользователю ввести новый SKU. Затем это добавит SKU на листы «order» и «pto» и в идеале введет его на лист, в зависимости от того, с какого номера SKU начинается.
У меня есть SKU, которые начинаются с 1, 2, 3 и 4, с листами 100 INV, 200 INV, 300 INV и 400 INV, соответствующими этим SKU.
Этот скрипт работает, но я использовал его 4 раза с 4 отдельными флажками. Я надеюсь упростить его до одного флажка, скрипт которого определяет, с какого номера начинается введенный SKU, и соответствующим образом вставляет его.
function addNewAccessorySKU() {
const ss = SpreadsheetApp.getActive();
const ui = SpreadsheetApp.getUi();
const order = ss.getSheetByName('Order');
const pto = ss.getSheetByName('Pending TOs');
const sheet1 = ss.getSheetByName('100 INV');
const sheet2 = ss.getSheetByName('200 INV');
const sheet3 = ss.getSheetByName('300 INV');
const sheet4 = ss.getSheetByName('400 INV');
const response = ui.prompt('WARNING: \r\n \r\n Ensure the entered SKU is NOT already on the following sheets: \r\n \r\n Ordering \r\n Accessory INV \r\n Pending TOs \r\n \r\n Enter New SKU:', ui.ButtonSet.OK_CANCEL);
if (response.getSelectedButton() === ui.Button.OK) {
var text = response.getResponseText();
uncheckAccessory();
order.appendRow([text]);
order.sort(1);
pto.appendRow([text]);
pto.sort(1);
sheet1.appendRow([text]);
sheet1.sort(1);
myFunction(); //references the Protection script
}
}
Я бы представил себе что-то вроде этого - вложенный оператор if, проверяющий подстроку ввода, - но не могу получить, что скрипт не запустится:
function addNewAccessorySKU() {
const ss = SpreadsheetApp.getActive();
const ui = SpreadsheetApp.getUi();
const order = ss.getSheetByName('Order');
const pto = ss.getSheetByName('Pending TOs');
const sheet1 = ss.getSheetByName('100 INV');
const sheet2 = ss.getSheetByName('200 INV');
const sheet3 = ss.getSheetByName('300 INV');
const sheet4 = ss.getSheetByName('400 INV');
const response = ui.prompt('WARNING: \r\n \r\n Ensure the entered SKU is NOT already on the following sheets: \r\n \r\n Ordering \r\n Accessory INV \r\n Pending TOs \r\n \r\n Enter New SKU:', ui.ButtonSet.OK_CANCEL);
if (response.getSelectedButton() === ui.Button.OK) {
var text = response.getResponseText();
if (response.getResponseText.substring(1,2)= "1") {
uncheckAccessory();
order.appendRow([text]);
order.sort(1);
pto.appendRow([text]);
pto.sort(1);
sheet1.appendRow([text]);
sheet1.sort(1);
myFunction(); //references the Protection script
}
}
Я все еще новичок в мире сценариев, поэтому любые рекомендации приветствуются!
Попробуйте со следующим скриптом:
function addNewAccessorySKU() {
const ss = SpreadsheetApp.getActive();
const ui = SpreadsheetApp.getUi();
const order = ss.getSheetByName('Order');
const pto = ss.getSheetByName('Pending TOs');
const sheet1 = ss.getSheetByName('100 INV');
const sheet2 = ss.getSheetByName('200 INV');
const sheet3 = ss.getSheetByName('300 INV');
const sheet4 = ss.getSheetByName('400 INV');
const response = ui.prompt('WARNING: \r\n \r\n Ensure the entered SKU is NOT already on the following sheets: \r\n \r\n Ordering \r\n Accessory INV \r\n Pending TOs \r\n \r\n Enter New SKU:', ui.ButtonSet.OK_CANCEL);
if (response.getSelectedButton() === ui.Button.OK) {
var text = response.getResponseText();
var subText = text.substring(0,1);
switch(subText){
case "1":
uncheckAccessory();
order.appendRow([text]);
order.sort(1);
pto.appendRow([text]);
pto.sort(1);
sheet1.appendRow([text]);
sheet1.sort(1);
myFunction(); //references the Protection script
break;
case "2":
uncheckAccessory();
order.appendRow([text]);
order.sort(1);
pto.appendRow([text]);
pto.sort(1);
sheet2.appendRow([text]);
sheet2.sort(1);
myFunction(); //references the Protection script
break;
case "3":
uncheckAccessory();
order.appendRow([text]);
order.sort(1);
pto.appendRow([text]);
pto.sort(1);
sheet3.appendRow([text]);
sheet3.sort(1);
myFunction(); //references the Protection script
break;
case "4":
uncheckAccessory();
order.appendRow([text]);
order.sort(1);
pto.appendRow([text]);
pto.sort(1);
sheet4.appendRow([text]);
sheet4.sort(1);
myFunction(); //references the Protection script
break;
}
}
}
Это сработало прекрасно! Благодарю вас!