2016-06-08 66 views
0

我有3個提示。第一個提示包含值A & B.在選擇A時,剩下的2個提示應該隱藏,選擇B後應顯示2個提示。所有3個提示都是強制性的。任何人都可以幫助我實現這種情況?防止自動提交在Cognos中生成報告

+0

你到目前爲止嘗試過什麼嗎? – Darek

回答

2

我假設您已經知道如何有條件地隱藏和取消隱藏元素,並且您只是想知道如何刷新頁面而不提交它。

有三種解決方案,您的問題:

  1. 添加一個重新提示按鈕
  2. 使用JavaScript來檢測時,單選按鈕狀態發生了改變,並重新提示頁面
  3. 使用使用隱藏的解決方法值提示

方法1 - 重新提示按鈕

這是通過簡單地向報告添加提示按鈕並將'Type'屬性設置爲'Reprompt'來完成的。我不建議您使用此方法,因爲每次更改提示值都會導致用戶體驗不佳,因此要求用戶單擊重新提示按鈕。

方法2 - 的JavaScript API

此方法使用Cognos的支持JavaScript的API來重新提示頁每當值提示改變值。請注意,該API僅在版本10.2及更高版本中可用。

  1. 命名您的值提示。這在提示'名稱'屬性中指定。爲了本教程的目的,我將使用名稱'valuePrompt'。
  2. 向報告中添加一個「HTML項目」。
  3. 打開HTML項目,並粘貼在下面的代碼:
<script> 
var report = cognos.Report.getReport('_THIS_'); 
var valuePrompt = report.prompt.getControlByName('valuePrompt'); 

var currentValues = (valuePrompt.getValues().length == 0) ? [{'use':''}] : valuePrompt.getValues(); 
valuePrompt.setValidator(validateValuePrompt); 

function validateValuePrompt(values) { 
    if (values && values.length > 0) { 
     if (values[0].use != currentValues[0].use) { 
      currentValues = values; 
      report.sendRequest(cognos.Report.Action.REPROMPT); 
     } 
    } else { 
     currentValues = [{'use':''}]; 
    } 
    return true; 
} 
</script> 

的代碼優化,使得重新提示作用只發生在提示更改爲新的值。當系統檢查提示的有效性時,這可以防止多次重新提示,這可能經常發生。

方法3 - 隱藏相關提示

這種技術使用一個隱藏值提示,誘騙COGNOS到使用級聯提示功能追平提示虛值,提示時再次提示上的每個值迅速變化的頁面。

  1. 添加提示新值
  2. 設置新的提示的「必選」屬性「否」
  3. 設置「層疊來源」屬性爲新的提示是先前存在的值提示的參數
  4. 隱藏新提示
  5. 將原始值提示的'Auto-Sumbit'屬性設置爲'是'。

每當您更改值提示時,頁面都會重新提示以刷新隱藏提示。

+0

令人印象深刻的答案。 – Darek

+0

Hi約翰遜,第二個解決方案是我期待的那個。這非常有效!感謝您的支持! – Saraban

+0

@Saraban如果有幫助,請接受這個答案 –