Печать нескольких Page по условию

отредактировано 03:18 Раздел: FastReport 3.0
Есть репорт с несколькими страницами, возможно ли взависимости от поля датасета показывать то одну страницу(заклатку) то другую в момент формирования страницы.

Подскажите пожалуйста, если это возможно.

Комментарии

  • отредактировано 03:18
    Можно задавать видимость страницы в отчете.
    Вопрос только в том, как ты хочешь этим управлять из скрипта или из программы? В каждом случае свои варианты решения.

    из скрипта PageName.Visible:=False;
    из Delphi frxReport.Pages[Index] .Visible:=False;
  • отредактировано 03:18
    Предложенный выше метод единоразово формирует репорт, который будет статичьно отображать определенные Page.

    А возможно задавать видимость PAGE для набора строк датасета?

    Например:
    Есть база различных документов. Стою на первой строке показываю Page1,
    Перешел на другую у которой DOC_ID отличается показываю Page2 и не показываю Page1.



  • отредактировано 03:18
    Domkrat написал:
    Есть база различных документов. Стою на первой строке показываю Page1,
    Перешел на другую у которой DOC_ID отличается показываю Page2 и не показываю Page1.
    Что значит "перешёл на другую"?
    При формировании отчёта по умолчанию пробегается весь набор. Ты имеешь ввиду, что у тебя должна быть в готовом отчёте сначала page1, потом page2, потом снова page1?
    Тогда наверно смотри в сторону композитных отчётов.
  • отредактировано 03:18
    Markus написал:
    При формировании отчёта по умолчанию пробегается весь набор. Ты имеешь ввиду, что у тебя должна быть в готовом отчёте сначала page1, потом page2, потом снова page1?
    Тогда наверно смотри в сторону композитных отчётов.
    Да я имел в виду динамическое формирование отчета (Page1, Page2, Page1). Пока я этого добился работая с BAND-ами (visible) и OnBeforePrint

    Я читал что в версии FastReport v2.4, был компонент TfrCompositeReport в палитре, сейчас я его не вижу в тройке.
  • отредактировано 03:18
    Там сейчас по другому.

    RTFM ProgrammerManual-ru.pdf

    стр. 20
    .....
    frxReport1.LoadFromFile('1.fr3'); 
    frxReport1.PrepareReport;
    frxReport1.LoadFromFile('2.fr3'); 
    frxReport1.PrepareReport(False); 
    frxReport1.ShowPreparedReport;
    
  • maomao
    отредактировано 03:18
    Если обрамление страницы (заголовок, подвал) у тебя одинаковые,
    то можно сделать через Subreports. Т.е. на MasterData положить несколько Subreports, которые показывать в зависимости от условия текущей записи.
  • отредактировано 03:18
    >которые показывать в зависимости от условия текущей записи.

    Идея правильная, но
    в каком событии написать это условие ума не приложу.

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

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