Ошибка с памятью "Нарушение доступа" в интерактивных вкладках в скомпилированном приложении
Здравствуйте. Прошу помощи с устранением ошибки в режиме просмотра отчёта.
На форме лежат 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