我有一个报告,需要在标题中显示参数。
该参数是允许选择的动态列表框。
在我的报表标题中的动态文本框中添加以下表达式会导致在实际上不为null时输出“ null”:
params["parameterName"].displayText
使用下面的代码将产生数字输出(按预期)
params["parameterName"].value
如何显示在运行时进行的参数选择的实际关联文本?
我试图用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("','" ));
3)现在您可以向报表中添加数据元素,为第二个数据集添加绑定,并输出包含由GROUP_CONCAT连接的参数的显示值的一列