Использование каскадных входных данных с API / веб-сервисами для JasperReports JasperServer 4.0

#jasper-reports #jasperserver

#jasper-отчеты #jasperserver

Вопрос:

Краткое предисловие. Моя компания фактически платит за поддержку Jasper, но они не смогли мне помочь. На данный момент поиск ответа в Google приводит меня только к моим собственным темам форума без ответа на их сайте. Я схожу с ума.

Я ужасно трачу время на написание кода для обработки каскадных входных данных с помощью API веб-служб Jasper. Их примерное веб-приложение для веб-сервисов не справляется с этим (несмотря на то, что они активно используют эту функцию начиная с версии 3.7). Единственное место, где я нашел пример, находится примерно в 15 строках кода из документации по их веб-сервисам (64-страничный pdf). Однако нет объяснения того, что он делает.

Кто-нибудь смог это реализовать? Можете ли вы привести простой пример с каким-либо логическим объяснением?

Вот глупый сценарий (не стесняйтесь придумать свой собственный)

У меня есть отчет с двумя входными данными inputA и inputB, где выбор для A влияет на выбор, показанный для B. Таким образом, inputA предоставляет мне варианты «Кошка», «Собака», «Птица». Я решаю выбрать «Dog» для inputA. Затем inputB должен предоставить мне варианты: «Пудель», «Лабрадор», «Дворняжка».

Как я могу выбрать «Dog» для inputA и использовать веб-сервисы jasper, чтобы определить эти 3 варианта для inputB?

Я действительно ищу примеры кода с каким-либо объяснением.

И снова. Я схожу с ума.

Комментарии:

1. Вы уже нашли решение для этого? Что вы в итоге сделали?

2. @Janvo Извлекаются ли ваши значения из базы данных?? В этом случае вы можете написать запрос объединения при создании источника данных через ireports. Я делаю что-то вроде этого. У меня есть поле выбора для клиента и другое для позиций. Выбранный клиент приведет к изменению второго ввода позиций на основе выбранного клиента. Проверьте ответ.

Ответ №1:

В ireports вы можете создавать элементы управления вводом. Перейдите в свойства, щелкнув правой кнопкой мыши элемент управления вводом, который будет вашим вторым параметром. В свойствах -> вкладка Сведений об элементе управления вводом-> Редактировать локальный ресурс теперь перейдите на вкладку запрос

Добавьте запрос со значением первого поля выбора в качестве параметра.Этот параметр должен быть объявлен в вашем отчете в разделе параметров.

Запрос, например select reqtitle,clientname from hc_requisitions inner join hc_clients on
hc_clients.rid=hc_requisitions.clientid where clientname=$P{clientname}

где $P{clientname} — значение из первого поля выбора.

Надеюсь, это поможет!