К основному контенту

Обновление Формы при отправке


Формы Google не являются динамическими. Никакой связи с сервером они не держат, поэтому ничего "подтягивать" они не будут. Но иногда случаются задачи, которые могут быть решены с помощью возможности редактирвоания Формы. Триггер отправки Формы запускает цепочку изменений.
Совсем как в дополнениии "Other Etc".

Пример

Небольшое приложение, которое открывает Таблицу и читает значение диапазона по адресу Обработка триггера отправки Формы и изменение Формы Как это все работает?
  1. Создается проект скрипта в Форме или в Таблице.
  2. Регистрируется триггер отправки Формы для функции onFormSubmit. В данном примере это сделано в Форме.
  3. При срабатывании триггера , открывается Таблица, к которой привязана Форма и оттуда берется указанное в настройках значение.
  4. Для текущего примера это значение общей суммы всех чисел внесенных через Форму.
  5. Как только значение получено, обновляется описание Формы - выводится новая сумма для последующих респондентов.

Комментарии

  1. Хороший пример.
    А можно внутри function onFormSubmit(e) вызвать функцию, определённую в скрипте таблицы, связанной с этой формой?

    ОтветитьУдалить
    Ответы
    1. Можно вызвать практически все. Но в данном случае это будет непросто

      Удалить
    2. Непросто, но возможно, так?
      В чем сложность?

      Удалить
    3. Мне не нужно передавать в неё параметры.

      Удалить
  2. Александр, вы могли бы прокомментировать строки кода?
    Почему функция открытия таблицы в скобках?
    Откуда open получает id?
    Как посмотреть значение логгера?

    ОтветитьУдалить
    Ответы
    1. Я вот об этом:
      (function(base){
      Почему начинается с круглой скобки?

      Удалить
  3. App.open(form.getDestinationId()) - свойство кода, не больше
    id Таблицы берется из Формы
    Лог возвращает число из ячейки https://docs.google.com/spreadsheets/d/1cWzqwQXGBhKBOL0pn1nFzuiGcZaPz9m9brDFoWK-Uks/edit#gid=1836421092&range=A1

    ОтветитьУдалить
    Ответы
    1. Этот комментарий был удален автором.

      Удалить
    2. Спасибо. Сейчас снова на смарте, смотрю, как в замочную скважину. Завтра гляну на ноуте.

      Удалить
    3. Посмотрел - не понял связи с logger.log?

      Удалить

Отправить комментарий

Популярные сообщения из этого блога

Триггеры Google Apps Script

Все триггеры в скриптах делятся по виду события, типу установки и области применения. Области применения Таблицы Формы Документы Сайты Автономные скрипты  События Open - происходит при открытии файла в приложении Гугл. Например, Формы создают это событие только при открытии в режиме редактирвоания. Edit - происходит при завершении ввода данных в ячейку Таблицы пользователем. Только Таблицы. Только пользователем. Install - автоматически вызывается при установке дополнения. Change - возникает при других (не изменение данных ячейки, например, назначение цвета или ширины колонки) изменених Таблицы вызванных пользователем. Только Таблицы. Только пользователем. Form submit - исполнится только тогда, когда придет ответ от респондента Формы. Time-driven - отложенный триггер действия, срабатывающий по истечении времени Get - событие отрабатывающее get-запросы к веб-приложению Post - событие отрабатывающее post-запросы к веб-приложению Типы установок Simple ...

Пользовательское меню в Документах, Таблицах и Формах

Google Apps Script умеет создавать меню, содержание которого определяет разработчик. Меню может быть создано для приложений Таблиц, Документы или Формы (режим редактирования). Отличительной особенностью является то, что нельзя передать параметры в вызываемую через меню функцию. Принцип построения меню будет всегда одинаковый: Необходимо получить экземпляр среды пользовательского интерфейса Ui, позволяющий скрипту добавлять такие функции, как меню, диалоговые окна, боковые панели. Создать объект меню createMenu(). Наполнить меню возможными элементами: пунктами меню addItem(), подменю addSubMenu(), разделителями addSeparator(). Добавить меню в интерфейс, вызвав метод addToUi() Для того, чтобы меню появлялось сразу после открытия файла, необходимо добавить функцию создания меню в простой триггер onOpen(). 1. Пример простого приложения для Формы Создает пользовательское меню Содержимое меню Добавление текстового поля Отчет о Форме 2. Пример простого приложен...

Как открыть ссылку с помощью Google Apps Script?

Часто возникает задача, в которой требуется по результатам работы скрипта открыть ссылку в новом окне/вкладке браузера. В Google Apps Script не существует методов взаимодействия с браузером. Единственная более-менее реальная связь между пользователем и сервером скрипта находится в интерфейсе реализуемой программы. Это может быть Таблица, Документ или Web приложение. Все они реализуются через HtmlService. Например, SpreadsheetApp.getUi().showModelessDialog(htmlOutput, "title"); Понятно, что в построенном htmlOutput , можно выполнить код для текущего window . Например, window.open(url, "_blank"); Идея обернутая кодом ниже по тексту. Пользователь выбирает ячейку в Таблице (или все, что угодно, что формирует ссылку). На сервере На клиенте строится окно диалога, открывается новая вкладка браузера и закрывается окно диалога, при успешном выполнении условия. Иначе появляется сообщение, что переданный параметр не ссылка. Этот метод имеет существенный недостаток...