Скрыть страницу

mvbmvb Казань
отредактировано August 2008 Раздел: FastReport 4.0
Здравствуйте! На странице Page3 есть PageHeader и MasterData. Как отменить печать (и предпросмотр) страницы, если MasterData не содержит записей?
Пробовал так:
procedure Page3OnBeforePrint(Sender: TfrxComponent);
begin
     if qActs.RecordCount=0 then      // qActs: TfrxFIBQuery
      Page3.Visible := false;                                                       
end;
Ничего не меняется, как впрочем и просто:
procedure Page3OnBeforePrint(Sender: TfrxComponent);
begin
      Page3.Visible := false;                                                       
end;
и так тоже:
procedure frxReport1OnReportPrint(Sender: TfrxComponent);
begin
     Page3.Visible := false;  
end;

Комментарии

  • отредактировано 01:20
    гм... последние два - должны работать, наскока я знаю... впервом же - есть вопрос в том - будет ли при начале генерирования 3-й страницы открыт датасет.
    проверьте все ли подцеплено и все ли корректно. можно попробовать вывести showmessage для проверки. возможно просто косяк в версии?
  • mvbmvb Казань
    отредактировано 01:20
    версия наипоследнейшая. Насчет if qActs.RecordCount=0 then я тоже сомневался, поэтому попробовал вообще без проверки, просто Page3.Visible := false;, но результат тот же - не скрывается страница...
  • gpigpi
    отредактировано 01:20
    procedure frxReport1OnStartReport(Sender: TfrxComponent);
    begin
         Page3.Visible:=false;  
    end;
    
    или просто в главной процедуре отчёта
    begin
         Page3.Visible:=false;  
    end.
    
  • gpigpi
    отредактировано 01:20
    или
    procedure Page2OnAfterPrint(Sender: TfrxComponent);
    begin
        Page3.Visible:=false;  
    end;
    
  • mvbmvb Казань
    отредактировано 01:20
    в Page2OnAfterPrint страница не прячется, в frxReport1OnStartReport (как и в главной процедуре отчёта) прячется независимо от qActs.RecordCount (я так понимаю, что к этому моменту qActs еще не открыт).
    Вопросы:
    1. когда происходит открытие НД? перед печатью страницы? Или отчета?
    2. у меня 4 страницы в отчете, я их переместил и они отображаются как Page1, Page3, Page4, Page2 - в какой последовательности они будут обрабатываться? В порядке создания (1,2,3,4) или в порядке табов (1,3,4,2)?
  • mvbmvb Казань
    отредактировано 01:20
    положил на Page3 мемку и написал для нее обработчик:
    procedure Memo152OnBeforePrint(Sender: TfrxComponent);
    begin
         tfrxmemoview(sender).text := inttostr(qActs.RecordCount);                                                                                  
    end;
    
    запускаю отчет - в мемке значение 0, а MasterData содержит и отображает запись. Получается, что НД открывается при первом к нему обращении?
  • mvbmvb Казань
    отредактировано 01:20
    почему тогда не обрабатываются MasterData2OnAfterPrint и MasterData2OnBeforePrint? Вернее, обрабатываются, но Page3.Visible := false; не имеет эффекта?
  • gpigpi
    отредактировано 01:20
    написал:
    в frxReport1OnStartReport (как и в главной процедуре отчёта) прячется независимо от qActs.RecordCount (я так понимаю, что к этому моменту qActs еще не открыт)
    Ну так откройте его: qActs.Open
    написал:
    2. у меня 4 страницы в отчете, я их переместил и они отображаются как Page1, Page3, Page4, Page2 - в какой последовательности они будут обрабатываться? В порядке создания (1,2,3,4) или в порядке табов (1,3,4,2)?
    в порядке табов
  • mvbmvb Казань
    отредактировано 01:20
    спасибо, так работает
    procedure frxReport1OnStartReport(Sender: TfrxComponent);
    begin
         qActs.Open;                   
         if qActs.RecordCount = 0 then
          Page3.Visible := false;                                                       
    end;
    

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

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