我从一个文本提示开始,用户可以在其中输入表示一周内天数的字符串。例如,M =星期一,可以输入MWF来选择星期一,星期三和星期五。
我刚刚将提示更改为多选值提示,并修改了我的过滤器以使其正常工作。现在我的提示符如下:
当用户选择周一,周三,周五的项目时,ParamValue列表为 M,W,F 。
如何将 MWF 显示为数据项?
具体来说,我想将新的一天与选定的时间结合起来,这样我就可以得到MWF 0800 - 1100的输出结果,但时间值已经处理好。
我可以以某种方式索引多选值中的值吗?
编辑: 我还应该提一下
的变化?p_NewDays? || ' ' || ?p_NewStartTime? || '-' || ?p_NewEndTime?
似乎不起作用,它只会列出选择中的第一项。 TO_CHAR
仅适用于日期。
答案 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?作为参数名称。您必须更改它以匹配您的特定参数。
您没有说明您如何区分周二和周四以及周六和周日。我只是使用第一天的第一个首字母来开始该字母,并使用一个常见的双字母缩写作为第二个实例。