НЕ модальные окна и прочие приключения

Дано: простой отчет по одной таблице с 2 группами. Таблица представляет собой RXMemoryTable, то есть используется просто массив значений в памяти, который не имеет ни lookup, ни calculated полей, для исключения тормозов по повторным вычислениям. Спецокраска мемо полей отсутствует. Скриптов нет.


Проблемы:

  1. Медленное разворачивание групп. Данная проблема более менее решилась установкой значения у GrupHeader ShiftEngine = seDontShift. ПРи значении по умолчанию - seTree - безбожные тормоза. Что это за опция и в принципе есть ли какие то секретики ускорения разворачивания групп?
  2. Отчет строится и выводится корректно ровно до момента установки свойства modal = false, при чем не важно, используется ли объект preview на форме или стандартная форма fastreporta. Отображается подвал с пустыми итогами(нули) и все. Причем, если сделать preparereport, то отчет все же покажется, но при клике по группе снова пропадут все бэнды и будет пустой подвал отчета. Собственно как правильно сделать немодальное окно, если это возможно?

Комментарии

  • отредактировано November 2019

    С модальным окном разобрался. Почему то в режиме НЕ модального окна отчет закрывает таблицу, что при использовании MemoryTable означает потерю данных(при выставленном у TfrxDBDataSet значении CloseDataSource = false). Ну... ладно. Кстати говоря группировка значительно сильнее тормозит при отладки из IDE, при работе скомпилированного приложения все быстрее.


    Я от одного не могу понять - для чего перечитывать и пересчитывать все агрегатные поля группировок ядром отчета. Почему бы не строить дерево объектов с вычисленными значениями и выводить(скрывать) по необходимости. Я хз как ещё объяснить то, что отчет на 2000 строк и при 2 группах может по 5 секунд разворачивать группировку. Есть такой стиль проектирования - MVC, если данные не изменились, для чего контроллер их читает и считает?


    Я понимаю, что есть события и скрипты и все такое прочее, но это все легко учесть. Нет изменения содержимого - достаем подсчитанное значение, есть изменение - считаем. Ради интереса из IDE поставил точку остановки на калькулируемых полях. Как итог - перечитывание данных из датасета с пересчетом полей при каждом клике по группе... Это очень сильно привязывает отчет к датасету, который мы, возможно, хотим закрыть после вывода отчета, или вообще уничтожить, без закрытия самого отчета. Вроде опция удобная по идее, но очень топорная по реализации.

  • DrillDown полностью перестраивает отчёт

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.