Группа Border in Detail - PullRequest
       6

Группа Border in Detail

2 голосов
/ 27 апреля 2011

У меня есть вопрос о том, как граница должна отображаться в деталях полосы, и я хотел бы получить некоторую помощь.

Скажем, столбец с подробным диапазоном, который может содержать данные LOTS, по партиям, я имел в виду, что иногда для отображения одной записи фактически требовалось 2-3 страницы.

Теперь заказчик просит, чтобы в отчете всегда отображалась нижняя строка границы, пока она не совпадает с концом страницы (даже если эта запись еще не окончена)

Что я пробовал:

  • Создание нижнего колонтитула столбца с линией высоты 1px.
    Установите для «Нижнего колонтитула с плавающей колонкой» значение ИСТИНА.

    Результат: он прекрасно работает, но эта строка создаст дополнительное пустое место в конце таблицы, если после нижнего колонтитула столбца есть полоса Сводка. Я думаю, что я близко, но я просто не могу избавиться от странного пустого пространства

  • Создайте рамку с рамкой, установите для параметра «Печатать при переполнении детали» значение «ИСТИНА», а затем поместите всю полосу детализации в эту рамку.

    Результат: не работает, как я ожидал: (

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

Что еще я могу сделать?

Ответы [ 3 ]

2 голосов
/ 29 мая 2011

Опция, предоставленная Дейвом, верна.

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

В моем случае использование опции Дейва сработало (и мне не нужно было использовать дополнительное пространство).

Я поставил это как PrintWhenExpression в полях, которые я просто хотел показать на последней странице:

$P{REPORT_PARAMETERS_MAP}.get("lastPage")!=null

И это как PrintWhenExpression в текстовом поле 0 высот в итоговой полосе 0 высот:

$P{REPORT_PARAMETERS_MAP}.put("lastPage",":)")
1 голос
/ 28 апреля 2011

Существует трюк PrintWhenExpression, который может помочь с нижним колонтитулом страницы:

Как скрыть страницу X / Y, если в отчете 1 страница?- JasperForge Forum

Хитрость заключается в том, чтобы поместить флаг в карту параметров отчета, а затем использовать этот флаг, чтобы решить, должен ли печататься текст (или поля, строки и т. Д.).

Чтобы использовать строку в нижнем колонтитуле, всегда будут страницы с дополнительной строкой.В этом случае отчет всегда начинается со страницы 1, а таблица в отчете всегда заканчивается перед печатью Сводная полоса.Это означает, что линия больше не нужна, пока достигнут суммарный диапазон.Таким образом:

  • Добавить строку в нижний колонтитул страницы с PrintWhenExpression:

    new Boolean (! (Boolean.TRUE) .equals ($ P {REPORT_PARAMETERS_MAP}).get ("stopFlag")))

  • Затем создайте фиктивный текстовое поле в итоговой полосе с PrintWhenExpression следующим образом:

    $ P {REPORT_PARAMETERS_MAP}.put ("stopFlag", Boolean.TRUE)

Этот прием работает, но может потребоваться некоторая настройка для различных макетов.

1 голос
/ 27 апреля 2011

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

Я бы предпочел возиться с нижним колонтитулом столбца или нижним колонтитулом страницы как ваши лучшие варианты.

...