我有一个提示页面和一个带有列表的页面。 用户从提示页面中选择值,然后生成报告页面。通常的报道。如何计算Cognos中提示值参数的选定值
提示页面有20个值的多选列表框。
我想要做的是: 当用户从列表框中选择最多3个值时,如果用户选择多于3个显示,则报告标题将显示带有ParamDisplayValue('param1')的值。已选择的项目“例如:”已选择5个项目“
我有一个提示页面和一个带有列表的页面。 用户从提示页面中选择值,然后生成报告页面。通常的报道。如何计算Cognos中提示值参数的选定值
提示页面有20个值的多选列表框。
我想要做的是: 当用户从列表框中选择最多3个值时,如果用户选择多于3个显示,则报告标题将显示带有ParamDisplayValue('param1')的值。已选择的项目“例如:”已选择5个项目“
您可以使用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')
该表达式假定为多提示分配了参数1,并为新的隐藏提示分配了参数2。
要使其工作,必须要求多重选择提示。否则,当没有选择任何东西时,您的物品会读取'0个物品被选中'。这可以通过将渲染变量添加到仅在param1未丢失或param2等于'0'时渲染该项目的项目来解决。
完美!谢谢! – 2015-04-07 07:23:48
哪个版本的Cognos BI?对报告的提示页面接口进行了各种更改,包括新版本中的稳定(ish)API:http://www-01.ibm.com/support/knowledgecenter/SSEP7J_10.2.1/com.ibm。 swg.ba.cognos.ig_smples.10.2.1.doc/c_rs_smples_prompt_api.html?lang = en – chsh 2015-04-06 13:46:44
我的版本是10.2.1 – 2015-04-06 14:05:18