我有一个提示页面和一个带有列表的页面。 用户从提示页面中选择值,然后生成报告页面。通常的报告。
提示页面有一个包含20个值的多选列表框。
我想做的是: 当用户从列表框中选择最多3个值时,在报告标题中显示带有ParamDisplayValue(' param1')的值,如果用户选择了超过3个显示")选中的项目&#34 ;例如:"选择了5个项目"
答案 0 :(得分:1)
您可以使用Cognos JavaScript API将选择计数存储在隐藏提示中以供日后使用。以下是步骤:
<script>
var report = cognos.Report.getReport('_THIS_');
var multiPrompt = report.prompt.getControlByName('multiPrompt');
var countPrompt = report.prompt.getControlByName('countPrompt');
multiPrompt.setValidator(validateMultiPrompt);
function validateMultiPrompt(values) {
if (values && values.length > 0) {
countPrompt.addValues([{'use':values.length}]);
} else {
countPrompt.addValues([{'use':'0'}]);
}
return true;
}
</script>
在报告中,您可以使用如下报告表达式:
if (ParamDisplayValue('param2') in ('1','2','3'))
then (ParamDisplayValue('param1'))
else (ParamDisplayValue('param2') + ' items selected')
此表达式假定为多提示符分配了param1,并为新的隐藏提示符分配了param2。
要使其正常工作,必须提供多选提示。否则,当没有选择任何内容时,您的项目将会显示“已选择0项”&#39;。这可以通过向项添加渲染变量来解决,该变量仅在param1未丢失或param2等于&#39; 0&#39;时才渲染项目。
答案 1 :(得分:0)
应该像使用以下一样简单:
ParamCount('param')
如果您想在报告中显示它,请使用单例。