CONSAT
Forum Member / Участник форума
Участник № / Member № 51
отправлено / posted
При доработке графического интерфейса возникла проблема с формами отображения, привязанными к параметру состояния кнала. При привязке формы к состоянию канала и при дальнейшей смене экрана и возврата к требуемому - происходит неправильное отображение формы (всплывает) - а не должна
Направляем Вам проект с данной проблемой.
Поставленная задача: Динамический текст должен исчезать с экрана как только состояние канала "1" = 1.
1. Запускаем проект. 2. На экране 2 отображается изменение значения канала 1 (ДИНАМИЧЕСКИЙ ТЕКСТ) 3. Нажимаем кнопку Состояние. 4. С экрана исчезает динамический текст. Все нормально!!! 5. С помощью кнопки Экран 1 переходим на экран 2 6. Возращаемся на экран 2, нажав на кнопку Экран 1 7. Видим, что на экране появился динамический текст.
Данная ситуация не наблюдается если форма отображения привязана к параметру канала ДОСТОВЕРНОСТЬ. Это можно проверить с помощью кнопки Достоверность.
Сообщения / Posts 58 | Из / From: Украина
| IP / IP: IP адрес / IP address |
отправлено / posted
В Вашем проекте происходит конфликт двух ФО Открыть/Закрыть. Обратите внимание - обе формы управляют одним и тем же динамическим текстом. Индекс атрибута Достоверность в таблице атрибутов канала идет после атрибута Состояние. Таким образом Ваша ФО Динамический текст при перерисовке экрана всегда управляется ФО Открыть/Закрыть по атрибуту Достоверность.
Сообщения / Posts 17320 | Из / From: Россия
| IP / IP: IP адрес / IP address |
CONSAT
Forum Member / Участник форума
Участник № / Member № 51
отправлено / posted
Посоветуйте, пожалуйста, как лучше поступить в данном случае. Задача состоит в том, что необходимо убирать динамический текст с экрана и по достоверности и по сотоянию канала.
Сообщения / Posts 58 | Из / From: Украина
| IP / IP: IP адрес / IP address |
отправлено / posted
Для этого необходимо реализовать логический алгоритм на FBD. Иначе нельзя - управляющий выход должен всегда быть один и если он зависит от нескольких состояний, то обязательно должен быть промежуточный алгоритм (в Вашем случае это логическое ИЛИ от двух состояний). Соответственно это потребует дополнительного канала в базе, но можно воспользоваться не используемым атрибутом любого из каналов (например границами).
Сообщения / Posts 17320 | Из / From: Россия
| IP / IP: IP адрес / IP address |
CONSAT
Forum Member / Участник форума
Участник № / Member № 51
отправлено / posted
По вашему совету создали FBD, и дискретный канал, управляющий ФО ДИНАМИЧЕСКИЙ ТЕКСТ. Ко входам FBD привязали состояние и достоверность канала "1". Выход FBD привязаль на 1 бит дискретного канала.
В итоге при последовательности 1. Нажимаем кнопку "Сотояние", в атрибут "Состояния" канала "1" прописывается 1, но при этом в 1 бит дискретного канала единичка не прописывается, соответственно ДИНАМИЧЕСКИЙ ТЕКСТ не удаляется. 2. Нажимаем кнопку "Достоверность" - все работает.
Сообщения / Posts 58 | Из / From: Украина
| IP / IP: IP адрес / IP address |
отправлено / posted
В Вашем проекте ошибка: Вы привязали FBD к каналу, состоянием которого Вы же и управляете (т.е. - отключаете канал от пересчета). Естественно FBD при 1 на атрибуте Состояние не пересчитывается и Ваш алгоритм не работает.
Сообщения / Posts 17320 | Из / From: Россия
| IP / IP: IP адрес / IP address |