Как прервать построение отчета?

отредактировано 03:50 Раздел: FastReport 4.0
В шаблоне отчета есть ADOQuery1,ADOQuery2 :TfrxADOQuery
По данным ADOQuery1 заполняются поля в бэнде: ReportTitle1,
а по данным ADOQuery2 поля бэнда: MasterData1.

Бывает, что ADOQuery2.RecordCount=0, тогда вообще документ не имеет смысла.
Но команда поступила и ее надо обработать - в таком случае на принтере вылезет лист с опечатанной Шапкой, получается пустой расход бумаги.
Как прервать построение отчета так, чтоб PrepareReport стало false?
Или как в скрипте отчета очистить Page , а дальше при условии Page1.PrintIfEmpty=false отчет сам не распечатается?

var
PrepareReport:boolean;
.......
frxReport1.LoadFromFile('Stream2.fr3');
PrepareReport:=frxReport1.PrepareReport(true);
.....
if PrepareReport then
begin
frxReport1.PrintOptions.ShowDialog:=false;
frxReport1.Print;
end;

Комментарии

  • zz 5zz 5 Россия, Москва
    отредактировано 03:50
    Может имеет смысл в этом случае не сразу, по умолчанию, отправлять подготовленный отчет на печать, а показывать его в предварительном просмотре с дальнейшей возможностью отправить на принтер ?
  • yuramagyuramag Москва
    отредактировано 03:50
    А почему бы в этом случае не сгенерировать исключение в отчете? Через стандартную функцию RaiseException()?

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

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