Второй отчет накрывает данные первого

отредактировано 10:36 Раздел: FastReport 4.0
Столкнулся с такой проблемой, что если сначала получить отчет за один период, и не закрывая его сформировать этот же отчет, но за другой период, то оба отчета будут содержать данные последнего отчета.
Можно ли настроить FastReport чтобы повторное формирование отчета не перетирало данные в тех отчетах, которые уже сформированы?

Комментарии

  • отредактировано 10:36
    Хотел бы отметить. Во 2-ой версии Fast Reports такой проблемы не было, каждый раз запуская формирование отчета они будут разными - видимо для каждого запуска сохранялся свой набор картинок отчетов. А в 3-ей и 4-ой версиях отчет хранится в буфере и вызывая его повторно этот самый буфер перетерается новыми данными и первичный отчет магическим образом получается полной копией второго отчета. Неужели нет возможности включить какую нибудь настройку чтобы для формирования каждого нового отчета использовать разные буферы для печати?
    Вообще выход на данный момент вижу только один - программно создавать копию компонента и печатать уже через новую копию каждый новый отчет, но тут тоже проблемка возникает Assigned видимо что то не до конца копирует и некоторые отчеты с левой ошибкой ("тип данных строка а нужно дробное число") вылазят при таком вызове.
    ps сижу на D7
  • Lizard~Lizard~ Тольятти
    отредактировано 10:36
    mic_life написал: »
    Можно ли настроить FastReport чтобы повторное формирование отчета не перетирало данные в тех отчетах, которые уже сформированы?

    В справке это очень подробно изложено.
    frxReport.PrepareReport(False);
  • отредактировано 10:36
    Это не помогает.
    Сделал следующую форму: кинул 2 кнопки, 1 репорт и 2 превью. В репорте вывожу системное время. В кнопках написал текст:

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    frReport.Preview := frxPreview1;
    frReport.PrepareReport(false);
    frReport.ShowPreparedReport;
    end;

    procedure TForm1.Button2Click(Sender: TObject);
    begin
    frReport.Preview := frxPreview2;
    frReport.PrepareReport(false);
    frReport.ShowPreparedReport;
    end;

    Нажимаю на первую кнопку, получаю первый отчет.
    Нажимаю вторую кнопку, получаю второй отчет.
    Отчеты на экране показывают разное системное время, НО! если я формочку сверну или задвину чуток за экран а затем верну обратно, то оба превью будут абсолютно одинаковыми равными отчету по последней нажатой кнопке =(

  • отредактировано 10:36
    У Вас один компонент отчета, следовательно и отчет будет один(последний построенный).
    Предпросмотр только отображает отчет, он ничего не хранить. построенный отчет хранится в Report.PreviewPages , которые затираются последним построенным отчетом.

    В MDI приложении на каждый preview должен быть свой компонент отчета. посмотрите Demos\MDI Designer.
  • отредактировано November 2009
    Вот и я другого выхода не увидел. Жаль, это было удобно во 2-ом FastReports.
    А тут тоже проблемка возникает: AssignAll видимо что то не до конца копирует и некоторые отчеты с левой ошибкой выходят.
    Дальше сам разберусь, спасибо!

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

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