BIRT-为选定的参数值呈现displayText属性

问题描述 投票:1回答:1

我有一个报告,需要在标题中显示参数。

该参数是允许选择的动态列表框。

在我的报表标题中的动态文本框中添加以下表达式会导致在实际上不为null时输出“ null”:

params["parameterName"].displayText

使用下面的代码将产生数字输出(按预期)

params["parameterName"].value

如何显示在运行时进行的参数选择的实际关联文本?

java parameters birt
1个回答
1
投票

我试图用reportContext.getParameterDisplayText()函数解决类似的问题,但发现很难使用它。

如果您仍然想用这种方法解决您的问题,可以从这里开始:https://www.eclipse.org/forums/index.php/t/159083/

我为我的要求开发了以下解决方法:

1)首先,您需要两个数据集。一个用于实际参数,第二个提供用于显示选择的数据:

参数数据集查询:

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 

显示数据集查询:

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)然后在第二个DataSet的beforeOpen事件中使用脚本,用参数选择的值替换查询位置的'xxx'字符串:

this.queryText = this.queryText.replace("xxx", params["Parameter"].value.join("','" ));

before open script

3)现在您可以向报表中添加数据元素,为第二个数据集添加绑定,并输出包含由GROUP_CONCAT连接的参数的显示值的一列data binding

最后的参数选择输出如下:parameter selectionparameter displayText

© www.soinside.com 2019 - 2024. All rights reserved.