2015-04-06 80 views
2

我有一個提示頁面和一個帶有列表的頁面。 用戶從提示頁面中選擇值,然後生成報告頁面。通常的報道。如何計算Cognos中提示值參數的選定值

提示頁面有20個值的多選列表框。

我想要做的是: 當用戶從列表框中選擇最多3個值時,如果用戶選擇多於3個顯示,則報告標題將顯示帶有ParamDisplayValue('param1')的值。已選擇的項目「例如:」已選擇5個項目「

+0

哪個版本的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

+0

我的版本是10.2.1 – 2015-04-06 14:05:18

回答

1

您可以使用Cognos JavaScript API將選擇計數存儲在隱藏提示中供以後使用。以下是具體步驟:

  1. 創建一個新的文字提示
  2. 填寫新的提示的名稱屬性(在下面的示例代碼被稱爲「countPrompt」)
  3. 填寫原始提示的名稱屬性(被稱爲' multiPrompt」中的示例代碼)
  4. 添加HTML項目的頁面
  5. 的底部添加下面這個列表
  6. 當您運行報告新的提示應該改變,以反映項目數的JavaScript代碼是在原始提示中選擇。
  7. 一旦你驗證了它的工作,你可以隱藏新的提示(設置可見:否)

<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'時渲染該項目的項目來解決。

+0

完美!謝謝! – 2015-04-07 07:23:48

相關問題