如何从Cognos 10 Report Studio中的多选参数中删除逗号?

时间:2017-06-29 19:55:30

标签: cognos-10

我从一个文本提示开始,用户可以在其中输入表示一周内天数的字符串。例如,M =星期一,可以输入MWF来选择星期一,星期三和星期五。

我刚刚将提示更改为多选值提示,并修改了我的过滤器以使其正常工作。现在我的提示符如下:

enter image description here

当用户选择周一,周三,周五的项目时,ParamValue列表为 M,W,F

如何将 MWF 显示为数据项?

具体来说,我想将新的一天与选定的时间结合起来,这样我就可以得到MWF 0800 - 1100的输出结果,但时间值已经处理好。

我可以以某种方式索引多选值中的值吗?

编辑: 我还应该提一下

的变化
?p_NewDays? ||  ' ' || ?p_NewStartTime? || '-' || ?p_NewEndTime? 

似乎不起作用,它只会列出选择中的第一项。 TO_CHAR仅适用于日期。

1 个答案:

答案 0 :(得分:1)

您可以使用供应商提供的replace()函数将每个逗号替换为空字符串来完成此操作。但是,这种功能的实现因供应商而异。对于供应商中立的解决方案,您可以使用此表达式执行相同的操作:

CASE 
WHEN 'M' in ?param? THEN 'M' 
ELSE ''  
END 
||
CASE 
WHEN 'T' in ?param? THEN 'T' 
ELSE ''  
END 
|| 
CASE 
WHEN 'W' in ?param? THEN 'W' 
ELSE ''  
END 
|| 
CASE 
WHEN 'Th' in ?param? THEN 'Th' 
ELSE ''  
END 
|| 
CASE 
WHEN 'F' in ?param? THEN 'F' 
ELSE '' 
END 
|| 
CASE 
WHEN 'S' in ?param? THEN 'S' 
ELSE '' 
END 
|| 
CASE 
WHEN 'Su' in ?param? THEN 'Su' 
ELSE '' 
END 

我使用了通用的?param?作为参数名称。您必须更改它以匹配您的特定参数。

您没有说明您如何区分周二和周四以及周六和周日。我只是使用第一天的第一个首字母来开始该字母,并使用一个常见的双字母缩写作为第二个实例。