У вас есть много вариантов:
Первое: Поместите поле флага в оба объекта, указав, является ли этот Объект A или Объект B.
Затем в Subreport Expression
используйте троичное выражение, подобное этому:
objectType=="ObjectA"?"subreportA.jasper":"subreportB.jasper"
Секунда: Передать имя подотчета как поле внутри самого объекта.
Затем в Subreport Expression
используйте поле наподобие:
$F{subReportName}
В-третьих: Сделать два вложенных отчета, каждый из которых заполнен своим собственным типом. Если вы хотите показать «Подотчет A», заполните ObjectA и оставьте список ObjectB как нулевой. В Джаспере, если список заполнения NULL
, вложенный отчет не отображается.