Выполнение отчётов с диалогами в потоке

отредактировано 22:05 Раздел: FastReport 4.0
Здравствуйте, потратил уже два дня на то чтобы заставить выполняться отчёты FastReport в потоке. Если отчёт без диалогов, то всё прекрасно, но таких отчётов единицы, в основном в отчёте есть диалог или даже несколько. При закрытии диалогов получаю жестокий AV(Access Violation).
Для того чтобы подтвердить тот факт что отчёты с диалогами в потоках не работают специально набросал проектик на чистом VCL + FastReport, который исключает вариант несовместимости компонентов. Проблема именно в FastReport. Просьба к тем , кто знает решение проблемы посмотреть проект и указать причину ошибки ,буду премного благодарен.

зы:Проект написан на Delphi2007 и FastReport 4.7.5

Комментарии

  • отредактировано 22:05
    Ошибку исправил, завтра можно будет скачать новый билд.

    Так же frxPreview.RefreshReport использовать в вашем случае не нужно, этот метод перестраивает отчет заново(т.е. у вас один и тот же отчет будет строиться дважды).
    Для вывода подготовленного отчета лучше сделать так:
      try
        frxPreview.Repaint;
        frxPreview.Lock;
        frxReport.PreviewPages.LoadFromStream(memStream);
      finally
        frxPreview.PageNo := 1;
        frxPreview.Update;
        frxPreview.Unlock;
      end;
    
  • отредактировано 22:05
    Насчёт RefreshReport согласен(исправленный проект в приложении), в этом был неправ,
    в остальном : скачал самый новый билд (уже 4.9.94) и всё равно не работает

  • отредактировано June 2010
    Кстати , забыл сказать , что уже "выстругал костыль" для временного исправления ситуации, пока не будет исправлена истинная причина ошибки :
    [code]
    destructor TfrxDialogPage.Destroy;
    begin
    {$IFNDEF NO_CRITICAL_SECTION}
    frxCS.Enter;
    {$ENDIF}
    try
    FForm.OnActivate:=nil;//костыль, предотвращающий повторный вызов OnActivate в деструкторе из потока
    inherited;
    FForm.Free;
    finally
    {$IFNDEF NO_CRITICAL_SECTION}
    frxCS.Leave;
    {$ENDIF}
    end;
    end;
  • отредактировано 22:05
    Эта сборка от 28 числа, ошибка в ней естественно не исправлена.
    Новый билд должен был собраться ночью, но по тех. причинам не собрался.

    Сегодня вечером - завтра должен собраться новый билд.
  • отредактировано 22:05
    понятно, будем ждать ,костыль плохо работает
  • отредактировано August 2010
    Здравствуйте, до сегодняшнего дня не было времени проверить как сделали в новой версии выполнение в потоке. Сейчас скачал версию fr4_9_106_d11e.exe и проверил на том тестовом проекте, который выкладывал сюда, при запуске отчёта с диалогом в потоке происходит зависание

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

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