У меня есть типичный отчет FastReport со столом внутри диапазона MasterData. Стол довольно длинный и узкий, так что я думаю о том, разделив ее пополам и поместить нижнюю половину рядом с верхней половиной, как так:Как разбить таблицу на два столбца в FastReport?
A A D
B B E
C -> C F
D
E
F
Там подвох - строки на столе являются 1-3 линии высокие.
Я пробовал использовать свойство MasterData.Columns. Две проблемы с этим: разбиение таблицы по строкам, что делает ее AB CD EF, что неприемлемо, также не учитывает высоты строк, поэтому, если, например, строка A выше других, тогда возникает нежелательный разрыв после D на второй колонке (несмотря на StretchMode = smMaxHeight
).
Моя версия FastReport - 4.7.
Это звучит как хорошее решение, но есть способ учета строк переменной высоты, поэтому, если строки ABC имеют 5 см каждый, а строки DEF - всего 1 см, разделение производится как AB/CDEF. ? – Kromster
Да, возможно, но только с использованием кода сценария. – Den
Вы должны установить «Double Pass» в параметрах отчета и в первом проходе рассчитать высоты и заполнить, например, в списке (например, «Добавить» (линия полосы, высота на странице)). На втором проходе вам нужно посмотреть заполненные значения, а если высота слишком велика, вызовите метод Report.Engine.NewColumn. – Den