gpt4 book ai didi

javascript - Cognos Prompt 页面提示使用渲染变量显示/隐藏

转载 作者:行者123 更新时间:2023-12-03 11:45:49 26 4
gpt4 key购买 nike

我很难在 Cognos 提示页面中显示/隐藏提示。我正在使用 Cognos 10.2.1。

我的要求,提示页面选择不同。我有3个提示。运行报告后,只需显示第一个提示即可。选择第一个提示值后,将显示第二个提示。就像虎钳第三个提示一样。

现在我使用 bool 变量ParamDisplayValue <> '0'。如果为 true 则表示渲染第二个提示。就像虎钳另一个提示一样。但在这里我必须只选择第一个提示。第二个提示未显示。

如果您有任何想法,请分享给我。

谢谢和问候,钱德拉塞克。

最佳答案

渲染变量仅在页面渲染时评估。它们仅通过三种方式重新评估:

  1. 用户点击设置为“重新提示”的按钮
  2. 用户从“自动提交”属性设置为"is"的提示中选择一个值,并且尚未提供所需的提示。
  3. 触发 JavaScript 并重新提示页面

数字 1 可以工作,但不能提供很好的可用性,因为您需要用户在每次需要刷新页面时单击按钮

如果您正在使用所需的提示,则第 2 号将起作用。如果提示是可选的,则当“自动提交”设置为"is"的提示发生更改时,将提交整个提示页面。您可以使用一个涉及隐藏提示的技巧来解决此问题,但它很困惑。

数字 3 是最好的选择,因为它给你最大的控制权。值得庆幸的是,自 Cognos 10.2 起,提供了文档化且受支持的 JavaScript API,这使得这变得相当简单且受支持。步骤如下:

  1. 为您希望在值更改时触发重新提示的提示命名*。
  2. 将新的 HTML 项目添加到提示页面的底部。
  3. 添加以下 JavaScript 作为表达式:

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

var prompt = report.prompt.getControlByName("prompt_name"); //Substitue the prompt name you set in step one for the string "prompt_name"

var currentvalue = prompt.getValues()[0].use;

prompt.setValidator(validatePrompt); //Sets a function to validate the prompt on change

function validatePrompt(values) {
if (values && values.length > 0 && values[0].use != currentvalue) {
currentvalue = values[0].use;
report.sendRequest(cognos.Report.Action.REPROMPT); //Reprompt the page
}
}

该代码向提示添加了一个验证功能,当值更改时将刷新页面。设置初始值并针对该值进行字母检查的代码用于防止不必要的刷新,因为 Cognos 在幕后多次启动提示验证。您不希望刷新页面,除非用户实际更改了提示的值。

*此提示应该是文本提示以外的内容,因为每次按键时都会发生文本提示验证,因此他们键入的每个字母都会发生刷新。该技术最适合列表、下拉列表或单选按钮组等值提示。

关于javascript - Cognos Prompt 页面提示使用渲染变量显示/隐藏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26053329/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com