2017-03-17 54 views
0

我有一个列表框参数(它允许多个值)。该参数为value列选择INTEGER,为显示文本选择STRING。DisplayTest发送NULL作为其值

我想将此列表中的所有值打印到报告中。

我想:

"Selected param(s) :" + params["param"].displayText.join(","); 

但displayText返回null ...我不知道为什么!

所以我试图用一个列表:

var paramCount = params["param"].value.length; 
var param= parseInt(params["param"].value); 
for(i=0; i < paramCount; i++){ 
    if(param== row["param"]){ 
     row["paramText"]; 
    } 
} 

我用我用来建立帕拉姆查询。所以row [“paramText”]是STRING中的值,params [“param”]是INTEGER中的值。

我添加了parseInt,因为我的值打印了一个对象,如::[Ljava.lang.Object;@6c8a3a0。即使我使用parseInt ...它不会将值转换为int并打印NaN。

我只需要知道为什么我displayText送我空或者为什么我的PARAMS [“参数”]值返回一个对象(和它doen't要被转换)

如果需要的话:我使用BIRT 3.7.1

谢谢

回答

0

我发现displayText似乎有一些缺陷。因此,我使用了一个工作周:http://developer.actuate.com/community/forum/index.php?/topic/19869-displaying-label-of-dynamic-parameter-list-box-in-report/

+0

您可以在此分享解决方案吗?我在注册该论坛时遇到问题...并且遇到类似的问题。 – Hawk

+1

我并没有重新找到我使用过的workarround。但是,在我从http://developer.actuate.com/community/forum/index.php?/topic/19869-displaying-label-of-dynamic-parameter-list-box-in-report/上下载的报告中。我在数据集的“onFetch”方法中找到了替换数据集中的一个单词的方法。请参阅:(函数mwilliam:http://developer.actuate.com/community/forum/index.php?/user/3879-mwilliams/):if(custList.indexOf(row [“CUSTOMERNUMBER”]。toString() )!= null){ custList = custList.replace(row [“CUSTOMERNUMBER”]。toString(),row [“CUSTOMERNAME”]); } – Bob