Ошибка с памятью "Нарушение доступа" в интерактивных вкладках в скомпилированном приложении

отредактировано February 2023 Раздел: FastReport VCL

Здравствуйте. Прошу помощи с устранением ошибки в режиме просмотра отчёта.

На форме лежат   frxDBDataset1: TfrxDBDataset и  frxReport1: TfrxReport;

Имеется интерактивный отчёт в котором настроены гиперссылки, открывающие новые вкладки при просмотре отчета (Скрин1). Отчёт загружается из файла и работает без ошибок за исключением ситуации ниже. Процедура загрузки:

procedure loadtemplate (filename:string);

begin

frxReport1.LoadFromFile(dbpath+filename);

if frxDBDataset1.DataSet<> nil then begin

TQuery(frxDBDataset1.DataSet).Close;

TQuery(frxDBDataset1.DataSet).SQL.text:='select * from .....'; //текст запроса меняется

end;

if  frxDBDataset1.DataSet <>nil then TQuery(frxDBDataset1.DataSet).Open;

frxReport1.ShowReport;

end;

Я могу многократно вызывать loadtemplate ('reportA.fr3'), всё работает без ошибок.

Я могу вызвать loadtemplate ('reportB.fr3'), всё работает без ошибок условии что я не нажимал гиперссылки перед этим при просмотре reportA.fr3.

Но если я после вызова loadtemplate ('reportA.fr3') нажму несколько раз гиперссылки и открою новые вкладки, то при последующем вызове loadtemplate ('reportB.fr3') сам отчёт открывается полностью и работает, но нажатие в нём на гиперссылку даёт ошибку "Нарушение доступа" (Скрин3)

А если я после вызова loadtemplate ('reportA.fr3') нажму несколько раз гиперссылки и открою новые вкладки и ЗАКРОЮ их, то при последующем вызове loadtemplate ('reportB.fr3') ошибок "Нарушение доступа" нет, вкладки в reportB открываются.

Что-то нужно очистить как я предполагаю, frxReport1.Clear результата не даёт. frxReport1.Preview=nil перед вызовом frxReport1.LoadFromFile

Сама процедура загрузки и отображения отчётов отлажена на более чем 100 шаблонах, ошибка возникает только если использовать гиперссылки. Благодарю за ответы. Использую Fastreport 5.6.18



Комментарии

  • Проверьте, возникает ли ошибка в последней сборке FR VCL 2023.1.x

    Если появляется - присылайте тестовый проект на support@fast-report.com

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

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