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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 28.09.2017, 19:12   #1  
Blog bot is offline
Blog bot
Участник
 
25,459 / 846 (79) +++++++
Регистрация: 28.10.2006
Kashperuk Ivan: Development Tutorial: Extensibility: Adding a table display/edit method and showing it on a form in PU10
Источник: http://kashperuk.blogspot.com/2017/0...nsibility.html
==============

One of the super common tasks for an application developer working to address customer requirements is adding display methods showing some additional customer-specific information on existing forms.Usually you would overlayer the corresponding table and form and insert the missing method. Overlayering is not an option soon, however it is possible to do the same using only Extensions.As an

Источник: http://kashperuk.blogspot.com/2017/0...nsibility.html
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору.
Старый 29.09.2017, 07:34   #2  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,038 / 1629 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
а кстати вопросы
1.SearchName вроде бы редактируемое поле.
в этом случае [SysClientCacheDataMethod] вообще правильно ли использовать? т.е. если поменять SearchName - дисплей метод обновится?
2.
почему нет [SysClientCacheDataMethod] на втором методе?

3. можно ли таким способом создавать display методы на датасорсе формы(подразумевая что при этом надо будет обращаться к каким-то переменным формы)?
Старый 29.09.2017, 11:32   #3  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от trud Посмотреть сообщение
а кстати вопросы
1.SearchName вроде бы редактируемое поле.
в этом случае [SysClientCacheDataMethod] вообще правильно ли использовать? т.е. если поменять SearchName - дисплей метод обновится?
2.
почему нет [SysClientCacheDataMethod] на втором методе?
Потому что это просто пример, что можно указывать атрибут кэширования на этом методе, как и на обычных дисплей методах при оверлейеринге.
Никакой логики тут искать не нужно.

Цитата:
Сообщение от trud Посмотреть сообщение
3. можно ли таким способом создавать display методы на датасорсе формы(подразумевая что при этом надо будет обращаться к каким-то переменным формы)?
Нет. Датасорс это вложенный класс. На данный момент практически никаких возможностей для дата сорсов нет (кроме подписки на стандартные датасорс события)
Старый 29.09.2017, 11:44   #4  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от kashperuk Посмотреть сообщение
Никакой логики тут искать не нужно.
а жаль.

ни в коем случае не критикую статью.
но считаю, что можно было бы подобрать примеры и с логикой
__________________
полезное на axForum, github, vk, coub.
Старый 29.09.2017, 12:03   #5  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от mazzy Посмотреть сообщение
а жаль.

ни в коем случае не критикую статью.
но считаю, что можно было бы подобрать примеры и с логикой
Зачем? Для того, чтобы понять, как добавить дисплей метод, абсолютно не нужны знания той части приложения, которая показана в примере.

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

50% тех, кто это прочитает, может вообще не знать о том, что из себя представляет продукт и зачем у него SearchName, и имеет ли смысл это кэшировать. Это не помешает им понять смысл того, что описывается в статье.
За это сообщение автора поблагодарили: mazzy (2).
Старый 29.09.2017, 12:55   #6  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от kashperuk Посмотреть сообщение
Это не помешает им понять смысл того, что описывается в статье.
Согласен.
но есть еще и знающие читатели.

ок. позиция понятна.
__________________
полезное на axForum, github, vk, coub.
Старый 29.09.2017, 13:20   #7  
imir is offline
imir
Участник
 
159 / 161 (6) ++++++
Регистрация: 28.05.2010
Хм, а вот тут пишут, что во втором варианте метод может быть НЕ статическим
https://blogs.msdn.microsoft.com/mfp...nsion-methods/
кому верить?
Старый 29.09.2017, 13:52   #8  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от imir Посмотреть сообщение
Хм, а вот тут пишут, что во втором варианте метод может быть НЕ статическим
https://blogs.msdn.microsoft.com/mfp...nsion-methods/
кому верить?
Майкл пишет, что можно на augmentation class создать instance метод. Это правда.
Вы также можете создать instance display метод. Но, в PU10 Вы не сможете его использовать по назначению. То есть вызвать то сможете, а вот установить как дисплей метод на форме - нет
Старый 29.09.2017, 14:15   #9  
skuull is offline
skuull
Участник
Most Valuable Professional
Лучший по профессии 2014
 
