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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 05.08.2013, 22:46   #1  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
EDT массив и одинаковые метки
Добрый вечер.

Просто интересное наблюдение. Был нужен EDT строковый массив, у некоторых элементов которого метки бы повторялись (при разных HelpText). Вроде бы, волне нормальное желание. Но как оказалось, аксапта не позволяет добавить Array-элемент с меткой, которая присвоена уже другому элементу.
Однако это легко обходится изменением меток Array-элементов этого EDT в блокноте и загрузкой XPO-файла обратно.



AX2009

Последний раз редактировалось Eldar9x; 05.08.2013 в 22:49.
За это сообщение автора поблагодарили: mazzy (2), lev (2).
Старый 06.08.2013, 10:06   #2  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от Eldar9x Посмотреть сообщение
Был нужен EDT строковый массив, у некоторых элементов которого метки бы повторялись (при разных HelpText). Вроде бы, волне нормальное желание.
С точки зрения пользователя ничего нормального в этом, по-моему, нет. Прям как у логопеда из старого фильма "По семейным обстоятельствам": "...да нет же, я выфу на Ки'гэвской, а он - на Ки'гэвской"
Старый 06.08.2013, 17:27   #3  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
Цитата:
Сообщение от gl00mie Посмотреть сообщение
С точки зрения пользователя ничего нормального в этом, по-моему, нет. Прям как у логопеда из старого фильма "По семейным обстоятельствам": "...да нет же, я выфу на Ки'гэвской, а он - на Ки'гэвской"

Ну, почему же? Простой пример. Скажем, в таблице есть несколько полей типа EmplId. Мы хотим для каждого из них добавить поле Телефон. Для каждого EmplId поля есть на форме отдельная выделенная группа, в заголовке которой (группы) указывается что это за EmplId. Зачем именовать каждое поле Phone[i] различной меткой, если то, к чему она относится указывается в заголовке группы? Можно, конечно, это и сделать, но во-первых, мы получим слишком длинные и избыточные метки у полей на форме, а во-вторых, это подробное описание поля уже есть в HeplText.
Старый 06.08.2013, 19:12   #4  
RVS is offline
RVS
Сенбернар
Аватар для RVS
Злыдни
 
696 / 130 (6) +++++
Регистрация: 27.02.2003
Адрес: Королев МО
Цитата:
Сообщение от Eldar9x Посмотреть сообщение
в таблице есть несколько полей типа EmplId. Мы хотим для каждого из них добавить поле Телефон
Ага.. а потом туда же - адрес, ИНН...

Ни о чем не напоминает?
__________________
Best Regards,
Roman
Старый 06.08.2013, 19:15   #5  
ice is offline
ice
Участник
Аватар для ice
Лучший по профессии 2014
 
1,731 / 406 (17) +++++++
Регистрация: 23.03.2006
дисплей методом можно телефон вывести
За это сообщение автора поблагодарили: Eldar9x (1).
Старый 06.08.2013, 19:45   #6  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от Eldar9x Посмотреть сообщение
Скажем, в таблице есть несколько полей типа EmplId. Мы хотим для каждого из них добавить поле Телефон. Для каждого EmplId поля есть на форме отдельная выделенная группа, в заголовке которой (группы) указывается что это за EmplId.
Получается, что таблица (как элемент модели данных) подстраивается под форму (как элемент представления), и вне контекста данного конкретного представления с таблицей работать будет неудобно. Завтра сделают другую форму типа "номера для обзвона", с другими группами или без EmplId - и там будет куча полей с одинаковыми метками.
-Нюра, а мне брать данные для обзвона из поля "телефон" или же "телефон"?
-А вот и не угадала, Ира, бери из поля "телефон"!
Еще на грид такие поля классно вытаскивать...
Цитата:
Сообщение от Eldar9x Посмотреть сообщение
подробное описание поля уже есть в HeplText.
Ну да, только чтобы его увидеть, надо шлепнуться курсором в поле и потом скосить взгляд на статусную строку, где показывается HelpText. Не угадал - шлепайся в следующее поле; очень удобно...
Впрочем, это все, конечно, - занудное брюзжание, однако датчане-основатели, на мой взгляд, не просто так ввели ограничение для меток полей-массивов К слову, решить "проблему" можно было и иначе: на EDT сделать нормальные различающиеся метки для каждого элемента массива, а потом поставить метку на поле таблицы - в этом случае тоже у всех элементов поля-массива метки окажутся одинаковыми.
Старый 06.08.2013, 20:10   #7  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,940 / 3229 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от Eldar9x Посмотреть сообщение
Был нужен EDT строковый массив, у некоторых элементов которого метки бы повторялись (при разных HelpText). Вроде бы, волне нормальное желание. Но как оказалось, аксапта не позволяет добавить Array-элемент с меткой, которая присвоена уже другому элементу.
А что будет в случае работы с фильтрами ? По метке конкретное поле будет неоднозначно определяться, что может приводить к неприятным багам.
Старый 13.08.2013, 16:35   #8  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
Цитата:
Сообщение от ice Посмотреть сообщение
дисплей методом можно телефон вывести
Тоже кстати вариант, спасибо. Хотя плодить дисплей методы, наверное, тоже нехорошо. Потом к ним еще кэширование на форме делать...

