FreeSpace и пакетные отчеты

отредактировано 02:30 Раздел: FastReport 3.0
Необходимо готовить пакеты документов для печати, далаю это следущим образом:

frxReport1.PreviewPages.Clear; //предварительная очистка
frxReport1.LoadFromFile(WPath+'Report\report1.fr3');
frxReport1.PrepareReport;
frxReport1.LoadFromFile(WPath+'Report\report2.fr3');
TfrxReportPage(frxReport1.Pages[0]).PrintOnPreviousPage := True; // для печати на предыдущем листе
frxReport1.PrepareReport(False);
frxReport1.ShowPreparedReport;

Все работает замечательно, и устраивает при печати на рулонах.

Вопрос:
Для печати на лазерном принтере (A4).
Как можно печатать report2.fr3 на предыдущем листе только в том случае, если он полностью помещается на оставшейся части листа после вывода report1.fr3? В документации сказано про FreeSpace, а как его правильно анализировать и счем сравнивать?
Варианты анализа в событиях бендов не предлагать (работа через обьекты).

Комментарии

  • gpigpi
    отредактировано 02:30
    Попробуйте вот это:
    frxReport1.PreviewPages.Clear; //предварительная очистка
    frxReport1.LoadFromFile(WPath+'Report\report2.fr3'); //add
    frxReport1.PrepareReport;  //add
    Rep2Height:=frxReport1.PreviewPages.GetLastY; //add
    frxReport1.LoadFromFile(WPath+'Report\report1.fr3');
    frxReport1.PrepareReport;
    Rep1Height:=frxReport1.PreviewPages.GetLastY; //add
    Rep1LastPageHeight:=frxReport1.PreviewPages.PageSize[frxReport1.PreviewPages.Count-1].Y; //add
    frxReport1.LoadFromFile(WPath+'Report\report2.fr3');
    TfrxReportPage(frxReport1.Pages[0]).PrintOnPreviousPage :=Rep1LastPageHeight >=Rep2Height+Rep1Height; // для печати на предыдущем листе
    frxReport1.PrepareReport(False); 
    frxReport1.ShowPreparedReport;
    
    Сам не пробовал. Просто предположение.

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

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