Здравствуйте!
Помогите, пожалуйста, решить следующую проблему.

FastReport 4.10

Есть табличный отчет. Нужно объединить соседние вертикальные ячейки с одинаковым текстом, при чем, текст в объединенной ячейке выравнять по центру. Чтобы не усложнять задачу динамическим рассчетом количества столбцов, в которых нужно объединять ячейки, можно представить что их будет 3 или 4, как удобнее.

Варианты решения:
1. Компонент TfrxCrossView. С задачей справляется, но на больших объемах данных формировка отчета занимает больше 5 минут, что не является допустимым;
2. Манипуляция границами компонентов TfrxMemoView. Наиболее успешный способ, который удалось реализовать, но максимум, что получается с выравниванием внутри ячейки - это печать текста вверху ячейки или, печать текста в "центральной" ячейке группы одинаковых значений.

Начал думать в сторону использования вложенных друг в друга SubReport, но пока приостановился.

Не подтолкнете к мысли? Заранее благодарен.

P.S. Для лучшего понимая приведу структуру таблицы:

+-------------+---------------+-----------+-----+
! Департамент ! Подразделение ! Должность ! Фио !
+-----------------------------+-----------+-----+
!             !       11      !     21    ! 31  !
+             +---------------+-----------+-----+
!     01      !               !           ! 32  !
+             +       12      +     22    +-----+
!             !               !           ! 33  !
+-------------+---------------+-----------+-----+

Нравится

1 комментарий

Николай, действительно, есть несколько вариантов решения:
1. Использовать Cross – tab.
2. У текстового объекта установить свойство " SuppressRepeated", но оно позволяет только скрывать повторяющиеся значения, но не объединять их.
Таким образом, необходимо динамически скрывать повторяющиеся значения и у них манипулировать с рамками.
Подобный вопрос рассматривался здесь:
http://www.sql.ru/forum/actualthread.aspx?tid=645484
http://www.fast-report.com/ru/forum/index.php?showtopic=3532&mode=linear

Показать все комментарии