29.02.2024, 15:44 | #1 |
Участник
|
Багофича qbds.cacheAddMethod() для _updateOnWrite = true
Привет всем.
Заметил особенность кеширования дисплей методов для параметра _updateOnWrite = true метода cacheAddMethod(). Обновление значений дисплей методов идет при вызове super() в табличном методе update. (А лучше бы шло после отработки update.) Последствия : Если есть форма, шапка - строки (например SalesTable c двумя датасорсами - SalesTable_ds и SalesLine_ds) На шапке есть дисплей методы отображающие агрегированные суммы из строк. Меняем в шапке скидку, это влияет на сумму по строке. Но при сохранении шапки, дисплей методы шапки обновляются до того как обновятся строки (обновление строк стоит после super() в методе update шапки). - Т.е. дисплей методы показывают неактуальные, старые значения сумм по строкам. Нужно сохранить шапку повторно, и только тогда обновятся дисплей методы. Для таких ситуаций (весьма часто встречающихся)) параметр _updateOnWrite = true бесполезен. Приходится его явно ставить в false и на write датасорса вызывать для каждого дисплей метода cacheCalculateMethod Либо скопом один раз вызывать salesTable.executeCachedDisplayMethods() (Ax 2012 R3) |
|
|
За это сообщение автора поблагодарили: gl00mie (10). |
Теги |
cacheaddmethod, updateonwrite, баг, кеш |
|
Похожие темы | ||||
Тема | Ответов | |||
Как узнать, что форма открыта через "Перейти к форме основной таблицы"? | 15 | |||
ошибка в AIF | 14 | |||
Сортировка в Report | 8 | |||
Очередная бороьба с Query() (DAX2009) | 3 | |||
NoExistsJoin и addRange | 15 |
|