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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.11.2011, 16:37   #1  
Pustik is offline
Pustik
Участник
 
807 / 372 (14) ++++++
Регистрация: 04.06.2004
Цитата:
Сообщение от Maxim Gorbunov Посмотреть сообщение
В любом случае, таких сложносочинённых форм по определению не может быть много.
Согласен . Я просто с ходу придумал пример, который показывает, что присоединение таблицы не всегда заменит display-метод.
Цитата:
Сообщение от Maxim Gorbunov Посмотреть сообщение
Нет, Вы всё-таки подумайте: как ограничить доступ на display-метод, определённый на форме?
А чего тут думать-то у display-метода есть EDT, который он возвращает.У EDT relation.Определили таблицу.Смотрим свойство FormRef у соответствующей таблицы, если FormRef пустой тогда вот-так Работа с Lookup.Определили форму.Итак нашли и таблицу и форму - все нужные нам объекты. Дальше определяем права у этих объектов в таблице настройки прав стандартным образом. Думаю если найдены объекты с правами не должно быть проблем.
__________________
-Ты в гномиков веришь?
-Нет.
-А они в тебя верят, смотри, не подведи их.
Старый 01.11.2011, 17:25   #2  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Согласен с тем, что ответственность за отображение/скрытие контролов нужно по максимому перекладывать на ядро системы. В случае display-метода, этого можно добиться, например, научив систему анализировать relation на расширенном типе данных у значения возвращаемого методом
А теперь давайте вспомним, что вообще-то в системе права на primary key и права на foreign key - две разные вещи. То есть, например, если дать пользователю смотреть список заказов, но скрыть таблицу клиентов, поле Клиент в заказе можно оставить доступным. Если делать, как предлагаете Вы, то придётся либо отказаться от такого подхода, либо написать большой документ для администраторов, в котором перечислить, в каких случаях работает так, а в каких - иначе. Кстати, подумайте ещё о том, что тот, кто настраивает права, далеко не всегда (на моей практике так почти никогда) имеет представление о программировании в системе, и для него разница между dislpay-методом и полем в таблице весьма условна.
Цитата:
Сообщение от lev Посмотреть сообщение
Читал, читал ветку, и решил сюда же запостить пожелание о том, что бы была возможность перейти к основной таблице из поля диалога, который был создан с помощью класса Dialog. Это конечно мелочь, но иногда очень этого не хватает.

Ну конечно проверять на основе какого EDT (и вообще на его ли основе) создано поле в диалоге, и если у этого EDT есть Relation (ну или заполнено свойство HelpForm), то дать возможность перейти к основной таблице.
Помню, как меня однажды консультант ругал, когда я добавил такую возможность в своём диалоге. Пришлось убирать

Цитата:
Сообщение от Pustik Посмотреть сообщение
Согласен . Я просто с ходу придумал пример, который показывает, что присоединение таблицы не всегда заменит display-метод.
Я Вам также сходу предложил, как это можно решить, не ломая ядра По-прежнему не вижу реальной пользы в такой фиче.

Цитата:
Сообщение от Pustik Посмотреть сообщение
А чего тут думать-то у display-метода есть EDT, который он возвращает.У EDT relation.Определили таблицу.Смотрим свойство FormRef у соответствующей таблицы, если FormRef пустой тогда вот-так Работа с Lookup.Определили форму.Итак нашли и таблицу и форму - все нужные нам объекты. Дальше определяем права у этих объектов в таблице настройки прав стандартным образом. Думаю если найдены объекты с правами не должно быть проблем.
Ага. Только заметьте, что определяете таким образом Вы права на объект, а не на display-метод, который на этот объект ссылается. В существующей идеологии настройки прав доступа это две совершенно разные вещи.
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 01.11.2011, 17:39   #3  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от Maxim Gorbunov Посмотреть сообщение
Помню, как меня однажды консультант ругал, когда я добавил такую возможность в своём диалоге. Пришлось убирать
А какое обоснование ругани было (если не секрет) ?
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 01.11.2011, 18:11   #4  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Цитата:
Сообщение от lev Посмотреть сообщение
А какое обоснование ругани было (если не секрет) ?
Ну, уж прямо ругани-то не было Если честно, подробностей я уже не помню. Задача была поставлена так: сделать, чтобы работало, как все остальные стандартные диалоги. Возможно, идея в том, что диалог предполагает некоторую модальность, и не хотелось давать пользователям лишний повод про неё забыть.
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 02.11.2011, 08:49   #5  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от Maxim Gorbunov Посмотреть сообщение
Ну, уж прямо ругани-то не было Если честно, подробностей я уже не помню. Задача была поставлена так: сделать, чтобы работало, как все остальные стандартные диалоги. Возможно, идея в том, что диалог предполагает некоторую модальность, и не хотелось давать пользователям лишний повод про неё забыть.
Так я и говорю про то, что бы добавили эту возможность в базовый функционал системы, и что бы это было бы для всей системы нормой

По поводу "модальности" диалогового окна, вопрос спорный...
В системе диалог открывается не как модальная форма, и это хорошо! Ведь иногда, что бы заполнить поля диалога, нужно сходить в некоторые справочники, и уточнить какое же значение нужно выбрать. Если диалог будет модальным, то его надо будет в начале закрыть, потом уже ходить по справочникам, а вся информация которая уже была введена в диалоге потеряется и её надо будет вводить заново, что не есть хорошо (ведь на диалоге может быть с десяток полей, и вот заполнив 9 (15) полей ты понимаешь, что сейчас тебе надо закрыть окно, а потом заново 9-ть (15-ть) полей заполнить... уверен пользователь по этому поводу немного расстроился бы ).

