В настоящее время я работаю с Google Forms и Appsheet, чтобы создать приложение для отслеживания жалоб для моей компании. Этот проект требует, чтобы каждая жалоба, отправляемая через Google Form, имела ComplaintID. Формат этого ComplaintID - текущий год, а затем номер жалобы (например, 2020-001 будет первой жалобой, полученной в 2020 году). Согласно спецификациям этого проекта, ведущие нули обязательны. Временная метка фиксирует год, поэтому присутствуют все необходимые данные.
Вот сценарий, который я нашел на howtogoogleapps.com, который, кажется, почти работает:
function addAutoNumber() {
var sheet = SpreadsheetApp.getActive().getSheetByName("Form responses 1");
// Get the last row that has content.
var LastRow = sheet.getLastRow();
// Set the first Auto Number
var AutoNumberStart="2020-001";
//---- First run ------------
//Check if the first column is Timestamp
if (sheet.getRange(1, 1).getValue() == "Timestamp") {
// insert a column to the left and the text "ComplaintID" in the first row
sheet.insertColumnBefore(1);
sheet.getRange(1, 1).setValue("ComplaintID");
// Fix for (probably) a bug that formats the new column
// with the same format of the column used to insert it,
// in this case the column gets the date format like the Timestamp column.
// So we set the format to number
sheet.getRange("A2:A").setNumberFormat(0);
// check if there are already form responses and add numbers for them
if (LastRow>1) {
for(var ii=2; ii <= LastRow; ii++) {
sheet.getRange(ii, 1).setValue(AutoNumberStart);
AutoNumberStart="2020-"+ (parseInt(AutoNumberStart.substr(5,3)+1));
}
}
}
// ---- Add new Auto Number ----------
// Check if there is a Number in the AutoNumber column
// for the last Form Submission
if (sheet.getRange(LastRow, 1).isBlank()) {
// Check if it is the first Form submission and set the AutoNumberStart
if (LastRow == 2) {
sheet.getRange(LastRow, 1).setValue(AutoNumberStart);
} else {
// Get the Last AutoNumber from the previous row
var LastAutoNumber = sheet.getRange(LastRow-1, 1).getValue();
// Set the next AutoNumber
sheet.getRange(LastRow, 1).setValue("2020-"+ (parseInt(LastAutoNumber.substr(5,3)+1)));
}
}
}
Однако возвращаются 2020-001, 2020-11, 2020-111, 2020-1111, 2020-1111, et c. Не совсем то, что мне нужно. Если вы можете мне с этим помочь, я буду ВЕЧНО благодарен!