2017-07-31 36 views
0

我有一個包含4個提示的報告。這些提示位於實際報告頁面上。這是根據指標studio包創建的報告。Cognos使用javascript清除4個提示中的2個

提示1是策略性的,總是需要選擇。 提示2:是記分卡提示

提示1和2是必需的。

提示3和4被放置在一個條件塊中,並且取決於提示符2中選擇的內容:將顯示提示符3或4。

提示3和4是可選的。這些應該顯示記分卡的一個子集。 (基本上我試圖找出使用級聯提示功能記分卡的方法。)

這一切工作正常。直到用戶想要更改他對提示2的選擇。Cognos不會清除以前爲提示3(例如)做出的選擇。因此,報告不會顯示提示2的新選擇,但仍會顯示提示3的舊選擇。

爲了解決此問題,我想使用一些JavaScript來清除提示。我承認,我避免了像Cognos中的瘟疫一樣的JavaScript,所以我對它並不是很有經驗。我試圖找到一個解決方案,並提出了一些建議,但這些清除了所有提示,我只是希望能夠清除提示3和4而不是全部提示。

我發現這個片斷它工作得很好,但不幸的是它會清除所有提示值:

<script type="text/javascript"> 
var oCR = cognos.Report.getReport("_THIS_"); 
function clearAllValues() { 
     var aControls = oCR.prompt.getControls(); 
     for (var i = 0; i < aControls.length; i++) { 
      aControls[i].clearValues(); 
     } 
    } 
oCR.onload = clearAllValues(); 
</script> 

我找到了第二個例子,這似乎接近我想要做的是:

function clearRefresh() { 

var oCR = cognos.Report.getReport("_THIS_"); 

var vNationality = oCR.prompt.getControlByName("Nationality"); 
var vDomicile = oCR.prompt.getControlByName("Domicile"); 
var vLevel = oCR.prompt.getControlByName("Level"); 
var vFeeCategory = oCR.prompt.getControlByName("Fee"); 
var vCourseStage = oCR.prompt.getControlByName("CourseStage"); 


vNationality.clearValues(); 
vDomicile.clearValues(); 
vLevel.clearValues(); 
vFeeCategory.clearValues(); 
vCourseStage.clearValues(); 

oCR.sendRequest (cognos.Report.Action.REPROMPT); 

} </script> 

<a href="JavaScript:clearRefresh()">Clear All & Refresh 

我已經試過這兩個結合起來如下:

<script type="text/javascript"> 
var oCR = cognos.Report.getReport("_THIS_"); 
function clearValues() { 
    var vVPE = oCR.prompt.getControlByName("VPE"); 
    var vSPEC = oCR.prompt.getControlByName("SPEC"); 

vVPE.clearValues(); 
vSPEC.clearValues(); 

    } 
oCR.onload = clearValues(); 
</script> 

我發現許多前關於如何清除報告中的所有選定提示,但尚未找到任何允許單個取消提示的選項。

我試圖修改我的提示3和4是多選提示,所以用戶可以只點擊默認的取消選擇按鈕,但是 - 是的......用戶不想這樣做。

如果有更聰明的方式來設計我的報告,請讓我知道。

+0

你沒有提到爲什麼上次的JavaScript在你的問題沒有工作。它似乎應該工作。使用Cognos API清除特定提示只需獲取對提示對象的引用,然後調用clearValues()即可。這就是你最後的片段似乎在做的事情。 – Johnsonium

回答

-1

如果你只是想清除提示3和4。 點擊提示3 - 屬性 - 雜項 - 名稱。 類型「NAME3」和類似「NAME4」的提示4.

現在改變你的JS以下

<script type="text/javascript"> 
function clearRefresh() { 
var oCR = cognos.Report.getReport("_THIS_"); 
var f = getFormWarpRequest(); 
var Name3 = f._oLstChoicesName3; 
var Name4 = f._oLstChoicesName4; 
Name3.selectedIndex = -1; 
Name4.selectedIndex = -1; 
oCR.sendRequest (cognos.Report.Action.REPROMPT); 
} 
</script>