Можно ли скрыть бэнд при условии...

отредактировано 20:47 Раздел: FastReport 3.0
Доброго всем всего!

Вот вручили мне FastReport, чтобы разбираться, и тут у меня возник вот этот вот вопрос.

Есть отчет, в котором есть header страницы, в котором печатается шапка таблицы. Данные отчета группируются, соответственно есть GroupHEader и для красоты к GroupHeader я прилепил child который повторяет header страницы, Но иногда, к примеру, на самой первой странице PageHeader идет сразу же перед GroupHeader, что не совсем мне нравится, т.к. получаются пустые заголовки.

Вот собственно и впорос: а можно ли как нибудь скрыть PageHeader по условию, "если за ним стоит Group Header"?

Комментарии

  • LexLex
    отредактировано 20:47
    в onBeforePrint для PageHeader пишишь
      PageHeader.Visible = (<Page#> > 1)
    
  • отредактировано 20:47
    Работать это конечено работает, но к сожалению ;) только для первой страницы.

    А нельзя как нить привязать появление или скрытие хеадера все таки в зависимости от налдичия того или иного Бэнда.
    Я пытался было делать это в зависимости от значения переменной hh:

    т.е. как только напечатался заголовок переменная hh стала правдой
    procedure PageHeader1OnAfterPrint(Sender: TfrxComponent);
    begin
      set ('hh',true);
    end;
    

    Если в след за заголовком страницы, появляется GroupHEader и переменная hh истина, то по идее PageHeader должен скрыться, hh становится фалсой
    procedure GroupHeader1OnAfterPrint(Sender: TfrxComponent);
    begin
     if <hh>=true then
          Begin
          PageHeader1.Visible:=false;
          set ('hh',false);
      end;
    end;
    
    Если же вслед за PageHeader'ом идет Data bend то hh становится фалсой и Заголовок не скрывается.
    procedure MasterData1OnAfterPrint(Sender: TfrxComponent);
    begin
      set ('hh',false);
    end;
    

    Но это или ваппще не работает или рабботает так что лучше б ваапще не работало.

    Принципиально можно ли так делать, если да - то что я делаю не правильно, а если нет то что же тогда делать???? ;)
  • LexLex
    отредактировано 20:47
    написал:
    procedure GroupHeader1OnAfterPrint(Sender: TfrxComponent);
    begin
    if <hh>=true then
         Begin
         PageHeader1.Visible:=false;
         set ('hh',false);
     end;
    end;
    
    попробуй замениь на
    procedure GroupHeader1OnAfterPrint(Sender: TfrxComponent);
    begin
      if <hh> then
      begin
        PageHeader1.Visible := False;
        set ('hh', False);
      end else
        PageHeader1.Visible := True;
    end;
    
  • gpigpi
    отредактировано 20:47
    var ShowPageHeader: Boolean;
    procedure ReportTitle1OnBeforePrint(Sender: TfrxComponent);
    begin
        ShowPageHeader:=True;
    end;  
    
    procedure PageHeader1OnBeforePrint(Sender: TfrxComponent);
    begin
         PageHeader1.Visible:=ShowPageHeader;
    end;
    
    procedure GroupHeader1OnBeforePrint(Sender: TfrxComponent);
    begin
         ShowPageHeader:=False;
    end;
    
    procedure MasterData1OnBeforePrint(Sender: TfrxComponent);
    begin
         ShowPageHeader:=True;
    end;
    

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

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