Цитата:
Сообщение от gl00mie Посмотреть сообщение
К слову, решить "проблему" можно было и иначе
Не совсем... Если к примеру нам нужно две пары повторяющихся меток, то такой вариант не покатит.

Цитата:
Сообщение от Logger Посмотреть сообщение
А что будет в случае работы с фильтрами ? По метке конкретное поле будет неоднозначно определяться, что может приводить к неприятным багам.
и тут снова нам поможет HelpText

ps: так чего, кучу одинаковых полей плодить на таблице что-ли? Я понимаю минусы решения, но альтернатива-то какая?

Последний раз редактировалось Eldar9x; 13.08.2013 в 16:40.
Старый 13.08.2013, 18:58   #9  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от Eldar9x Посмотреть сообщение
Цитата:
Сообщение от Logger Посмотреть сообщение
А что будет в случае работы с фильтрами ? По метке конкретное поле будет неоднозначно определяться, что может приводить к неприятным багам.
и тут снова нам поможет HelpText
Имелось в виду то, что форма расширенного фильтра при указании метки поля может подхватить не то поле для фильтрации, которое пользователь предполагал, глядя на HelpText
Цитата:
Сообщение от Eldar9x Посмотреть сообщение
Я понимаю минусы решения, но альтернатива-то какая?
Например, перебивание меток на лету на данной конкретной форме, раз особенности ее дизайна предполагают одинаковые метки у кучи полей. В callback-методе можно анализировать свойства dataField()/dataSource() (последнее должно быть равно FormDS.id() для нужной таблицы) и менять метки на то, что нужно. Надо только учесть, что у контролов dataField() - всегда расширенный идентификатор поля, и его для удобства надо обрабатывать с помощью fieldExt2Id().

Последний раз редактировалось gl00mie; 13.08.2013 в 19:05. Причина: дополнение
За это сообщение автора поблагодарили: S.Kuskov (1).
Старый 14.08.2013, 18:05   #10  
Zimes is offline
Zimes
Участник
 
4 / 10 (1) +
Регистрация: 14.08.2013
Мне кажется, практика создания уймы полей типа EmplId, особенно, если им соответствуют ещё какие-то поля. Самое правильное в такой ситуации - создать отдельную табличку, связанную с исходной хоть по рекИд. И там уже плодить все эти пары. Если нужно их как-то различять для целей фильрации - добавить поле спецификатор.

А на худой конец сделать пару полей типа финансовой аналитики.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Метки и Меточные файлы sguryev DAX: База знаний и проекты 1 03.09.2021 12:01
ax-erp: ReferenceTable & Table References on EDT Blog bot DAX Blogs 0 18.12.2012 02:11
ax-erp: EDT Relation Migration Tool [AX 2012] Blog bot DAX Blogs 0 14.12.2012 23:11
Info: ID полей таблицы типа EDT массив (array elements) SHiSHok DAX: Программирование 4 20.12.2010 12:44
Список полей таблиц на базе конкретного EDT Владимир Максимов DAX: Программирование 10 06.10.2004 14:45

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

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

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