16.09.2014, 19:43 | #1 |
Участник
|
Глобальная смена label для поля DS
Добрый день,
Внезапно застопорился на банальной, казалось бы, задаче. Есть на разных вкладках и группах несколько контролов, которые завязаны на одно и то же поле источника данных. В зависимости от состояния параметра необходимо программно переназначить метку (label) поля. Конечно же, первая мысль была про DS.object. Но, к моему удивлению (к удивлению потому что столько проработал и не замечал этого раньше) FormDataObject предоставляет лишь геттеры для label и helpText. Задачу, разумеется, можно решить в лоб и просто программно сменить метку для отдельных контролов, но хотелось бы использовать более изящное решение. Удивительно, почему с помощью FormDataObject вполне можно глобально изменить редактируемость, обязательность, видимость поля, переопределить ключевые методы, но при этом банально сменить метку нельзя...
__________________
Axapta has seduced me deadly! |
|
16.09.2014, 20:17 | #2 |
Участник
|
FormDataObject отвечает за данные и доступ к ним, а за отображение, в т.ч. метки отвечают FormControl'ы. Разделение обязанностей
Итератор с поддержкой методов обратного вызова для обработки контролов на форме |
|
|
За это сообщение автора поблагодарили: HorrR (1). |
17.09.2014, 16:10 | #3 |
Участник
|
Цитата:
Сообщение от gl00mie
FormDataObject отвечает за данные и доступ к ним, а за отображение, в т.ч. метки отвечают FormControl'ы. Разделение обязанностей
Итератор с поддержкой методов обратного вызова для обработки контролов на форме И это "НО" заключается в условности этого самого разделения. Так, например, свойство visible вполне себе визуальное и оно вполне устанавливается через FormDataObject, что в свою очередь установит все контролы, завязанные на это поле в то же состояние. А так же, allowEdit и Mandatory, которые, конечно, в большей степени отвечают за доступ, тем не менее, подсветят волнистой красной линией все контролы этого поля (в случае с mandatory) и установят возможность редактировать содержимое контрола (в случае с allowEdit). Поэтому почему изначально не добавить хелпер, который бы подобным же образом прошелся по всем контролам формы, которые базируются на поле и не обновил бы их метку - мне не понятно. Тем более ведь очевидно, что можно было бы повторно использовать готовый итератор по контролам поля (который и есть 99% реализации такого хелпера) . P.S. А за итератор однозначно спасибо, жаль только, что это не реализовано в стандарте. Но тут уж как есть.
__________________
Axapta has seduced me deadly! |
|
17.09.2014, 16:23 | #4 |
Участник
|
|
|
18.09.2014, 10:22 | #5 |
Участник
|
Некоторые рассуждения на этот счет можно найти в теме Отображение невидимых полей в браузере таблиц. Вкратце: невидимые поля недоступны пользователям Аксапты, а таковыми теперь стали и сторонние системы, общающиеся с Аксаптой через AIF.
|
|
18.09.2014, 11:04 | #6 |
Участник
|
Цитата:
Сообщение от gl00mie
Некоторые рассуждения на этот счет можно найти в теме Отображение невидимых полей в браузере таблиц. Вкратце: невидимые поля недоступны пользователям Аксапты, а таковыми теперь стали и сторонние системы, общающиеся с Аксаптой через AIF.
|
|