Re: При включении фильтрации в бэнде пропадает график
Добавлено: 02 окт 2017, 14:05
Здравствуйте.
Мы разобрались с причиной проблемы.
В нашем продукте есть нюанс при работе с источниками данных.
Если бэнд использует какой-то источник данных, то сортировка/фильтрация этого бэнда применяется к этому источнику.
Если один источник данных используется сразу несколькими компонентами с разными фильтрами/сортировкой, то могут возникать конфликты.
В данном случае фильтр detail-бэнда применяется перед каждой строкой master-бэнда.
Но на мастер-бэнде рендерится чарт, у которого тоже заданы свои фильтры/сортировка, и в результате фильтры/сортировка источника данных сбиваются.
К сожалению, пока не получается решать эту проблему автоматически.
В данном случае, чтобы повторно применить фильтры/сортировку для detail-бэнда, надо прописать следующую строку кода в событии BeginRender бэнда Data2:
Эта команда переинициализирует источник данных с фильтром/сортировкой указанного бэнда.
Ещё один вариант решения проблемы - сделать дубликат источника данных и использовать в чарте именно его.
Минус этого метода - двойной расход памяти на данные, это может быть критично при большом объёме данных.
Спасибо.
Мы разобрались с причиной проблемы.
В нашем продукте есть нюанс при работе с источниками данных.
Если бэнд использует какой-то источник данных, то сортировка/фильтрация этого бэнда применяется к этому источнику.
Если один источник данных используется сразу несколькими компонентами с разными фильтрами/сортировкой, то могут возникать конфликты.
В данном случае фильтр detail-бэнда применяется перед каждой строкой master-бэнда.
Но на мастер-бэнде рендерится чарт, у которого тоже заданы свои фильтры/сортировка, и в результате фильтры/сортировка источника данных сбиваются.
К сожалению, пока не получается решать эту проблему автоматически.
В данном случае, чтобы повторно применить фильтры/сортировку для detail-бэнда, надо прописать следующую строку кода в событии BeginRender бэнда Data2:
Код: Выделить всё
StiDataHelper.SetData(Data2, false);
Ещё один вариант решения проблемы - сделать дубликат источника данных и использовать в чарте именно его.
Минус этого метода - двойной расход памяти на данные, это может быть критично при большом объёме данных.
Спасибо.