Перейти к содержанию

MultiSelectionList

MultiSelList01

MultiSelectionList — это структура данных, созданная для хранения и управления набором элементов, из которых пользователь может произвести выбор. Данная переменная может включать элементы различных типов, таких как числовые, строковые, логические и даже более сложные объекты. Можно сказать, что это массив флажков (чек-боксов) и описаний к ним.

Существует отдельная группа инструментов для работы с типом MultiSelectionList. Найти их можно в соответствующей категории

Пример

Решим следующую задачу, используя MultiSelectionList.

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

MultiSelList01

В лаборатории значения температуры и влажности могут быть получены с приборов. В нашем примере мы упростим этот шаг и введём эти данные вручную в массив переменных.

Предположим, что у нас есть данные за 3 последних дня из следующих городов: Москва, Омск, Санкт-Петербург, Челябинск.

MultiSelList02

Оператор будет выбирать тербуемые регионы с панели управления. Чтобы упростить работу с ней, видимость значений, а также сам список сделаем глобальными переменными.

MultiSelList03

Результаты анализов будет записывать в таблицу результатов.

MultiSelList04

На панель управления 2.0 добавим пользовательский инструмент MultiSelectionListView, стандартные таблицу и кнопку диалога.

MultiSelList05

Значение в список MultiSelectionListView будет назначаться из глобальной переменной MultiSelList. Результат выбора будет записываться туда же.

MultiSelList06

Также настроим таблицу и её отображение на панели управления будет. Таблица появится только после того, как программа подсчитает индекс комфорта для выбранных городов. Это будет регулиролваться переменной visible.

MultiSelList07

Вернёмся на холст программы.

Начинаем выполнение с очистки списка. Ипользуем для этого блок List.Clear. Это важно делать при каждом запуске, в противном случае данные будут добавляться в конец списка каждый раз.

MultiSelList08

Далее, добавляем в пустой список значения. Используем для этого блок List.AddItems и заранее заполненную переменную массив типа String.

MultiSelList09

Список создан, теперь можно вывести его на панели управления через блок ShowDashboard.

MultiSelList10

После того как пользователь сделал свой выбор необходимо сохранить выбранные элементы в переменную массив типа String. Делаем это с помощью блока List.GetSelectedItems.

MultiSelList11

И следующим шагов определим размер полученного массива с помощью блока Array.Size. Это значение необходимо нам, чтобы знать сколько итераций нужно будет сделать в цикле.

MultiSelList12

Перейдём к циклу. Зададим условие через блок If-Else.

MultiSelList13

Блоком GetArrayValue переберём массив выбранных элементов.

MultiSelList14

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

MultiSelList15

Далее, будут выполняться подсчёты индекса комфорта по следующим формулам.

MultiSelList16

Полученное значение округлим до двух знаков, с помощью блока Round и запишем его в таблицу, с помощью блока WriteValueInTable.

MultiSelList17

Обратите внимание, подсчёты для всех кейсов будут аналогичными. Отличаются только входные данные и индекс в колонке результатов. Важно аккуратно заполнить все блоки.

После того как цикл отработает, сделаем таблицу видимой на панели управления и отобразим её.

Запустим проект и посмотрим, что получилось.

MultiSelList18