Вы можете использовать imageExpression свойство для управления ЧТО изображение для отображения. Например:
<parameter name="whatImageToShow" class="java.lang.Integer" isForPrompting="true">
<defaultValueExpression><![CDATA[Integer.valueOf(1)]]></defaultValueExpression>
</parameter>
...
<image>
<reportElement x="0" y="296" width="270" height="65"/>
<imageExpression><![CDATA[$P{whatImageToShow}.intValue() == 0 ? "image1.jpg" : "image2.png"]]></imageExpression>
</image>
С помощью свойства printWhenExpression вы можете управлять КОГДА , вам нужно показать изображение. Например:
<parameter name="toShowPicture" class="java.lang.Boolean" isForPrompting="true">
<defaultValueExpression><![CDATA[CDATA[Boolean.valueOf(false)]]></defaultValueExpression>
</parameter>
...
<image>
<reportElement x="0" y="296" width="270" height="65">
<printWhenExpression><![CDATA[$P{toShowPicture}.booleanValue()]]></printWhenExpression>
</reportElement>
<imageExpression><![CDATA[$P{whatImageToShow}.intValue() == 0 ? "image3.jpg" : "image4.png"]]></imageExpression>
</image>
Имя файла / местоположения хранятся в таблице «рисунки» вместе с
Подписи. Я полагаю, мне нужен подотчет?
Да, вы не можете использовать несколько запросов (источников данных) в одном отчете. И да, вам нужен подотчет.
Вы можете вернуть данные из подотчета в основные данные. Вы можете просмотреть образец отчета в папке $ IREPORT_HOME $ \ ireport \ samples \ Subreports и прочитать это case .
ОБНОВЛЕНИЕ:
Я только что нашел полезной, как мне кажется, статью Создание отчетов о яшме с динамическими изображениями . Может быть, это поможет вам.