Перечислите <Object>как JRBeanCollectionDataSource для подотчета - PullRequest
1 голос
/ 29 апреля 2010

Я передаю Список как JRBeanCollectionDataSource Подотчету. Здесь объект имеет тип A и B. Тип объекта A имеет два свойства: name и address и объект тип B имеет свойство location.

Если объект имеет тип A, тогда я должен отобразить name и address в подотчете. И если он имеет тип B, тогда я должен отобразить location в подотчете.

Мне нужно получить доступ к типу Объекта в подотчете, значит, какого типа (A или B) ?. Я много пробовал, но не нашел решения.

Может кто-нибудь помочь мне, пожалуйста. Заранее спасибо.

1 Ответ

1 голос
/ 04 мая 2010

У вас есть много вариантов:

Первое: Поместите поле флага в оба объекта, указав, является ли этот Объект A или Объект B.
Затем в Subreport Expression используйте троичное выражение, подобное этому:

objectType=="ObjectA"?"subreportA.jasper":"subreportB.jasper"

Секунда: Передать имя подотчета как поле внутри самого объекта.
Затем в Subreport Expression используйте поле наподобие:

$F{subReportName}

В-третьих: Сделать два вложенных отчета, каждый из которых заполнен своим собственным типом. Если вы хотите показать «Подотчет A», заполните ObjectA и оставьте список ObjectB как нулевой. В Джаспере, если список заполнения NULL, вложенный отчет не отображается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...