java - BIRT - 为选定的参数值呈现 displayText 属性
问题描述
我有一个报告,我需要在标题中显示一个参数。
该参数是一个允许多选的动态列表框。
使用以下表达式在我的报告标题中放置一个动态文本框会导致在实际不为空时输出“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事件中使用一个脚本,将查询的where中的'xxx'字符串替换为参数选择的值:
this.queryText = this.queryText.replace("xxx", params["Parameter"].value.join("','" ));
3)现在可以在报表中添加一个数据元素,为第二个数据集添加绑定,并输出包含GROUP_CONCAT连接的参数的显示值的一列
推荐阅读
- java - 是否可以重写代码,使时间复杂度为 O(nlogn)?
- c++ - 将 ROOT 与 CMake 集成
- python - 将多分辨率图像馈送到神经网络 Pytorch
- wordpress - WordPress NGINX 服务器上的 Yoast XML 站点地图
- python - 没有重复字符的最长子字符串 - 代码在运行期间有效,但在提交相同的测试用例时失败
- javascript - 使用简单反射代理的流行“vaccumCleaner”玩具问题解决方案
- python - 写入数据框中的特定值而不覆盖 csv
- java - 在 Jenkins 上构建和运行 Java Selenium 自动化
- python-3.x - 如何从具有numpy范围的正态分布中抽取随机样本
- javascript - React Hooks:将对象作为 useEffects 中的依赖项处理