28.09.2017, 19:12 | #1 |
Участник
|
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 |
Участник
|
а кстати вопросы
1.SearchName вроде бы редактируемое поле. в этом случае [SysClientCacheDataMethod] вообще правильно ли использовать? т.е. если поменять SearchName - дисплей метод обновится? 2. почему нет [SysClientCacheDataMethod] на втором методе? 3. можно ли таким способом создавать display методы на датасорсе формы(подразумевая что при этом надо будет обращаться к каким-то переменным формы)? |
|
29.09.2017, 11:32 | #3 |
Участник
|
Цитата:
Никакой логики тут искать не нужно. Нет. Датасорс это вложенный класс. На данный момент практически никаких возможностей для дата сорсов нет (кроме подписки на стандартные датасорс события) |
|
29.09.2017, 11:44 | #4 |
Участник
|
а жаль.
ни в коем случае не критикую статью. но считаю, что можно было бы подобрать примеры и с логикой |
|
29.09.2017, 12:03 | #5 |
Участник
|
Цитата:
Если бы я специально усложнил статью (к примеру, добавил еще одно или несколько полей на продукт, только для того, чтобы не использовать одно из немногих стандартных стринговых полей), никому понятнее бы не стало. 50% тех, кто это прочитает, может вообще не знать о том, что из себя представляет продукт и зачем у него SearchName, и имеет ли смысл это кэшировать. Это не помешает им понять смысл того, что описывается в статье. |
|
|
За это сообщение автора поблагодарили: mazzy (2). |
29.09.2017, 12:55 | #6 |
Участник
|
Согласен.
но есть еще и знающие читатели. ок. позиция понятна. |
|
29.09.2017, 13:20 | #7 |
Участник
|
Хм, а вот тут пишут, что во втором варианте метод может быть НЕ статическим
https://blogs.msdn.microsoft.com/mfp...nsion-methods/ кому верить? |
|
29.09.2017, 13:52 | #8 |
Участник
|
Цитата:
Сообщение от imir
Хм, а вот тут пишут, что во втором варианте метод может быть НЕ статическим
https://blogs.msdn.microsoft.com/mfp...nsion-methods/ кому верить? Вы также можете создать instance display метод. Но, в PU10 Вы не сможете его использовать по назначению. То есть вызвать то сможете, а вот установить как дисплей метод на форме - нет |
|
29.09.2017, 14:15 | #9 |
Участник
|
|
|
29.09.2017, 14:34 | #10 |
Участник
|
Обновил пост, добавил предложение о том, что атрибут тоже можно и тут использовать.
|
|
|
За это сообщение автора поблагодарили: skuull (2). |
29.09.2017, 15:42 | #11 |
Участник
|
Цитата:
т.е. если не использовать [SysClientCacheDataMethod] то у разработчика будет BP Warning(при чем этот warning довольно серьезный ибо он попадает в CAR report с типом warning) если использовать, то получим необновляемое поле т.е. как правильно решить задачу - создать метод отображающий 'IntName: ' + _ecoResProduct.SearchName? |
|
29.09.2017, 16:29 | #12 |
Участник
|
Цитата:
Сообщение от 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 |
Участник
|
Цитата:
надо в общем писать часть2 для статьи |
|
02.10.2017, 10:39 | #14 |
Боец
|
|
|
02.10.2017, 11:03 | #15 |
Участник
|
Цитата:
Жди след. поста, там проще будет |
|
04.10.2017, 17:51 | #16 |
Участник
|
Цитата:
а по умолчанию в положении Auto метод не будет кешироваться, что ли? и наборот, будет ли кешироваться, если убрать атрибут у метода, но выставить сей параметр у form control?
__________________
Felix nihil admirari |
|
04.10.2017, 21:52 | #17 |
Участник
|
Цитата:
Сообщение от wojzeh
в ранее встречавшихся примерах создания таких методов отдельно упоминался параметр Cache data method = true, например, тут.
а по умолчанию в положении Auto метод не будет кешироваться, что ли? и наборот, будет ли кешироваться, если убрать атрибут у метода, но выставить сей параметр у form control? |
|
07.10.2017, 10:27 | #18 |
Участник
|
Теперь и на табличке можно 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 |
Участник
|
Цитата:
Сообщение от 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 |
Участник
|
Вот тут непонятно. Нет же "их", есть "вы". Вместо своего блога можно же исправить "тупеж" в документации и всем будет хорошо...
|
|
|
|