Настройка скрипта: вместо элементов списка установите флажки в форме

Я нашел этот скрипт на YouTube от Jason Jurotich.

https://www.youtube.com/watch?v=sRlG58VKWNs.

Что позволяет обновлять многочисленные формы в папке
(тип вопроса = выбрать из списка).

Интересно, можно ли это изменить, чтобы также включить вопросы флажка.

Я попробовал удвоить сценарий и во второй части изменить

var agentList = item.asListItem()     to    var agentList = item.asCheckboxItem()

Это не сработало. И я безуспешно искал другие сценарии.

Сценарий от Jason выглядит следующим образом

function updateLists() {
var files = DriveApp.getFolderById("FOLDER ID HERE").getFiles()
while (files.hasNext()) {
   var file = files.next();
   var form = FormApp.openById(file.getId())
   var items = form.getItems();
   for (var i = 0; i < items.length; i += 1){
    var item = items[i]
    if (item.getTitle() === "QUESTION TITLE HERE"){
     var agentList = item.asListItem()
     }
    }
var ss = SpreadsheetApp.getActive().getSheetByName("SHEET NAME HERE");
  var agentValues = ss.getRange(1, 1, ss.getMaxRows() - 1).getValues();
  var agentNames = [];
  for(var i = 0; i < agentValues.length; i++)   
    if(agentValues[i][0] != "")
    agentNames[i] = agentValues[i][0];
    agentList.setChoiceValues(agentNames);
 }
}

Mr Rebot-I try

function updateLists() {
var files = DriveApp.getFolderById("0B8ZhY7dtctaMb0Vmb2RLdjhWM2M").getFiles()
while (files.hasNext()) {
   var file = files.next();
   var form = FormApp.openById(file.getId())
   var items = form.getItems();
   for (var i = 0; i < items.length; i += 1){
    var item = items[i]
    if (item.getTitle() === "EVENTS"){

     var agentList  = item.asCheckboxItem()//checkbox option
     var agentList = item.asListItem()//list option

     }
    }
var ss = SpreadsheetApp.getActive().getSheetByName("EVENTS");
  var agentValues = ss.getRange(1, 1, ss.getMaxRows() - 1).getValues();
  var agentNames = [];
  for(var i = 0; i < agentValues.length; i++)    
    if(agentValues[i][0] != "")
    agentNames[i] = agentValues[i][0];
    agentList.setChoiceValues(agentNames);
}}

Обновление только элементов списка
Ошибка: недопустимое преобразование для типа элемента: LIST. (строка 12, файл » код»)

Возможно ее строка одна из кода ?

1 ответ

  1. Я думаю, что проблема, которую вы испытываете, заключается в том, что вы пытаетесь сделать тип вопроса multipleChoice в тип флажка (который вернет ошибку, как вы испытываете). Учебник, который вы смотрите, показывает, как динамически изменять параметры вопроса в отношении типа вопроса. Я проверил ваш код, и он работает, если тип вопроса вашей формы флажок.

    код.gs

    Введите описание изображения здесь

    Лист:

    Введите описание изображения здесь

    Результат:

    Введите описание изображения здесь

    Надеюсь, это поможет прояснить проблемы, с которыми вы столкнулись.

    РЕДАКТИРОВАТЬ

    Это все равно было бы учитывая, что вы объявили правильный тип для каждой переменной:

    пример кода:

    var agentList = item.asListItem()//list option
    var foodList  = item.asCheckboxItem()//checkbox option
    
    //code for checkbox
    if (item.getTitle() === "EVENTS"){
    
         var eventList  = item.asCheckboxItem()//checkbox option
    
         }
    
    //code for list
    if (item.getTitle() === "FOOD"){
         var foodList = item.asListItem()//list option
    
         }
    

    Примечание: используйте различные имена переменных, чтобы избежать конфликта. Как предложение создайте функцию, чтобы ваш код был чистым и простым для выполнения. Добавьте комментарий, который поможет вам отслеживать действия кода.