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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.05.2013, 04:21   #1  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,039 / 1630 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Отображение невидимых полей в браузере таблиц
Не секрет, что в AX2012 многие поля на таблицах имеют св-во Visible = No.
Причем данные поля не показываются в браузере таблиц, что очень сильно усложняет исследование и отладку кода.
Соответственно вопрос - есть у кого-нибудь какие идеи, как реализовать модификацию, которая позволит просматривать все поля на таблице в виде грида?
(класс SysTableBrowser просто строит грид со всеми полями, а скрываются они потом автоматом исходя из настроек таблиц)
За это сообщение автора поблагодарили: mazzy (2), macklakov (1), S.Kuskov (1).
Старый 21.05.2013, 05:21   #2  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
647 / 350 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Цитата:
Сообщение от trud Посмотреть сообщение
(класс SysTableBrowser просто строит грид со всеми полями, а скрываются они потом автоматом исходя из настроек таблиц)
А что мешает внести в него изменения, чтобы выводить все поля?
__________________
// no comments
Старый 21.05.2013, 08:17   #3  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,438 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Я до сих пор не понимаю для чего придумали это свойство.
Что бы прятать поля из автоотчёта, паспорта записи и расширенного фильтра?
Когда это может понадобиться?
Старый 21.05.2013, 08:24   #4  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,039 / 1630 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Цитата:
Сообщение от dech Посмотреть сообщение
А что мешает внести в него изменения, чтобы выводить все поля?
Так вот в этом собственно и вопрос, что за изменения надо вносить. Т.е. движок Аксапты сам скрывает невидимые поля, класс то добавляет все поля без разбора. т.е. нет такого сво-ва на форме чтобы отобразить невидимое поле

Ну придумали его давно, а массово использовать начали в 2012. Думаю причина в том что в 2012 анонсировали полное соответствие Best practice(а если поле не входит в группу это ошибка), поэтому кто-то и предложил - зачем мучаться, создавать группы полей, давайте просто всем невидимым пользователю полям поставим Visible в No. Руки бы поотрывать
Старый 21.05.2013, 08:29   #5  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,438 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Можно придумать костыли в виде unbound контролов или если получиться display-методов. Но фильровать и сортировать по таким полям будет невозможно.

http://daxrunbase.blogspot.ru/2010/0...e-browser.html
За это сообщение автора поблагодарили: macklakov (1), trud (3), Logger (1).
Старый 21.05.2013, 09:04   #6  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,494 / 1065 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
А сделать видимыми не вариант?
Старый 21.05.2013, 09:35   #7  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,940 / 3229 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Можно придумать костыли в виде unbound контролов или если получиться display-методов. Но фильровать и сортировать по таким полям будет невозможно.

http://daxrunbase.blogspot.ru/2010/0...e-browser.html
Да, я примерно так и сделал.
Завел в обозревателе еще одну закладку, в которой вывожу все поля текущей записи в столбик (используя временную табличку в качестве датасорса и заполняя её на основе DictField) удобно для просмотра и поиска значений.
Также завел на этой закладке строковый столбец с Edit-методом, который использую для отображения и редактирования. Удобно, особенно в случае Invisible и недоступных для редактирования полей.

В общем, обманули MorphX.
Старый 21.05.2013, 14:09   #8  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от trud Посмотреть сообщение
Ну придумали его давно, а массово использовать начали в 2012.
По-моему, это не совсем так: я лично 4-ку живьем не видел, но в 2009-й уже массово скрывались определенные поля "для служебного пользования", что иногда очень напрягает.
Цитата:
Сообщение от trud Посмотреть сообщение
Думаю причина в том что в 2012 анонсировали полное соответствие Best practice(а если поле не входит в группу это ошибка), поэтому кто-то и предложил - зачем мучаться, создавать группы полей, давайте просто всем невидимым пользователю полям поставим Visible в No.
Мне кажется, причин тут несколько, и одна из них - это поддержка "невидимости" полей в AIF. Те поля, которые в АОТ помечены как невидимые, не видны как обычным пользователям, так и внешним системам, работающим через AIF, поскольку в нем есть ряд ключевых мест, где явно запрещается использовать невидимые поля в качестве критериев фильтрации в запросах, в качестве полей, получаемых в выборке, и тех, для которых устанавливается значение. См. следующие перекрестные ссылки на \Classes\SysDictField\visible:
  • \Classes\AxdBase\initQueryFromQuery
  • \Classes\AxdBaseCreate\hasFieldAccessMapAdd
  • \Classes\AxdBaseGenerateXSD\addTableProperties
  • \Classes\AxdBaseRead\buildFieldInfoMap
  • \Classes\AxGenerateAxBCClass\defaultParmMethod
Т.е. подобно CodeAccessPermission, видимость полей - это еще один способ сделать так, чтобы определенные вещи можно было выполнять только в коде приложения, но не в стороннем коде через BC. А уж проверки Best Practices на этом фоне - это так, рюшечки.

Последний раз редактировалось gl00mie; 21.05.2013 в 15:49. Причина: пунктуация
За это сообщение автора поблагодарили: mazzy (1), macklakov (1), S.Kuskov (1).
Старый 21.05.2013, 16:16   #9  
ice is offline
ice
Участник
Аватар для ice
Лучший по профессии 2014
 
1,731 / 406 (17) +++++++
Регистрация: 23.03.2006
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Можно придумать костыли в виде unbound контролов или если получиться display-методов. Но фильровать и сортировать по таким полям будет невозможно.

http://daxrunbase.blogspot.ru/2010/0...e-browser.html
там не хватает обработки полей с типом array
Старый 07.02.2014, 15:08   #10  
IKA is offline
IKA
Участник
 
359 / 65 (3) ++++
Регистрация: 15.03.2006
Тут то же, но с фиксом для array http://gotdax.blogspot.co.uk/2013/06...e-browser.html
За это сообщение автора поблагодарили: macklakov (2), gl00mie (2).
Теги
ax2012, браузер таблиц

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Отображение аннулированных заказов после удаления полей Владимир Максимов DAX: Программирование 3 04.06.2010 16:31
Настройки пользователя - отображение полей Eldar9x DAX: Программирование 4 26.11.2009 11:02
Связывание таблиц по заранее неизвестному кол-ву полей из Dimension TasmanianDevil DAX: Программирование 2 22.03.2006 09:50
Список полей таблиц на базе конкретного EDT Владимир Максимов DAX: Программирование 10 06.10.2004 14:45
Отображение связных таблиц. Сплиттер. Автоувеличение индекса. Delete Action. sguryev DAX: База знаний и проекты 0 14.12.2001 06:15
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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