Так вот, я как раз для таких случаев (когда надо посмотреть уточняющие параметры в справочниках для указания какого то значения в диалоге) и предлагаю добавить возможность перехода к форме основной таблицы прям из диалога, мне кажется это очень удобным (на личном опыте, очень часто об этом вспоминаю ).
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 01.11.2011, 18:06   #6  
Pustik is offline
Pustik
Участник
 
807 / 372 (14) ++++++
Регистрация: 04.06.2004
Цитата:
Сообщение от Maxim Gorbunov Посмотреть сообщение
Помню, как меня однажды консультант ругал, когда я добавил такую возможность в своём диалоге. Пришлось убирать
За что Ваш консультант так не любит пользователей? Ведь удобно же
Цитата:
Сообщение от Maxim Gorbunov Посмотреть сообщение
Я Вам также сходу предложил, как это можно решить, не ломая ядра
А так ломается ядро пользователя..Здесь надо через "Перейти к основной таблице", а там по кнопочке справа в пункте меню.
Цитата:
Сообщение от Maxim Gorbunov Посмотреть сообщение
Ага. Только заметьте, что определяете таким образом Вы права на объект, а не на display-метод, который на этот объект ссылается. В существующей идеологии настройки прав доступа это две совершенно разные вещи
Дак ведь здесь речь-то идет о возможности "Перейти к основной таблице". Т.е. права на этот display-метод настроены уже изначально. И если пользователь видит этот метод значит права настроены так, что он должен видить этот метод. Остается проверить права как-раз на объекты, которые он может открыть через "Перейти к основной таблице". Или я что-то не понимаю. Поправьте если я не прав.
__________________
-Ты в гномиков веришь?
-Нет.
-А они в тебя верят, смотри, не подведи их.
Старый 01.11.2011, 18:19   #7  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Цитата:
Сообщение от Pustik Посмотреть сообщение
А так ломается ядро пользователя..Здесь надо через "Перейти к основной таблице", а там по кнопочке справа в пункте меню.
Если очень надо (в чём у меня по-прежнему большие сомнения), можно и без кнопочки. Перекрывайте метод jumpRef() на контроле и программируйте, сколько хотите Я же не говорю, что так делать вообще никогда нельзя. Я лишь говорю, что это настолько специфическая задача, что решать её с помощью ядра - это overkill. Дайте разработчикам MS шанс поработать над более существенными проблемами

Цитата:
Сообщение от Pustik Посмотреть сообщение
Дак ведь здесь речь-то идет о возможности "Перейти к основной таблице". Т.е. права на этот display-метод настроены уже изначально. И если пользователь видит этот метод значит права настроены так, что он должен видить этот метод. Остается проверить права как-раз на объекты, которые он может открыть через "Перейти к основной таблице". Или я что-то не понимаю. Поправьте если я не прав.
Не, мы про разные вещи говорим. Я говорю именно про доступ на тот самый контрол, который отображает значение display-метода. Как его спрятать отдельно от формы/таблицы, к которой он привязан?
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 01.11.2011, 18:37   #8  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Maxim Gorbunov Посмотреть сообщение
А теперь давайте вспомним, что вообще-то в системе права на primary key и права на foreign key - две разные вещи. То есть, например, если дать пользователю смотреть список заказов, но скрыть таблицу клиентов, поле Клиент в заказе можно оставить доступным.
Совершенно верно, но вводить код клиента прийдётся вручную без лукап-формы
Цитата:
Сообщение от Maxim Gorbunov Посмотреть сообщение
Если делать, как предлагаете Вы, то придётся либо отказаться от такого подхода, либо написать большой документ для администраторов, в котором перечислить, в каких случаях работает так, а в каких - иначе.
Согласен про анализ Relation на ExtendedDataType я возможно поторопился. Но анализ самих ExtendedDataType в теории может предоставить такой инструмент. Как вы считаете, ExtendedDataType гипотетически может выступать объектом-еденицей настройки прав доступа? На память не помню а проверить возможности сейчас нет. Есть ли у объекта ExtendedDataType свойство SecurityKey?
Старый 01.11.2011, 18:49   #9  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Совершенно верно, но вводить код клиента прийдётся вручную без лукап-формы
А никто и не говорит, что этот пользователь создаёт новые заказы Может это кладовщик.
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Как вы считаете, ExtendedDataType гипотетически может выступать объектом-еденицей настройки прав доступа?
Боюсь, что это только усложнит уже имеющуюся систему. Да и не очень понятно, как такую задачу решить в принципе. Например, EDT могут наследоваться. Как это будет поддерживаться системой настройки прав?
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
На память не помню а проверить возможности сейчас нет. Есть ли у объекта ExtendedDataType свойство SecurityKey?
Нет. Есть только ConfigurationKey.
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Не работает переход к основной таблице. samolalex DAX: Программирование 3 14.02.2011 16:13
Накладной расход, переход к основной таблице ZVV DAX: Программирование 0 03.03.2010 16:55
Переход на правильную запись при Переходе к основной таблице. - 2 Anais DAX: Программирование 2 01.11.2004 17:14
Переход на правильную запись при Переходе к основной таблице. Anais DAX: Программирование 11 29.06.2004 19:16
edit и display методы Maxim Gorbunov DAX: База знаний и проекты 4 15.01.2002 12:58

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

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

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