Прерывание экспорта отчёта
Так же как и в Прерывания события печати отчёта требуется прервать экспорт отчёта, если пользователь выбрал не разрешённый носитель информации.
Сейчас сделано у меня так (урезанный пример):
1. Есть форма с отчётом и классом экспорта. Для класса экспорта есть подписка на событие:
Код работает, но работает он "не по правилам". А как будет правильно прерывать экспорт, при этом с возможностью проверить путь сохранения?
P.S. Попытка использовать тоже самое, что было указано в теме "Прерывания события печати отчёта" не была удачной...
Сейчас сделано у меня так (урезанный пример):
1. Есть форма с отчётом и классом экспорта. Для класса экспорта есть подписка на событие:
TdmReport = class(TDataModule)
frxXMLExport: TfrxXMLExport;
frxReport: TfrxReport;
procedure frxXMLExportBeginExport(Sender: TObject);
...
end;
В обработчике события происходит проверка выбранного пользователем пути и прерывание (при необходимости):
procedure TdmReport.frxXMLExportBeginExport(Sender: TObject);
var
ExportFilter: TfrxCustomExportFilter;
begin
ExportFilter := TfrxCustomExportFilter(Sender);
if not TAccessChecks.AccessSave(ExportFilter.FileName) then
begin
... { Говорим пользователю, что сюда сохранять нельзя }
{$REGION 'временное решение проблемы'}
ExportFilter.FileName := '';
ExportFilter.Stream := nil;
{$ENDREGION}
Exit;
end;
{ Если всё хорошо, то делаем что-то другое }
...
end;
Код работает, но работает он "не по правилам". А как будет правильно прерывать экспорт, при этом с возможностью проверить путь сохранения?
P.S. Попытка использовать тоже самое, что было указано в теме "Прерывания события печати отчёта" не была удачной...
Комментарии
Может быть Вы в следующих версиях сделаете, как при печати, проверку "frxReport.Terminated" или что-то подобное реализуете в TfrxCustomExportFilter?
А то это это становится похоже на то, как я извращался с Preview в DevExpress-е, что бы там контролировать печать, печать в файл, экспорт...
Да и такой подход потом может выйти боком, если Вы измените формы и добавится ещё в какие нибудь меню возможности экспорта... Особенно, если такие действия мне нужно совершать со всеми видами экспорта (которые могут сохраняться в файл).
P.S. С наилучшими пожеланиями реализовать всё так, что при наличии "прямых рук" у программиста, он мог управлять практически всеми процессами