2014-10-14 2 views
0

У меня есть отчет, который должен отображать переменное количество строк в секции заголовка. Вкратце, если конкретное поле не пусто, тогда мне нужна дополнительная строка. В заголовке есть две «строки», каждая из которых должна занимать 1 или 2 строки. В идеале у меня не будет свободного пробела.Секции, зависящие от данных в заголовках отчетов jasper

Я изо всех сил пытаюсь развернуть мою голову вокруг опций «Печать когда», «Растянуть в соответствии» и «Удалить линию при пустом».

Сценарии ...

Простой случай - 1 строка за единицу

-------- 
Item 1 detail 
-------- 
Item 2 detail 
-------- 

Случай 2 - 2 линии по пункту 1, 1 линия для пункта 2

-------- 
Item 1 detail 
    extra detail for item 1 
-------- 
Item 2 detail 
-------- 

Корпус 3 - 1 линия для элемента 1, 2 линии для ite м 2

-------- 
Item 1 detail 
-------- 
Item 2 detail 
    extra detail for item 2 
-------- 

Case 4 - 2 линии по пункту 2, 2 линии для пункта 2

-------- 
Item 1 detail 
    extra detail for item 1 
-------- 
Item 2 detail 
    extra detail for item 2 
-------- 

Есть указатели на примеры, которые делают это или к соответствующей точке в документации будет благодарно принято.

ответ

0

Мое предложение состоит в том, чтобы создать секцию заголовка отчета, используя подчиненный отчет. Внутри этого отчета вы можете иметь четыре тонких диапазона для ваших линий, каждый со своим print when expression.

Подробное описание:

  • Установите раздел заголовка отчета на минимальную высоту, которая всегда будет достигнута вашим подотчет (например, одна линии с высотой междурядий 10px)
  • Включите подотчет в этом разделе (подотчет высота элемента является высотой профиля, он будет автоматически растягиваться с ростом Вложенного отчета)
  • Удалите ненужные разделы и поля из этого шаблона
  • Определить четыре деталь полосы друг с конкретным print when expression и явно он ight
+0

Спасибо за ответ.Я старался избегать * более * subreports, поскольку в основном отчете уже есть несколько, но я подозреваю, что ваш подход, вероятно, правильный и * нормальный * подход. В конце концов, я решил это, создав два перекрывающихся кадра для каждой строки, с альтернативной компоновкой для каждого сценария. Это позволило мне немного повысить гибкость с колонками позже в строке. Я отвечу на ваш ответ как на принятый ответ, а затем я подробно расскажу о нем ниже. – Bignose

0

Timo дал мне одно (разумное) решение, но в итоге я использовал альтернативный подход. Я создал два кадра для каждого элемента и наложил их. Одна форма печатается, когда нет дополнительной информации, другая печатается, когда есть. Это дало мне возможность просто добавить дополнительную информацию в первые несколько столбцов вывода ....

Вариант 1 - без дополнительной информации:

+----------------+--------------+---------------+ 
|    |    |    | 
| Item 1 title | Item 1 other | Item 1 more | 
|    |    |    | 
+----------------+--------------+---------------+ 

Version 2 - с дополнительной информацией:

+----------------+--------------+---------------+ 
| Item 1 title | Item 1 other |    | 
+----------------+--------------+ Item 1 more | 
| extra detail for item 1  |    | 
+----------------+--------------+---------------+ 

Наложенные рамки охватывают только первые две колонки. Это немного грязно, но создает желаемый эффект.

Смежные вопросы