PDA

Просмотр полной версии : 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. Не люблю перемешивать код на разных языках, только если никак по-другому.

Полностью согласен.

Rus"
19.01.2024, 14:52
Столкнулся с похожим вопросом, как можно включить поддержку шарпа для 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 нельзя?