Относительный путь для подотчета - PullRequest
4 голосов
/ 29 июля 2010

Я работаю с 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 ]

4 голосов
/ 02 августа 2010

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

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

2 голосов
/ 11 сентября 2010

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

Map paramater = new Hasmap();
paramater.put("SUBREPORT_DIR",source);// source is path your subreport
0 голосов
/ 27 февраля 2017

Храните все свои 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>
...