我很难在Cognos提示页面中显示/隐藏提示。我使用的是Cognos 10.2.1。
我的要求,提示页面选择不同。我有3个提示。运行报告后,首先只需要显示提示。然后在选择第一个提示值后,将显示第二个提示。像vise 3rd提示一样。
现在我使用布尔变量ParamDisplayValue<> '0'。如果它的真实意味着它呈现第二个提示。像老虎钳另一个提示。但在这里我只能选择第一个提示。第二个提示没有显示。
如果您有任何想法,请与我分享。
谢谢&问候, Chandrasekr。
答案 0 :(得分:1)
渲染变量仅在页面渲染时进行评估。它们只能通过三种方式重新评估:
数字1将起作用但不能提供非常好的可用性,因为您需要用户在每次页面需要刷新时单击按钮
如果您正在使用所需的提示,则数字2将起作用。如果提示是可选的,则当提示“自动提交”时,将提交整个提示页面。设置为“是”'改变了。有一个技巧你可以使用一个隐藏的提示来解决这个问题,但这很麻烦。
3号是最好的选择,因为它可以让你获得最大的控制权。值得庆幸的是,自Cognos 10.2以来,提供了一个文档化和支持的JavaScript API,使其变得相当简单和受支持。以下是步骤:
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在幕后多次启动提示验证。除非用户实际更改了提示的值,否则您不希望页面刷新。
*此提示应该是文本提示之外的其他内容,因为在每个按键上都会发生文本提示验证,因此每次输入的字母都会刷新。该技术最适用于值列表,下拉列表或单选按钮组等值提示。