Можно ли изменить существующую форму Документов Google программно? - PullRequest
0 голосов
/ 15 марта 2019

У меня есть уже существующая форма, созданная в интерактивном режиме. Похоже (из моих экспериментов) формы могут быть изменены программно, если созданы программно, но не если созданы интерактивно.

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

"var form = FormApp.getActiveForm ();" просто возвращает ноль. "openById" и:

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var form = FormApp.openByUrl(ss.getFormUrl());

Кажется, работает, но когда я пересекаю «форму», я получаю некоторые странные результаты. Например:

for each (var i in form.getItems(FormApp.ItemType.CHECKBOX)) { 
    Logger.log(i);
    for each (var j in i) {
      Logger.log(j);
    }
}

Хотя «форма» содержит множество объектов «элемент», каждый элемент, похоже, содержит исходный код класса Item:

> [19-03-15 07:53:57:329 HST] Item 
> [19-03-15 07:53:57:330 HST] function asPageBreakItem() {/*
> */} [19-03-15 07:53:57:331 HST] function asParagraphTextItem() {/*
> */} [19-03-15 07:53:57:331 HST] function getHelpText() {/*
> */} [19-03-15 07:53:57:332 HST] function getIndex() {/*
> */} [19-03-15 07:53:57:332 HST] function asTimeItem() {/*
> */} [19-03-15 07:53:57:332 HST] function asImageItem() {/*
> */} [19-03-15 07:53:57:333 HST] function asScaleItem() {/*
> */} [19-03-15 07:53:57:333 HST] function getId() {/*
> */} [19-03-15 07:53:57:333 HST] function asMultipleChoiceItem() {/*
> */} [19-03-15 07:53:57:334 HST] function getTitle() {/*
> */} [19-03-15 07:53:57:334 HST] function asGridItem() {/*
> */} [19-03-15 07:53:57:335 HST] function asDurationItem() {/*
> */} [19-03-15 07:53:57:335 HST] function asVideoItem() {/*
> */} [19-03-15 07:53:57:335 HST] function asTextItem() {/*
> */} [19-03-15 07:53:57:336 HST] function asDateTimeItem() {/*
> */} [19-03-15 07:53:57:336 HST] function setTitle() {/*
> */} [19-03-15 07:53:57:337 HST] function duplicate() {/*
> */} [19-03-15 07:53:57:337 HST] function asCheckboxItem() {/*
> */} [19-03-15 07:53:57:337 HST] function setHelpText() {/*
> */} [19-03-15 07:53:57:338 HST] function asDateItem() {/*
> */} [19-03-15 07:53:57:338 HST] function getType() {/*
> */} [19-03-15 07:53:57:339 HST] function asSectionHeaderItem() {/*
> */} [19-03-15 07:53:57:339 HST] function toString() {/*
> */} [19-03-15 07:53:57:339 HST] function asCheckboxGridItem() {/*
> */} [19-03-15 07:53:57:340 HST] function asListItem() {/*
> */}

Надеюсь, я только что в сорняках, и я могу изменить существующие флажки ... и кто-нибудь может указать мне в правильном направлении?

1 Ответ

0 голосов
/ 15 марта 2019

Рассматривали ли вы сохранение списков вкладок в электронной таблице, а затем заполнение формы из электронной таблицы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...