Оптимизация при печати повторных данных

отредактировано 01:45 Раздел: FastReport 4.0
Есть структура
Мастер-Деталь
и этикетки, строящиеся для каждого сочетания М и Д
Кроме этого, на этикетке строится кросс-таб по отдельной таблице, независимой от М и Д

Тривиальная структура, все работает,
НО
При печати каждого следующего листа почему-то линейно увеличивается время его построения.
В результате при выводе 20-30 листов времени на Prepare тратится несколько минут.
При этом кросс-таб на всех бланках повторяется.

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

Что можно придумать?

Комментарии

  • отредактировано 01:45
    что, разработчики сюда совсем не заходят?
  • отредактировано 01:45
    иногда заходят
  • Lizard~Lizard~ Тольятти
    отредактировано 01:45
    krapotkin написал: »
    Как бы сделать, чтобы единожды созданный кросс-таб не заполнять данными каждый раз, а просто копировать в каждую этикетку?
    Что можно придумать?

    Могу предположить, что построение кросс отчета на этикетке процесс не быстрый. Откуда генератор знает, что данные не меняются?

    Как вариант, получить данные для построения статической части отчета. Сохранить, например во временную таблицу в БД. Или непосредственно в FR массив или по вкусу в другую структуру.
    И получать данные для построения кросс отчета оттуда. Один раз считаем, потом по готовым данным строим.
    Надеюсь, должно помочь.
  • отредактировано 01:45
    данные для кросс-отчета и так хранятся в отдельном месте
    но сам-то кросс все равно приходится его строить

    в этом и вопрос - как бы подсказать , что все уже построено ...
    он у меня даже в отдельном субрепорте сложен. вдруг найдется способ сохранить его в EMF
  • отредактировано 01:45
    krapotkin написал: »
    данные для кросс-отчета и так хранятся в отдельном месте
    но сам-то кросс все равно приходится его строить

    в этом и вопрос - как бы подсказать , что все уже построено ...
    он у меня даже в отдельном субрепорте сложен. вдруг найдется способ сохранить его в EMF
    А что Вам даст EMF ?
    Как кросс так и отчет динамические объекты, т.е. разбиваются они в момент построения в зависимости от свободного места.
    Если свободного места стала меньше или кросс занимает несколько страниц как Вы собираетесь разбивать EMF (картинку) ?

    это невозможно.

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

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