Просмотр полной версии : MS4D 1.2.16 => Таблица данных => Скрывать строки
pavel.migdalev
11.08.2022, 15:31
Приветствую.
Имею массив структур фиксированной длины, например, 1..100.
Но содержание этого массива может меняться, т.е. актуальная для отображения информация может храниться в разных индексах, например, в [1], [5], [7].
Вопрос: как в Таблице данных показать только актуальные строки?
В моем примере Таблица данных должна отображать только три строки, а по факту она отображает 100 строк, 97 из которых неактуальные или пустые.
Заранее спасибо.
volgogaz
19.08.2022, 11:02
Вопрос: как в Таблице данных показать только актуальные строки?
Я только начинаю изучать мастерскаду, но судя по тому, что столько дней никто не отвечает на этот вопрос, то попробую предложить свой вариант.
Создается прога в которой формируется динамический массив для отображения. Что-то типа
Список_Пользователей := CREATE_ARRAY(INIT:=1 , SIZE:=1 ); //Список_Пользователей это и есть временный динамический массив структур UserList для отображения он явл-ся входом для таблицы данных.
while ( Условие перебора ) do // В вашем случае наверное лучше for от 1 до 100 : перебор элементов исходного массива с выбором не пустых элементов
формирование элемента структуры массива
UserList.User := strTmpUser;
UserList.Role := strTmpRole;
Список_Пользователей[i] := UserList;
i := i +1;
END_WHILE
У меня во всяком случае, так заработало.
pavel.migdalev
19.08.2022, 13:00
Спасибо за ответ!
Вот офиц. ответ техподдержки:
Фильтрация данных в элементе "Таблица данных" не заявлена разработчиком. В качестве источника данных должны приниматься уже подготовленный набор записей. Но Вы можете предварительно обработать данные программой, например программой на C# (см. снимок экрана).
62179
В моём примере:
- определена структура данных;
- задан параметр, имеющий тип массива структур;
- значения параметра передаются на вход программы в "pSRC";
- отбираются записи только с OType = 1;
- соответствующие критерию записи записываются в "pTRG".
Значение "pTRG" можно использовать в качестве источника данных для элемента "Таблица данных".
volgogaz
19.08.2022, 13:33
Тоже хорошо.
В моем случае п 1 ,2, 5 такие же
(- определена структура данных;
- задан параметр, имеющий тип массива структур;
- соответствующие критерию записи записываются во временный динамический массив структур )
вместо 3 и 4 работает вышесказанная программа.
P.s. Не люблю перемешивать код на разных языках, только если никак по-другому.
pavel.migdalev
19.08.2022, 14:08
P.s. Не люблю перемешивать код на разных языках, только если никак по-другому.
Полностью согласен.
Столкнулся с похожим вопросом, как можно включить поддержку шарпа для ms4d (Версия: 1.2.9.17961)? У меня проект на ПЛК-110 так что вариант с установкой версии 1.3 не подходит
pavel.migdalev
19.01.2024, 15:30
Столкнулся с похожим вопросом, как можно включить поддержку шарпа для ms4d (Версия: 1.2.9.17961)? У меня проект на ПЛК-110 так что вариант с установкой версии 1.3 не подходит
Сделайте на языке ST через динамический массив:
//
AInActiveOnly := CREATE_ARRAY(INIT := 0, SIZE := 0);
AInActiveOnlyCount := 0;
//
IF () THEN
//
AInActiveOnlyCount := AInActiveOnlyCount + 1;
AInActiveOnly[AInActiveOnlyCount] := AIn[i];
END_IF;
-----
Обновить MS4D до 1.2.18 нельзя?
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot