Я очень новичок в написании кода и имею ограниченное понимание, поэтому, пожалуйста, будьте нежны! Я пытался расширить код, сделанный на this question.Auto incrementing Job Reference
У меня был ограниченный успех, и я теперь застрял, я надеялся, что кто-то будет достаточно любезен, чтобы указать мне в правильном направлении или сказать мне, что я делаю неправильно.
Итак, сценарий: необходимо иметь автоинкрементный «Справочник по заданию» для бронирования в нетбуке для ремонта ИТ-отдела, над которым я работаю. Это бронирование осуществляется через форму Google, и я могу получить код в ссылке, чтобы работать отлично, но! Я надеялся получить чуть больше простого счета - 1,2,3,4,5 и так далее. В идеале работа ref будет отображаться как JR0001, JR0002 и так далее.
Итак, моя попытка кода!
Код, который пользователь сам представил, который работает отлично.
function onFormSubmit(e) {
// Get the active sheet
var sheet = SpreadsheetApp.getActiveSheet();
// Get the active row
var row = sheet.getActiveCell().getRowIndex();
// Get the next ID value. NOTE: This cell should be set to: =MAX(A:A)+1
var id = sheet.getRange("P1").getValue();
// Check of ID column is empty
if (sheet.getRange(row, 1).getValue() == "") {
// Set new ID value
sheet.getRange(row, 1).setValue(id);
}
}
Первое, что я попытался было просто добавить еще одну переменную и добавить его в .setValue
function onFormSubmit(e) {
// Get the active sheet
var sheet = SpreadsheetApp.getActiveSheet();
// Get the active row
var row = sheet.getActiveCell().getRowIndex();
// Get the next ID value. NOTE: This cell should be set to: =MAX(A:A)+1
var id = sheet.getRange("X1").getValue();
// Set Job Reference
var jobref = "JR";
// Check of ID column is empty
if (sheet.getRange(row, 1).getValue() == "") {
// Set new ID value
sheet.getRange(row, 1).setValue(jobref+id);
}
}
Это работало по мере получения «jr1» вместо 1, но автоприращение остановился работая так для каждой представленной формы, у меня все еще был «JR1» - не очень автоинкремент!
Затем я попытался установить другую .getValue из листа, как Job Ref
function onFormSubmit(e) {
// Get the active sheet
var sheet = SpreadsheetApp.getActiveSheet();
// Get the active row
var row = sheet.getActiveCell().getRowIndex();
// Get the next ID value. NOTE: This cell should be set to: =MAX(A:A)+1
var id = sheet.getRange("X1").getValue();
// Set Job Reference
var jobref = sheet.getRange("X2").getValue();
// Check of ID column is empty
if (sheet.getRange(row, 1).getValue() == "") {
// Set new ID value
sheet.getRange(row, 1).setValue(jobref+id);
}
}
Тех же результат - неофициальное приращение «jr1»
Затем я попытался конкатенацией работать увеличивающееся число с моей работой ref, а затем вызывает это в скрипте.
function onFormSubmit(e) {
// Get the active sheet
var sheet = SpreadsheetApp.getActiveSheet();
// Set Job Reference
var jobref = sheet.getRange("X2").getValue();
// Get the active row
var row = sheet.getActiveCell().getRowIndex();
// Get the next ID value. NOTE: This cell should be set to: =MAX(A:A)+1
var id = sheet.getRange("X1").getValue();
// Check of ID column is empty
if (sheet.getRange(row, 1).getValue() == "") {
// Set new ID value
sheet.getRange(row, 1).setValue(jobref);
}
}
Тот же результат значение не увеличивает
Я не понимаю, почему число перестает приращение, если добавить другие переменные и не понимает, как добавить ведущие нули к увеличивающемуся числу. У меня такое чувство, что я пытаюсь усложнить ситуацию!
Так что, чтобы подвести итог, есть способ получить автоинкрементный реф, который длится 6 символов - в этом сценарии первая форма JR0001 вторая представляет JR0002 и так далее.
Мне бы очень хотелось, чтобы некоторые указатели указывали, где я ошибаюсь, если это возможно, я хочу учиться, но я, очевидно, не хватает некоторых ключевых принципов.
Вы сэр гений! –
ou Сэр - гений! Я немного изменил код: строка 12 Я удалил +1, чтобы Job Ref заполнил ту же строку, что и форму, и также изменил строку на «JR% 04d», так что у меня есть 2 буквы и 4 цифры - Я надеюсь, что никогда не придется ремонтировать ноутбуки 9999: D –
Я думал, что вы можете отремонтировать хотя бы один миллион ... Я очень разочарован; -D - пожалуйста, подумайте о том, чтобы принять ответ и спасибо за голосование. –