27.03.2024, 20:51 | #1 |
Участник
|
Метод isVisible класса FormControl. Что он делает ?
Вопрос (Ax 2012).
Как работает метод isVisible класса FormControl ? Я раньше думал что это просто сумма (через И) методов visible() для контрола, поля датасорса и поля таблицы X++: (formControl.visible() && formDataObject.visible() && dictField.visible() ) Есть исключения. Например, если в форме несколько закладок (tabPage) и контрол расположен не на 1-й закладке то при после открытия формы для него isVisible вернет false. Но при переключении на нужную вкладку, начинает возвращать true. Похоже сделана ленивая инициализация значения в целях оптимизации. Также если на форме несколько датасорсов и идет изменение свойства visible для контрола и содержащих его групп, то неожиданно значение может "залипнуть" даже при переключении на нужную вкладку. Метод все равно возвращает false. Но если сделать reread на датасорсе то "отмыкает" и значение становится правильным. Пришлось написать свой метод isVisible который работает всегда как надо. Но может быть я просто не понимаю как он должен работать ? В документации внятного описания не нашел. В гугле тоже молчок. Есть еще isDisplayed. Он просто выводит, видим ли в данный момент контрол для пользователя (стоим на нужной вкладке и контрол виден, значит true, переключились на другую вкладку - false) Последний раз редактировалось Logger; 27.03.2024 в 21:10. |
|