Как насчет этого:
def text_cleanup(text):
new = ""
for i in text:
if i not in " ?.!/;:":
new += i
return new
Ограничьте результат вашего запроса до 6, затем сделайте обычное, поместите поля в полосу детали
. Затем в сводке создайте три строки полей.
1 | || || || |
2 | || || || |
3 | || || || |
В Print When Expression
всех полей в первой строке
new Boolean($V{REPORT_COUNT}.intValue() == 3 || $V{REPORT_COUNT}.intValue() == 4 || $V{REPORT_COUNT}.intValue() == 5)
В Print When Expression
всех полей во второй строке
new Boolean($V{REPORT_COUNT}.intValue() == 3 || $V{REPORT_COUNT}.intValue() == 4)
В Print When Expression
всех полей третьей строки
new Boolean($V{REPORT_COUNT}.intValue() == 3)
Положение первой строки полей должно быть в верхней части суммарного диапазона, чтобы поля выглядели так, как если бы они были частью раздела сведений.
Лучший способ, я могу думать, чтобы сделать это, чтобы ваш запрос возвращал 6 строк (или ваш набор строк), тогда нет необходимости в яшме делать что-то необычное.
Вот пример того, как вы можете сделать это с помощью oracle 10 или выше - я уверен, что есть лучший способ сделать это.
[f1]
select *
with gen_6
-- creates a table of 6 rows (generate series)
as (SELECT LEVEL as row_num
FROM dual
CONNECT BY LEVEL <= 6),
Your_Query as
from gen_6 left join your_query using (row_num)
order by row_num
FYI
Вам даже не нужно добавлять «поле» row_num в ваш отчет, чтобы это работало.
Самый простой способ: вам просто нужно включить N текстовых полей в подробный диапазон, чтобы дублировать количество записей из источника данных или жесткого кода. Необходимый номер.
Пример:
Detail Band
----------------
| FIELD_X
| FIELD_X
----------------
В этом случае вы получите 3 записи из БД и напечатаете 6 значений.
Еще один вариант: создайте два подзаголовка с необходимыми правилами и включите их на страницу сведений, а затем другую line.
Пример:
Detail Band
----------------
| SUBREPORT_1
| SUBREPORT_2
----------------
В этом случае вы получите 3 записи из БД и напечатаете 3 значения в каждом субрепорте, поэтому во втором вложенном отчете вы можете оставить строки в пробеле или в любом другом правиле.
Бизнес-пример: этот подход может использоваться для финансовых интерфейсов, где разные учетные записи должны быть назначены для определенного кредита или дебетования.