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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.12.2017, 01:20   #1  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,342 / 3563 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от skuull Посмотреть сообщение
А что с этим постом не так thwidmer: Deep links available in every form ?
Все так. Только вопрос - что мы хотим получить?
В данном примере делается расширение класса и мы получим изменим исходную ссылку. Т.е. это будет "вариант А".
Но с другой стороны - концептуально (на мой взгляд) сделать именно Extension как в том примере - более правильно.
Мой пример хорош как вариант кода "с одним объектом". Ну и мне всегда нравятся готовые примеры, которые можно скачать, влить к себе без лишних телодвижений и они сразу заработают.

Я не ломал стандартный функционал только по одной причине - если ссылка не будет работать (из-за внутренней логики какой-нибудь формы), то останется возможность использовать обычную (штатную) ссылку. Если бы я мог гарантировать работоспособность своего примера в 100% случаях всех форм, то можно было бы и заменить штатный функционал на измененный.

Ну и вообще моя позиция такова - что очень не хватает материалов на русском языке, даже если есть альтернатива на английском (не люблю буржуйский язык). Я не пользовался той статьей и она мне при поиске не попалась, поэтому привожу примеры на русском языке, даже если есть альтернативы на английском. Если источник примеров был на английском языке - то делаю ссылку. Если пример был написан самостоятельно - то ссылку не делаю.

Цитата:
Сообщение от skuull Посмотреть сообщение
И зачем "if (formRun" ? Он или есть или мы ловим null reference exception до if
X++:
        FormDataSource formDS = formRun.dataSource();
        if (formRun && formRun.isRootNavigable())
Код был взят с исходной формы FormRunGetLinkAction, плюс добавлено обновление датасорса. Замечание корректное, но ... null reference exception никогда не будет словлено, т.к. панель кнопок всегда привязана к исходной форме. Т.е. здесь просто лишняя проверка на formRun, которая в целом никому не мешает.
__________________
Возможно сделать все. Вопрос времени

Последний раз редактировалось sukhanchik; 30.12.2017 в 01:33.
Старый 30.12.2017, 02:16   #2  
skuull is offline
skuull
Участник
Most Valuable Professional
Лучший по профессии 2014
 
700 / 752 (27) +++++++
Регистрация: 08.03.2013
Адрес: ХЗ
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
Замечание корректное, но ... null reference exception никогда не будет словлено, т.к. панель кнопок всегда привязана к исходной форме. Т.е. здесь просто лишняя проверка на formRun, которая в целом никому не мешает.
Ну как никогда... Вы написали класс который принимает FormRun т.е. кто угодно может передать туда любой FormRun у которого может и не быть caller и напрямую вызвать generateFullURL, т.к. он публичный. Так же вы его назвали "полноценный". Это дает мне основание думать, что это не какой-то там примерчик, а целый класс, бери и используй

Выкладывая код на всеобщее обозрение надо быть готовым к тому что вам скажут про construct с параметрами который не best practice и про прочие мелочи
Старый 30.12.2017, 11:39   #3  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,342 / 3563 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от skuull Посмотреть сообщение
Ну как никогда... Вы написали класс который принимает FormRun т.е. кто угодно может передать туда любой FormRun у которого может и не быть caller и напрямую вызвать generateFullURL, т.к. он публичный. Так же вы его назвали "полноценный". Это дает мне основание думать, что это не какой-то там примерчик, а целый класс, бери и используй
Все верно. Это целый класс - бери и используй. Но любые примеры всегда поставляются "как есть" под ответственность того, кто использует. Главная ценность этого класса - это быстрая возможность посмотреть, как он работает. Дальнейшая переработка кода оставляется на усмотрение того, кто будет его использовать. "Полноценность" примера состоит в его результирующей работоспособности, а не в готовности решения для использования в промышленной эксплуатации. Кто-то посчитает, что он готов, а кто-то нет. Это личная ответственность того, кто этот пример вставит себе в приложение

Теоретически возможно все и от дураков никогда не защитишься. Именно поэтому я и не стремлюсь это делать. Кому потребуется - тот навесит на пример дополнительные проверки и средства защиты.

Цитата:
Сообщение от skuull Посмотреть сообщение
Выкладывая код на всеобщее обозрение надо быть готовым к тому что вам скажут про construct с параметрами который не best practice и про прочие мелочи
У меня к моему великому счастью есть возможность не оглядываться на best practice и писать код так, как я считаю нужным. Этим примером никто не заставляет пользоваться
Выкладывая же код на данный общедоступный ресурс я исхожу из того, что пока больше никто аналогичных действий на этом ресурсе не делает, поэтому оставляю за собой право допускать несущественные (т.е. не ломающие работоспособность примера) ошибки и игнорировать сообщения про best pratice от тех, кто аналогичные примеры не выкладывает
__________________
Возможно сделать все. Вопрос времени

Последний раз редактировалось sukhanchik; 30.12.2017 в 11:46.
За это сообщение автора поблагодарили: mazzy (2).
Теги
d365o, deep link, полезное

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Кликабельная URL-ссылка в отчёте tindomka DAX: Программирование 2 01.06.2017 23:06
dynaxtips: The URL Parameters Blog bot DAX Blogs 0 21.03.2017 03:13
Позиционирование на конкретную запись датасета Lucky13 DAX: Программирование 8 21.12.2005 19:26
Ошибка при импорте демоданных (Axapta 3.0 CIS SP1) KocDm DAX: Администрирование 2 11.08.2005 12:04
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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