Jasper Reports: как динамически указывать единицу отчета в качестве источника для подчиненных отчетов - PullRequest
0 голосов
/ 06 марта 2019

У меня есть отчет, который должен быть доставлен с динамическим настраиваемым заголовком.

Для этого я использовал элемент подотчета, который использует параметр типа заголовка для ссылки на правильный подотчет заголовка.

Это прекрасно работает в Jaspersoft Studio, но я не могу заставить его работать на самом сервере.

Я уже скопировал структуру папок на сервере в моем рабочем пространстве developmnt, так что путь будет одинаковым в обеих системах, но не повезло.

Полагаю, я делаю что-то в корне неправильно.

Я загрузил свои подотчеты заголовков в виде отдельных отчетных единиц в папке заголовков.

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

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

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

стандартный путь: "/reports/aaaaa/headers/"+$PndomP_HEADER‹+".jasper"

путь репо: "repo: / reports / SecondaryDB / Headers /" + $ P {P_HEADER} + ". Jasper"

попытался опустить + ". Jasper", потому что я не вижу фактический файл яшмы, просто блок отчета.

попытался заменить + ". Jasper" на + "/ Main.jasper" или "/Main.jrxml" попытался использовать одинарный или двойной обратный слэш вместо прямого слеша
попытался использовать полный внешний URL для заголовка отчета

Казалось, ничего из этого не сработало.

Вещь, которую я не пробовал, включая заголовки с основным отчетом.

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

Может кто-нибудь может дать мне пример, как этого можно достичь?

1 Ответ

0 голосов
/ 12 марта 2019

Благодаря ребятам на доске Tibco я получил подсказку в правильном направлении.

Итак, очевидно, моей ошибкой было загрузить подотчеты как Report-Unit.

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

Но еще одна вещь, которая меня сильно смутила, это то, что каким-то образом мое выражение подотчета изменяется при загрузке.

Моему локальному файлу разработки было присвоено значение "repo: / reports / SecondaryDB / Headers /" + $ P {P_HEADER} "

Загруженный файл вместо этого имел «repo: A_SPECIFIC_HEADER» и избавился от пути, а также от параметра, я думаю, JasperStudio сделал это неявно.

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

Только когда я узнал об этом, я наконец получил некоторые результаты.

Дополнительный вопрос:

Кто-нибудь знает способ, чтобы я мог использовать ту же конфигурацию для локального разработчика, а также на рабочем сервере?

Ручное изменение выражений подотчета при загрузке изменений не совсем элегантный способ развертывания отчетов.

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