Относительный путь для подотчета

Я работаю с iReport 3.5.0 и использую подотчет в своем основном отчете. Я не хочу указывать абсолютный путь для выражения подотчета, но, например, если я просто задаю "bpSubReport.jasper" в качестве выражения подотчета (поскольку sub и main находятся в одном каталоге), то iReport может найти bpSubReport.jasper и скомпилировать основной отчет в bPReport.jasper, но мое приложение Java (gwt) не может. Это исключение

net.sf.jasperreports.engine.JRException: Could not load object from location : bpSubReport.jasper

Можете ли вы помочь мне, как дать относительный путь для подотчета и запустить приложение Java. найти это тоже? Благодарю.

3 ответа

Решение

Ну, я получил ответ.

Ты не можешь Вы не можете использовать относительные пути для своих подотчетов. Вы можете попытаться скомпилировать файлы.jrxml во время выполнения или чего-то еще, но относительные пути не работают для проектов с внешними серверами или файловыми системами.

Ты можешь использовать:

Map paramater = new Hasmap();
paramater.put("SUBREPORT_DIR",source);// source is path your subreport

Держите все ваши jrxml в папке отчетов под ресурсами (в classpath).

Параметр создан:

<parameter name="SUBREPORT_DIR" class="java.lang.String" isForPrompting="false">
        <defaultValueExpression><![CDATA["reports/"]]></defaultValueExpression>
    </parameter>

Элемент подотчета создан:

<elementGroup>
                <subreport>
                    <reportElement uuid="60c50685-03c7-452b-b37a-dda4a2092d18" positionType="Float" mode="Transparent" x="15" y="567" width="517" height="200" isRemoveLineWhenBlank="true" backcolor="#FFFFFF"/>
                    <dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource(yourList)]]></dataSourceExpression>
                    <subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "your_subreport.jasper"]]></subreportExpression>
                </subreport>
            </elementGroup>
Другие вопросы по тегам