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

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


Формы 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 по какому-либо условию. Разнообразие условий так велико, что порой приходится создавать метод "удаления строк" снова и снова. Довольно утомительно. Для простых офсных скриптов можно применить сниппет, описанный ниже. Основная идея заключается в том, чтобы взять весь массив данных и перебрать его в обратном порядке. При переборе каждая строка передается в функцию обратного вызова, которая принимет решение удалить строку или нет. Для оптимизации количество последовательных строк суммируется, и для удаления применяется метод deleteRows(rowPosition, howMany) класса Sheet В примере ниже скрипт удаляет строки автивного листа, в которых ячейки из диапазона D27:D77 и F27:F77 попарно пустые

Определения и области применения триггеров событий Edit и Change

В этой статье рассмотрены два триггера событий Edit и Change . Определения Важное замечание. Оба события происходят только при прямых действиях пользователей в Таблицах. Т.о. действие триггера или дискретной функции не может сгенерировать после себя событие. Edit - событие широкого применения, которое происходит, когда изменяется значение диапазона Таблицы. Очень важно понять, что изменение касается только данных Таблицы и только в случае, если событие-инициатор произведено пользователем . Change - событие, которое возникает при изменении контента или структуры самой Таблицы . Например, изменение цвета, размера ячейки, удаление, создание или перемещение листа. Области применения Триггер события Edit используется как простой onEdit  и как устанавливаемый (регистрируемый) триггер. Это означает, что он может быть вызван как любым редактором, так и создателем триггера. Событие Change может быть связано только регистрируемым триггером. Аргументы Событие Edit пер...