Я пытался решить аналогичную проблему с помощью функции reportContext.getParameterDisplayText()
, но с ней было трудно работать.
Если вы все еще хотите решить эту проблему с помощью этого подхода, вы можете посмотреть здесь как начало: https://www.eclipse.org/forums/index.php/t/159083/
Я разработал следующий обходной путь для моих требований:
1) Сначала вам нужно два набора данных. один для фактического параметра, второй предоставляет данные для отображения выбора:
Параметр DataSet запрос:
select 'A' AS name,
1 AS id
UNION ALL
select 'B' AS name,
2 AS id
UNION ALL
select 'C' AS name,
3 AS id
Показать запрос DataSet:
SELECT GROUP_CONCAT(DISTINCT paramTbl.name ORDER BY paramTbl.id SEPARATOR ', ') AS 'displayText'
FROM
(select 'A' AS name,
1 AS id
UNION ALL
select 'B' AS name,
2 AS id
UNION ALL
select 'C' AS name,
3 AS id
) AS paramTbl
WHERE paramTbl.id IN('xxx')
2) Затем в событии beforeOpen второго набора данных используется сценарий для замены строки «xxx» в местоположении запроса значениями выбора параметра:
this.queryText = this.queryText.replace("xxx", params["Parameter"].value.join("','" ));
3) Теперь вы можете добавить элемент данных в отчет, добавить привязку для второго набора данных и вывести один столбец, который содержит отображаемые значения параметра объединяются с помощью GROUP_CONCAT
В конце вывод выбора параметров выглядит следующим образом: