14.03.2022, 09:18 | #1 |
Участник
|
Странное поведение filter (365)
Столкнулся в 365 со странным поведением формы.
Есть форма а на ней грид: накладываю фильтр. Жму кнопку на форме а создания той же формы через код без всякой связи с текущей формой а. Как результат первый вызов сохраняет фильтр на новой форме. Повторный вызов работает как положено. Why? Как лечить? |
|
14.03.2022, 12:30 | #2 |
Участник
|
Why?
Маленькое исследование по данной теме вдруг кому пригодится С каких то пор появилась маленькая или не очень фича CLISavedViewsEnableFeature (упомянута на классе FormRunConfigurationPermissions) Благодаря ей на методе run формы X++: if (FormRunConfigurationPermissions::isViewsFeatureEnabled()) { if (this.isPersonalizationAllowedToApply()) { this.configurationHelper().loadInitialView(); } } а в нем applyInitialConfigurationView (и далее краткое изложение в стиле дом который построил Джек) который вызывает loadedConfigurationProfile.rolloutView(this.formRun(), applyQuery, false, true, true, true); где вытаскивает засериализованную где то ранее query на классе FormRunConfigurationClass X++: internal Query getQuery() { Query storedQuery; if(this.hasQuery()) { container queryContainer = ContainerHelper::deserialize(storeFilterData.DocumentExtension); if(queryContainer) { storedQuery = new Query(queryContainer); } } return storedQuery; } Последний раз редактировалось axm2017; 14.03.2022 в 12:35. |
|
|
За это сообщение автора поблагодарили: Pandasama (2). |
24.03.2022, 23:48 | #3 |
Участник
|
Вызов метода
X++: formRun.parmBlockSerialization***(true) |
|
|
За это сообщение автора поблагодарили: axm2017 (5). |