699 / 752 (27) +++++++
Регистрация: 08.03.2013
Адрес: ХЗ
Цитата:
Сообщение от kashperuk Посмотреть сообщение
Никакой логики тут искать не нужно.
Тоже бросилось в глаза, что кеширование в п1 есть, а в п2 тихо пропало. Я попытался найти в тексте причину, мол ExtensionOf аттрибуты не поддерживает или еще что, но искать не нужно, а хотелось бы
Старый 29.09.2017, 14:34   #10  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от skuull Посмотреть сообщение
Тоже бросилось в глаза, что кеширование в п1 есть, а в п2 тихо пропало. Я попытался найти в тексте причину, мол ExtensionOf аттрибуты не поддерживает или еще что, но искать не нужно, а хотелось бы
Обновил пост, добавил предложение о том, что атрибут тоже можно и тут использовать.
За это сообщение автора поблагодарили: skuull (2).
Старый 29.09.2017, 15:42   #11  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,038 / 1629 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Цитата:
Сообщение от kashperuk Посмотреть сообщение
Зачем? Для того, чтобы понять, как добавить дисплей метод, абсолютно не нужны знания той части приложения, которая показана в примере.
Я просто сам на самом деле действительно не знаю как правильно сделать такой метод(который использует редактируемые поля).
т.е. если не использовать [SysClientCacheDataMethod] то у разработчика будет BP Warning(при чем этот warning довольно серьезный ибо он попадает в CAR report с типом warning)
если использовать, то получим необновляемое поле

т.е. как правильно решить задачу - создать метод отображающий 'IntName: ' + _ecoResProduct.SearchName?
Старый 29.09.2017, 16:29   #12  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от trud Посмотреть сообщение
Я просто сам на самом деле действительно не знаю как правильно сделать такой метод(который использует редактируемые поля).
т.е. если не использовать [SysClientCacheDataMethod] то у разработчика будет BP Warning(при чем этот warning довольно серьезный ибо он попадает в CAR report с типом warning)
если использовать, то получим необновляемое поле

т.е. как правильно решить задачу - создать метод отображающий 'IntName: ' + _ecoResProduct.SearchName?
А читали вот этот пост? Я не помню или там есть ответ, но в любом случае полезно
http://kashperuk.blogspot.com/2015/0...y-methods.html
Старый 29.09.2017, 16:59   #13  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,038 / 1629 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Цитата:
Сообщение от kashperuk Посмотреть сообщение
А читали вот этот пост? Я не помню или там есть ответ, но в любом случае полезно
не этот пост для 2012. ну т.е. я понимаю что нужно куда-то подключиться(куда лучше и где лучше разместить обработчик?), получить ссылку на DS(как лучше всего?) в экстеншене и вызвать на нем cacheCalculateMethod передавая туда имя метода(кстати какое оно будет в случае экстеншена?)
надо в общем писать часть2 для статьи
Старый 02.10.2017, 10:39   #14  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1234 (44) ++++++++
Регистрация: 11.04.2008
Цитата:
Сообщение от Blog bot Посмотреть сообщение
Kashperuk Ivan: Development Tutorial: Extensibility: Adding a table display/edit method and showing it on a form in PU10
Дожили. Зареворкали сисетму настолько, что теперь самим же приходится объяснять, как display метод на форму добавить...
Старый 02.10.2017, 11:03   #15  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от DSPIC Посмотреть сообщение
Дожили. Зареворкали сисетму настолько, что теперь самим же приходится объяснять, как display метод на форму добавить...


