如何防止Cognos中的页面刷新?

时间:2014-03-01 23:16:48

标签: javascript jquery cognos cognos-bi cognos-10

我正在使用Cognos v10.1。我创建了一个包含13个可选提示的报告。由于在单个页面中累积相同内容并且所有提示都是可选的非常困难,因此我尝试为复选框编写javascript代码。根据复选框中的选择,我想显示提示。我得到了结果,但提示有问题。在我选择的任何提示中选择某些值之前,页面会刷新。如何防止页面刷新?你能建议一个解决方案吗?提前谢谢。

2 个答案:

答案 0 :(得分:2)

我建议在Cognos的范围内工作,而不是尝试自定义编写JS。你将不可避免地碰到他们的一些内置函数,这将导致奇怪的行为,这将导致跨版本和潜在的跨浏览器问题。

相反,为什么不是2个提示页面:

  • 第1页:复选框提示使用“值提示”设置为复选框。将这些中的每一个与变量联系起来。
  • 第2页:根据变量有条件地呈现提示。

答案 1 :(得分:2)

如果任何Cognos提示是级联提示(Properties->'Cascade Source'不是空白的话),则会在选择父提示后触发提示页面刷新。

此外,任何将“自动提交”属性设置为“是”的提示将在选中后触发页面提交(假设所有必需提示都已填写)或刷新提示页面(如果尚未填写任何所需提示)

Toddnappi的解决方案是我成功用于这类情况的解决方案,我强烈建议尽可能使用它。 Cognos javascript API仅限于10.1,但可以预测。没有理由你不能按照你的方式使解决方案发挥作用。

请记住,在10.2中,javascript API得到了极大的改进,如果您对自定义构建的javascript页面有很多需求,可能值得一试。

编辑:刚刚做了一个测试,我在提示页面中隐藏/显示了一个可选提示:

Prompt Page in Report Studio

隐藏区域之前的HTML项目:

<script>
function checkDisplayPeriod() {
    var chkBox = document.getElementById("checkBox1");
    var divPeriod = document.getElementById("divHidePeriodPrompt");
    if (chkBox.checked) {
        divPeriod.style.display = 'none';
    } else {
        divPeriod.style.display = 'block';
    }
} 
</script>
<input type="checkbox" id="checkBox1" onclick="checkDisplayPeriod()" />
<div id="divHidePeriodPrompt">

区域后面的代码:

</div>

首次加载时的页面: Prompt Page Initially loaded

点击后(无刷新): Prompt Page After Clicking