【问题标题】:How To Prevent The Page Refresh In Cognos?如何防止 Cognos 中的页面刷新?
【发布时间】:2014-03-04 03:46:22
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

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

    Toddnappi 的解决方案是我成功用于此类情况的一种解决方案,我强烈建议尽可能使用它。 Cognos javascript API 在 10.1 中受到限制,但可以预测。您没有理由不能按照您尝试的方式使解决方案发挥作用。

    请记住,javascript API 在 10.2 中得到了极大的改进,如果您非常需要自定义构建的 javascript 页面,可能值得研究一下。

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

    隐藏区域之前的 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>
    

    首次加载时的页面:

    点击后(不刷新):

    【讨论】:

    • 好的解决方案应该被证明是跨版本兼容的。 div 的隐藏/显示概念也可以以多种不同的方式使用 - 我经常将其用于报表页面上的提示。
    【解决方案2】:

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

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

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

    【讨论】:

    • 我同意。我在报告中做了同样的事情,但是用户需要一些不同的东西,这只能通过 JS 和 Cognos 组合来实现。
    猜你喜欢
    • 2013-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多