Частичный дуплекс

отредактировано 19:10 Раздел: FastReport 4.0
Доброго времени суток.
Срочно необходима помощь в реализации следующего (если конечно вобще возможно, хотя не возможного нет...):
В одном большом отчете существует GroupHeader и при выводе данных по признаку группировки иногда бывает колличество записей на 2-х страницах, но чаще они помещаются на 1.
Задача состоит в том, что, например:
по группировке Х кол-во записей - 20 - т.е. они влезают на одну страницу, соответственно печатаем только на одной стороне.
дальше по группе Х1 - кол-во записей 25 - т.е. они будут занимать место на 2-х страницах, соответственно тут надо применить двустороннюю печать.
и т.д. и это все в одном отчете.
Вопрос, можно ли это реализовать и желательно примерный алгоритм.

P.S.: На сколько я поняла изи предыдущих статей здесь применяется frxReport.Pages.duplex:=...vertical;

Комментарии

  • отредактировано October 2008
    Вам нужно событие OnPrintPage чтобы менять настройки печати.

    Алгоритм примерно следующий:
    - создать динамический массив или список.
    - В событии печати GroupHeader добавить новый элемент в массив, присвоить элементу значение текущей страницы.
    - В GroupFooter(если нет добавьте, можно пустой) , присвоить значение элементу: текущий номер страницы минус сохраненный номер страницы + 1 (mas := Page - mas + 1).
    - действия будут повторяться до конца построения отчета.

    Печать будет происходить следующим образом:
    - добавить пару переменных индекс текущей распечатываемой страницы и индекс массива.
    - увеличивать индекс массива в зависимости от номера страницы и устанавливать дуплекс.
    В итоге печать будет выглядеть приблизительно так:


    CurPG := 1;
    Index := 1;
    ....
    procedure OnPrintPage(Page: TfrxReportPage; CopyNo: Integer);
    begin
      if (CurPG - mass[index]  > 0) then 
      begin
         inc(index);
         CurPG := 1;
      end;
      if mass[index] > 1 then Page.Duplex := dmVertical else Page.Duplex := dmNone;
      inc(CurPG);
    end;
    

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

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