Jasper report не работает на другом компьютере / системе - PullRequest
0 голосов
/ 12 сентября 2018

Я разработал приложение с использованием Java в среде IDE Netbeans 8.2, в котором я использовал отчет jasper.В моем основном отчете о яшме есть два подотчета.

Я преобразовал файл .jar в файл .exe (добавил все файлы библиотеки) с помощью приложения Jar2Exe.

Проблема: Когда я запускаю .exe-файл в другой системе, только отчеты не работают .. отображается сообщение об ошибке, как показано ниже.

Сообщение об ошибке:"net.sf.jasperreports.engine.jrexception: ресурс не найден по адресу: C: \ project1 \ secure \ report1 subreport.jasper "

1 Ответ

0 голосов
/ 13 сентября 2018

Изменение в основном отчете <subreportExpression><![CDATA["report1_subreport1.jasper"]]></subreportExpression> вкл .:

<subreportExpression><![CDATA["secure/report1_subreport1.jasper"]]</subreportExpression> 

Это означает, что основной отчет будет ссылаться на вложенный отчет, используя полный путь к пакету. И убедитесь, что у вас не установлен SUBREPORT_DIR параметр.


Если это все еще не работает, то вы можете передать подотчет в основной отчет из Java, используя поток ввода:

InputStream subReport1 = getClass().getResourceAsStream("/secure/report1_subreport1.jasper");
parameters.put("SUBREPORT1", subReport1);

В основном отчете Джаспера вы будете использовать это выражение:

<subreportExpression class="java.io.InputStream"><![CDATA[$P{SUBREPORT1}]]></subreportExpression>

И не забудьте объявить параметр SUBREPORT1 для основного отчета:

<parameter name="SUBREPORT1" class="java.io.InputStream" isForPrompting="false">
  <defaultValueExpression><![CDATA[]]></defaultValueExpression>
</parameter>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...