Наши пользователи часто спрашивают, как производить те или иные операции с гугл-таблицами. Например, как выводить не одну строку, а несколько сразу. В этой статье отвечаем, как выводить по пять строк из гугл-таблицы. Мы сделаем этот кусочек сценария на примере гугл-таблиц, однако вы можете таким образом выводить элементы любого массива. Это может быть полезно вам, если вы хотите выводить своим пользователям сразу по несколько товаров, либо по несколько новостей.


Создадим гугл таблицу с заметками. Столбец с заметками назовем:

note



Опубликуйте таблицу

Файл -> Публикация в интернете -> Опубликовать -> Ок -> Закройте всплывающее окно.
Путь из всплывающего окна копировать не нужно.





Создадим url обращения к таблице

Откройте блокнот и скопируйте туда ссылку:

http://tools.aimylogic.com/api/googlesheet2json?sheet=1&id=

Затем найдите в пути страницы данный элемент:



Вставьте этот элемент после ссылки в блокнот. Скопируйте всё, что получилось в блокноте.


Проверьте получившийся url, вставив его в строку браузера. Если всё правильно, то вы увидите Json-объект с содержанием таблицы.


Добавим блок HTTP-запрос.

Url мы получили шагом ранее.

Для чтения используем метод GET.

На вкладке RESPONSE создайте переменную:

items

со значением:

$httpResponse

Для чтения из таблиц вкладки BODY и HEADERS заполнять не нужно.


От варианта "Завершен с ошибкой" сделайте связь с блоком Текст, на который скопируйте и вставьте:

ошибка $httpStatus

Этот экран поможет нам понять, в чем причина неполадки, если запрос не будет завершаться успешно.


От варианта "Завершен успешно" сделайте связь с блоком Условия:

$items.first()



Здесь мы используем встроенную функцию .first(), чтобы вывести первый элемент массива.

От условия $items.first() сделайте связь со следующим условием, в котором напишите:

$index = 0


Свяжите оба варианта - и true, и else со следующим экраном. Так как здесь мы присваиваем ноль, то нужно связывать оба варианта.

На следующем экране добавим блок Текст и напишем в него:

$items.current().note


здесь мы выводим текущую заметку.

На этот же экран добавим блок Переход.


От блока Переход создайте блок Условия:

$items.next()


С помощью функции next() проверяем, есть ли ещё элементы массива.

От else сделайте связь с экраном:

Всё, заметок больше нет.


От $items.next() сделайте связь с блоком Условия:

$index = $index + 1


Если есть ещё один элемент массива, то прибавим 1 к переменной $index. Таким образом, мы будем осуществлять подсчёт числа выведенных элементов.

От $index = $index + 1 сделайте связь с блоком Условия:

$index % 5 == 0


Здесь мы используем оператор Javascript "Остаток от деления". Этот оператор возвращает остаток от деления левого операнда на правый. То есть, мы делим $index на 5 и смотрим на остаток деления. Подробнее об операторе "Остаток от деления" читайте здесь. Также, мы используем оператор сравнения ==, который сравнивает остаток от деления с нулём. Об операторах сравнения можете почитать здесь.

else в Условии $index % 5 == 0 свяжите с экраном $items.current().note.


То есть, если остаток от деления $index на пять не равен нулю, то выведем текущую заметку. Если мы вывели только две заметки, то остаток от деления 2 на 5 не будет равен нулю, поэтому выведем заметку. И так до тех пор пока не досчитаем до пяти.

Условие $index % 5 == 0 свяжите с экраном с текстом:

вывести еще 5?


Добавьте на этот экран кнопку "да" (или готовый интент "Согласие"), и свяжите её с экраном $items.current().note.



Вернёмся к http-запросу

Всё, готово.

Вот как будет выглядеть кусочек сценария полностью:





Мы выведем 5 элементов массива. После этого, если есть ещё элементы массива, мы спросим, выводить ли ещё пять. Если ответ да, то будем выводить дальше, пока элементы массива не закончатся.

Была ли эта статья полезна?
отменить
Спасибо!