MultiSelectionList
MultiSelectionList — это структура данных, созданная для хранения и управления набором элементов, из которых пользователь может произвести выбор. Данная переменная может включать элементы различных типов, таких как числовые, строковые, логические и даже более сложные объекты. Можно сказать, что это массив флажков (чек-боксов) и описаний к ним.
Существует отдельная группа инструментов для работы с типом MultiSelectionList. Найти их можно в соответствующей категории
Пример
Решим следующую задачу, используя MultiSelectionList.
Вы работаете в метеорологической лаборатории, где собираются данные о температуре и влажности в разных регионах. Вам нужно выбрать данные из списка, провести анализ и получить итоговые результаты.
В лаборатории значения температуры и влажности могут быть получены с приборов. В нашем примере мы упростим этот шаг и введём эти данные вручную в массив переменных.
Предположим, что у нас есть данные за 3 последних дня из следующих городов: Москва, Омск, Санкт-Петербург, Челябинск.
Оператор будет выбирать тербуемые регионы с панели управления. Чтобы упростить работу с ней, видимость значений, а также сам список сделаем глобальными переменными.
Результаты анализов будет записывать в таблицу результатов.
На панель управления 2.0 добавим пользовательский инструмент MultiSelectionListView, стандартные таблицу и кнопку диалога.
Значение в список MultiSelectionListView будет назначаться из глобальной переменной MultiSelList. Результат выбора будет записываться туда же.
Также настроим таблицу и её отображение на панели управления будет. Таблица появится только после того, как программа подсчитает индекс комфорта для выбранных городов. Это будет регулиролваться переменной visible.
Вернёмся на холст программы.
Начинаем выполнение с очистки списка. Ипользуем для этого блок List.Clear. Это важно делать при каждом запуске, в противном случае данные будут добавляться в конец списка каждый раз.
Далее, добавляем в пустой список значения. Используем для этого блок List.AddItems и заранее заполненную переменную массив типа String.
Список создан, теперь можно вывести его на панели управления через блок ShowDashboard.
После того как пользователь сделал свой выбор необходимо сохранить выбранные элементы в переменную массив типа String. Делаем это с помощью блока List.GetSelectedItems.
И следующим шагов определим размер полученного массива с помощью блока Array.Size. Это значение необходимо нам, чтобы знать сколько итераций нужно будет сделать в цикле.
Перейдём к циклу. Зададим условие через блок If-Else.
Блоком GetArrayValue переберём массив выбранных элементов.
На каждом шаге будет сохранять текущее значение во временную переменную и работать с ним в блоке Switch.
Далее, будут выполняться подсчёты индекса комфорта по следующим формулам.
Полученное значение округлим до двух знаков, с помощью блока Round и запишем его в таблицу, с помощью блока WriteValueInTable.
Обратите внимание, подсчёты для всех кейсов будут аналогичными. Отличаются только входные данные и индекс в колонке результатов. Важно аккуратно заполнить все блоки.
После того как цикл отработает, сделаем таблицу видимой на панели управления и отобразим её.
Запустим проект и посмотрим, что получилось.