AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.09.2014, 19:43   #1  
HorrR is offline
HorrR
Участник
 
340 / 30 (2) +++
Регистрация: 18.02.2008
Адрес: Киев
Глобальная смена label для поля DS
Добрый день,

Внезапно застопорился на банальной, казалось бы, задаче.
Есть на разных вкладках и группах несколько контролов, которые завязаны на одно и то же поле источника данных. В зависимости от состояния параметра необходимо программно переназначить метку (label) поля. Конечно же, первая мысль была про DS.object. Но, к моему удивлению (к удивлению потому что столько проработал и не замечал этого раньше) FormDataObject предоставляет лишь геттеры для label и helpText.

Задачу, разумеется, можно решить в лоб и просто программно сменить метку для отдельных контролов, но хотелось бы использовать более изящное решение. Удивительно, почему с помощью FormDataObject вполне можно глобально изменить редактируемость, обязательность, видимость поля, переопределить ключевые методы, но при этом банально сменить метку нельзя...
__________________
Axapta has seduced me deadly!
Старый 16.09.2014, 20:17   #2  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
FormDataObject отвечает за данные и доступ к ним, а за отображение, в т.ч. метки отвечают FormControl'ы. Разделение обязанностей

Итератор с поддержкой методов обратного вызова для обработки контролов на форме
За это сообщение автора поблагодарили: HorrR (1).
Старый 17.09.2014, 16:10   #3  
HorrR is offline
HorrR
Участник
 
340 / 30 (2) +++
Регистрация: 18.02.2008
Адрес: Киев
Цитата:
Сообщение от gl00mie Посмотреть сообщение
FormDataObject отвечает за данные и доступ к ним, а за отображение, в т.ч. метки отвечают FormControl'ы. Разделение обязанностей

Итератор с поддержкой методов обратного вызова для обработки контролов на форме
Что ж, логично, но есть одно "НО"
И это "НО" заключается в условности этого самого разделения.
Так, например, свойство visible вполне себе визуальное и оно вполне устанавливается через FormDataObject, что в свою очередь установит все контролы, завязанные на это поле в то же состояние. А так же, allowEdit и Mandatory, которые, конечно, в большей степени отвечают за доступ, тем не менее, подсветят волнистой красной линией все контролы этого поля (в случае с mandatory) и установят возможность редактировать содержимое контрола (в случае с allowEdit).
Поэтому почему изначально не добавить хелпер, который бы подобным же образом прошелся по всем контролам формы, которые базируются на поле и не обновил бы их метку - мне не понятно. Тем более ведь очевидно, что можно было бы повторно использовать готовый итератор по контролам поля (который и есть 99% реализации такого хелпера) .

P.S. А за итератор однозначно спасибо, жаль только, что это не реализовано в стандарте. Но тут уж как есть.
__________________
Axapta has seduced me deadly!
Старый 17.09.2014, 16:23   #4  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,438 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от HorrR Посмотреть сообщение
свойство visible вполне себе визуальное и оно вполне устанавливается через FormDataObject
Более того оно присутствует на уровне полей таблицы. Никогда не понимал оправданий на этот счет
Старый 18.09.2014, 10:22   #5  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Некоторые рассуждения на этот счет можно найти в теме Отображение невидимых полей в браузере таблиц. Вкратце: невидимые поля недоступны пользователям Аксапты, а таковыми теперь стали и сторонние системы, общающиеся с Аксаптой через AIF.
Старый 18.09.2014, 11:04   #6  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,438 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от gl00mie Посмотреть сообщение
Некоторые рассуждения на этот счет можно найти в теме Отображение невидимых полей в браузере таблиц. Вкратце: невидимые поля недоступны пользователям Аксапты, а таковыми теперь стали и сторонние системы, общающиеся с Аксаптой через AIF.
Да я помню эту тему. Но все равно мне всегда казалось неоправданным такое решение. На мой взгляд такие вещи должны бы регулироваться правами доступа, а так получается какая-то смесь уровней безопасности / бизнес логики и презентационной логики. Хотя тоже самое можно сказать и про AllowEdit и про MaxAccessMode... Возможно в этом что-то и есть, нужно лишь правильно расставить приоритеты. Первичен уровень безопасности и бизнес логики, а уже интерфейс подстраивается под него.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Имитация выбора значения поля на DS формы. bodeaux DAX: Программирование 8 04.12.2012 10:41
emeadaxsupport: How label flushing works under the hood Blog bot DAX Blogs 0 17.08.2010 16:05
Label поля таблицы по его FieldId chanchala DAX: Программирование 12 27.10.2009 10:32
Изменение Label поля группы neys DAX: Программирование 2 24.03.2006 09:24
Как зная название поля таблицы узнать текст, который прописан в Label? Hidden DAX: Функционал 1 03.06.2005 13:52

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 05:39.