Печать "двойных" отчетов

отредактировано 05:29 Раздел: FastReport 3.0
Имеется отчет с двумя страницами размера A4 (обе портретные). Первая страница - левая строна, вторая страница - правая сторона. Если две страницы рядом положить полочится формат A3 альбомный.

Необходимо реализовать отчет, который бы выводился на левой и правой стороне в несколько листов (допусти по 3 страницы A4 на каждую сторону). Проблема в следующем:
- если высота строк всегда одинакова, то строки всегда левой стороны находятся напротив строк правой стороны
- если правая сторона (в принципе любая) имеет растягиваемые строки, то "синхронизация" строк отсутсвует, то есть на левой строне может уместиться 60 строк, а на правой только 40.
Необходимо сделать так, чтобы высота строк левой стороны соотвествовала высоте строк правой стороны.

Как такое вообще можно сделать?
1. Пытался сделать отчет формата A3, чтоб на принтере A4 разбивался на 2 - не получилось (да и наврятли могло бы, все зависит скорее всего от драйвера).
2. Программно при построении отчета в два прохода. Во время второго прохода попробовать изменить высоту ячеек программно. Вопрос в том как обратиться к сгенерированным мемо? Такое возможно?

P.S. Тему не придумал как лучше назвать.

Комментарии

  • отредактировано 05:29
    Проблему решил, но это скорее как частный случай. Поскольку данные для левой стороны и правой стороны - это один и тот же SQL, просто столбцы выбираются разные, то поля которые находятся на правой стороне и могут расстягивать строку (имя DiagXMemo) (все косяки из-за них собственно), я эти поля вставил в левую сторону (имя HiddenMemoX). Но сделал их непечатаемые. Далее
    procedure MasterData1OnBeforePrint(Sender: TfrxComponent);
    begin
      HiddenMemo1.Visible := True;
      HiddenMemo2.Visible := True;
    end;
    
    procedure MasterData1OnAfterCalcHeight(Sender: TfrxComponent);
    begin
      HiddenMemo1.Visible := False;
      HiddenMemo2.Visible := False;
    end;
    
    После того как была узнана высота, я их скрыл. Очень полезный обработчик OnAfterCalcHeight.

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

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