
Сообщение от
megadocent
Подскажите, пожалуйста, с экранами.
Правильно я делаю, или есть способы проще.
Вопрос первый. Может есть примеры/описание, как следующую хотелку реализовать?
Автоматический вывод экранов по их приоритету.
Имеется N экранов, на каждом свой параметр. Хочется:
1) Чтобы при аварии связанной с параметром высвечивался его экран.
2) Если появляется авария на более приоритетном параметре - высвечивался его экран.
3) Если авария пропала - переключение на экран с менее приоритетной.
4) Если аварий нет - главный экран.
5) Если пользователь ковыряется в параметрах - не переключать экраны.
6) Если пользователь ничего не делал больше N секунд - переключать экраны согласно авариям.
На текущий момент я пришел к следующему решению: Все аварии завожу в макрос. На выходу у него N булевских переменных, из которых активна только одна нужная.
Для каждого экрана в условиях перехода добавляю N-1 условий, что если такая-то переменная поменялась - переходим на такой-то экран.
Проблемы:
1) Геморно на N экранах вводить N условий для перехода, помимо ручных. Ощущение, что я делаю что-то не то и должен быть более простой способ.
(Я так понимаю, для этого задумывались коллекции переходов, чтобы создать один раз коллекцию переходов и на каждом экране выбрать её. Но сейчас это просто на будущее, которая не работает.)
2) Как запретить переходы при возникновении аварии, если пользователь сам ходит по экранам - я так понял никак.
Вопрос второй.
Часть параметров связана с другими устройствами, висящими на шине RS485 (другая ПР200, прочие датчики). При проблемах с доступом хочется, чтобы вместо цифр высвечивалось "Нет связи".
Сделал это наложением 2 надписей в строке. Одна с параметром, вторая булевская, в зависимости от статуса прибора на порту показывает "Нет связи" или ничего.
Работает как хотелось. Но собственно вопрос - это вообще, нормальный и штатный путь, накладывать разные надписи на одно знакоместо или я через одно место делаю?
По мне это как-то неочевидно и додумался до такого не сразу.