Печать отчета на бланке

отредактировано 23:51 Раздел: FastReport 3.0
Задачка такая: отчет, по выбору пользователя, должен выводиться либо на чистый лист A4, либо впечатываться в бланк.
Делаю так: отчет выводится в мою отдельную форму для Preview. Выводится и сам бланк и данные. На форме есть Checkbox "Печатать на бланке" и кнопка "Печать". Если печать на бланке, то в событии OnPrintReport некоторые объекты скрываю, у некоторых убираю рамки:
procedure TRpt.RptPrintReport(Sender: TObject);
var Obj: TList;
    Ctl: TfrxView;
    i: Integer;
begin
  if PrintOnBlank.Checked then begin
    Obj:=Rpt.PreviewPages.Page[0].AllObjects;
    for i:=0 to Obj.Count-1 do begin
      if TfrxComponent(Obj[i]) is TfrxView then begin
        Ctl:=Obj[i];
        if Ctl.TagStr='NoPrint' then Ctl.Visible:=false
        else if Ctl.TagStr='NoPrintFrame' then Ctl.Frame.Typ:=[];
      end;
    end;
  end;
end;

В результате: рамки убираются, а поля с Visible=false все равно выводятся.
То же самое происходит если из Preview вызвать дизайнер и св-во Visible изменить на false - при возврате к Preview объект все равно виден.
Такое впечатление, что свойство Visible обрабатывается только на этапе формирования отчета, а у сформированного просто игнорируется...

В принципе, подправив исходники, удалось все исправить, но не хотелось бы делать это каждый раз при переходе к новой версии. Может быть есть какой-то другой способ скрыть поля при выводе на печать?

Комментарии

  • отредактировано 23:51
    А не лучше ли в твоём случае изменять свойство Printable .
    В превью всегда покажется, а при печати в зависимости от значения.
  • отредактировано 23:51
    Да. Спасибо. Работает.

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

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