BIRT - отображать свойство displayText для выбранных значений параметров - PullRequest
1 голос
/ 10 марта 2020

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

Параметр представляет собой динамический список c, позволяющий несколько вариантов выбора.

Размещение динамически c текстовое поле в заголовке моего отчета со следующим выражением приводит к выводу «null», когда оно на самом деле не равно null:

params["parameterName"].displayText

Использование следующего кода приводит к выводу цифр c (как и ожидалось)

params["parameterName"].value

Как отобразить фактический связанный текст (ы) выбора (ов) параметров, выполненных во время выполнения?

1 Ответ

1 голос
/ 12 марта 2020

Я пытался решить аналогичную проблему с помощью функции 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("','" ));

before open script

3) Теперь вы можете добавить элемент данных в отчет, добавить привязку для второго набора данных и вывести один столбец, который содержит отображаемые значения параметра объединяются с помощью GROUP_CONCAT data binding

В конце вывод выбора параметров выглядит следующим образом: parameter selection parameter displayText

...