Жди след. поста, там проще будет
Старый 04.10.2017, 17:51   #16  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
672 / 512 (19) +++++++
Регистрация: 27.04.2006
Адрес: Montreal
Цитата:
Сообщение от kashperuk Посмотреть сообщение
Потому что это просто пример, что можно указывать атрибут кэширования на этом методе, как и на обычных дисплей методах при оверлейеринге.
в ранее встречавшихся примерах создания таких методов отдельно упоминался параметр Cache data method = true, например, тут.

а по умолчанию в положении Auto метод не будет кешироваться, что ли? и наборот, будет ли кешироваться, если убрать атрибут у метода, но выставить сей параметр у form control?
__________________
Felix nihil admirari
Старый 04.10.2017, 21:52   #17  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от wojzeh Посмотреть сообщение
в ранее встречавшихся примерах создания таких методов отдельно упоминался параметр Cache data method = true, например, тут.

а по умолчанию в положении Auto метод не будет кешироваться, что ли? и наборот, будет ли кешироваться, если убрать атрибут у метода, но выставить сей параметр у form control?
В метаданных если Auto, то будет использовать других источники, как например вот тот самый атрибут на методе.
Старый 07.10.2017, 10:27   #18  
skuull is offline
skuull
Участник
Most Valuable Professional
Лучший по профессии 2014
 
699 / 752 (27) +++++++
Регистрация: 08.03.2013
Адрес: ХЗ
Теперь и на табличке можно https://docs.microsoft.com/en-us/dyn...form-update-11
X++:
[ExtensionOf(tableStr(LedgerJournalTransAccrual))]  
final class MyLedgerJournalTransAccrual_Extension  
{  
    [SysClientCacheDataMethodAttribute(true)]  
    public static display LedgerJournalAccountName
MyLedgerAccountName(LedgerJournalTransAccrual \_ledgerJournalTransAccrual)  
    {  
        return \_ledgerJournalTransAccrual.MyStringField1 + "Hello";  
    }

}
Старый 07.10.2017, 10:36   #19  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от skuull Посмотреть сообщение
Теперь и на табличке можно https://docs.microsoft.com/en-us/dyn...form-update-11
X++:
[ExtensionOf(tableStr(LedgerJournalTransAccrual))]  
final class MyLedgerJournalTransAccrual_Extension  
{  
    [SysClientCacheDataMethodAttribute(true)]  
    public static display LedgerJournalAccountName
MyLedgerAccountName(LedgerJournalTransAccrual \_ledgerJournalTransAccrual)  
    {  
        return \_ledgerJournalTransAccrual.MyStringField1 + "Hello";  
    }

}
Конкретно вот это можно было и раньше - см мой блог пост - там такой же метод есть. Чего-то они протупили в документации.

Так что надо ждать моего блог поста
За это сообщение автора поблагодарили: mazzy (2).
Старый 07.10.2017, 11:55   #20  
skuull is offline
skuull
Участник
Most Valuable Professional
Лучший по профессии 2014
 
699 / 752 (27) +++++++
Регистрация: 08.03.2013
Адрес: ХЗ
Цитата:
Сообщение от kashperuk Посмотреть сообщение
Конкретно вот это можно было и раньше - см мой блог пост - там такой же метод есть. Чего-то они протупили в документации.

Так что надо ждать моего блог поста
Вот тут непонятно. Нет же "их", есть "вы". Вместо своего блога можно же исправить "тупеж" в документации и всем будет хорошо...
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Kashperuk Ivan: Tutorial: Caching display methods Blog bot DAX Blogs 3 29.09.2015 22:07
CRM DE LA CREME! Some more useful javascripts for MS CRM Blog bot Dynamics CRM: Blogs 0 04.05.2010 11:05
wiki.dynamicsbook: Changes Made in Navision Attain 3.60 Blog bot Dynamics CRM: Blogs 0 02.09.2008 13:23
wiki.dynamicsbook: Changes Made in Navision Attain 301 Blog bot Dynamics CRM: Blogs 0 19.08.2008 13:44
Kashperuk Ivan: Dynamics AX Tutorials - Tutorial 2 - Classes\Box Blog bot DAX Blogs 0 25.04.2007 22:23
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 02:20.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.