IReport: передача параметров из основного запроса отчета в запрос набора данных для таблицы или списка
Я понимаю, как передавать параметры из основного отчета в подчиненный отчет, так как для этого объекта подрегистра есть определенное поле. Тем не менее, я хотел бы сделать то же самое с таблицей или объектом списка как с потребителем (а не с подрепортом). Возможно ли это?
Например, скажем, у меня есть параметр "customerID", который я могу заполнить основным запросом отчета, но я не могу передать этот параметр в SQL-запрос набора данных таблицы.
Я пробовал и продолжаю пытаться использовать различные комбинации параметров, полей и переменных, но безрезультатно.
Требуется ли такая вещь для реализации подрепортажа?
(Если это имеет значение и не является очевидным, я использую JDBC)
Ответы
Ответ 1
Чтобы передать параметры из основного отчета в таблицу или список источников данных в iReport 3.6.7+, вам нужно сделать следующее шаги:
1) создайте требуемые параметры в главном отчете, нажав на раздел параметров основного отчета ------ > добавить параметр -------- > установите свойства (тип данных) вновь добавленного параметра на ваш желаемый.
2) создавать эквивалентные параметры в разделе параметров источника данных таблицы/списка точно так же, как в шаге 1.
3) из проводника отчетов, справа щелкните по таблице и нажмите "Редактировать таблицу DataSet" ------ > Выберите вкладку параметров ----------- > Нажмите, чтобы добавить ---------- > Выберите параметр strong > (который вы создали в разделе параметров набора данных на шаге 1) из верхнего комбо (например, имя параметра набора данных) ------ > затем нажмите на нижнюю кнопку (т.е.) присваивать выражение значения, то есть параметры, которые вы добавили на шаге 1.
источник: http://hamroblog-sristi.blogspot.fr/2011/04/passing-parameters-from-main-report-to.html
Ответ 2
Не знаю, какую версию вы используете, но я смог сделать это в iReport 3.7.6.
Сначала я добавляю параметры в набор данных.
Затем, чтобы передать значения параметрам, щелкните правой кнопкой мыши на таблице в Report Inspector, выберите "Изменить источник данных таблицы". Перейдите на вкладку "Параметры". Каждый параметр набора данных может принимать свое значение из параметра, поля или переменной из основного отчета.
Ответ 3
Я делаю быстрый тестовый отчет, чтобы воспроизвести то, что вы делали, и это сработало.
Вот шаги, которые я предпринял.
-
Создайте параметр в своем отчете, например. CUSTOMERID
-
Передайте его основному отчету в хэш файл.
hashmap.put("customerID", "12345");
-
В отчете установите свойство The language of for the dataset query
в SQL
.
-
Задайте свойство Query text
примерно так, как показано ниже.
select * from * customers c where c.ID=$P{customerID}