Ошибка в код Tfrxreport
Если открывать отчет для редактирования на сторонней форме методом frxReport.DesignReportInPanel, то при переключении с моего приложения на другое (хоть дельфистудию, хоть просто Alt+Tab), то падает с AV. Моё решение ошибки привело к тому, что ошибку можно отключить в методе TfrxDesignerForm.DoTopmosts путем проверки наличия Designer <> nil.
Отправить отчет через сам сайт не могу, т.к. надо быть зарегистрированным пользователем, поэтому пишу здесь, может, кому пригодится.
Внешний дизайнер вызываю так:
Отправить отчет через сам сайт не могу, т.к. надо быть зарегистрированным пользователем, поэтому пишу здесь, может, кому пригодится.
Внешний дизайнер вызываю так:
var
Frm: TFmFastReportPlaceholder; // форма содержит на себе только меню (для показа пунтков "Данные" и "Переменные" отчета)
begin
Frm := TFmFastReportPlaceholder.Create(nil);
try
// display the designer
Report.DesignReportInPanel(Frm);
with TfrxDesignerForm(Report.Designer) do
begin
// добавляю собственные кнопки на форму
Frm.miData.Action := ReportDataCmd;
SaveCmd.OnExecute := Frm.SaveReport; // там я сохраняю отчет в БД
end;
Frm.ShowModal;
finally
Report.Designer := nil;
Frm.Free;
end;
end;
я исправил следующую процедуру
procedure TfrxDesignerForm.DoTopmosts(Enable: Boolean);
begin
if Report.Designer = nil then // также годится проверка Report.Owner = nil
Exit;
...
end;