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

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

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

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

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

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

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

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

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

1 Ответ

2 голосов
/ 11 июня 2012

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

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

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

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

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

...