Cognos Prompt页面提示使用render变量显示/隐藏
Cognos Prompt page prompts show/hide using render variable
我很难在Cognos提示页面中显示/隐藏提示。我使用Cognos 10.2.1。
我的要求,提示页面选择不同。我有三个提示。运行报告后,只需显示第一个提示。然后,选择第一个提示值后,将显示第二个提示。就像第三次提示一样。
现在我使用的是布尔变量ParamDisplayValue<>'"0"。如果为true,则表示其呈现第二个提示。就像另一个提示。但在这里我只能选择第一个提示。未显示第二个提示。
如果你有任何想法,请与我分享。
谢谢&当做Chandrasekr。
渲染变量仅在页面渲染时求值。它们只能通过三种方式重新评估:
- 用户单击设置为"重新计算"的按钮
- 用户从"自动提交"属性设置为"是"且尚未提供所需提示的提示中选择一个值
- JavaScript在重新启动页面时被激发
1号可以工作,但不能提供很好的可用性,因为每次页面需要刷新时,你都需要用户点击一个按钮
如果您使用所需的提示,编号2将起作用。如果提示是可选的,则当"自动提交"设置为"是"的提示更改时,将提交整个提示页面。你可以使用一个隐藏的提示来绕过这个问题,但它很混乱。
3号是最好的选择,因为它能给你最大的控制权。值得庆幸的是,自从Cognos10.2以来,提供了一个文档化的、受支持的JavaScript API,这使得这变得非常容易和受支持。以下是步骤:
- 为要在值更改时触发重新启动的提示*指定一个名称
- 在提示页面的底部添加一个新的HTML项目
- 添加以下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变量
- 无法导出函数expressjs/requestjs中的变量
- 函数参数中的数据与指定变量之间的任何性能差异
- 将PHP变量传递给jQuery时遇到问题
- 如何通过ajax刷新JSF填充的javascript变量
- 参数变量出现ngTable指令问题
- 通过javascript重定向html传递php变量
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- 全局变量和全局对象的属性之间有什么区别吗
- 如何在Bootstrap Modal中为动态点击生成的变量设置jade属性
- 值对象在某个变量发生更改后发生更改
- Javascript变量赋值|
- AngularJS-在JSON选择器中使用变量名
- React:未捕获的不变量冲突:ReactDOM.render():无效的组件元素
- Cognos Prompt页面提示使用render变量显示/隐藏
- 在res.render - express上发送javascript变量
- 使用ReactDOM.render时的不变量冲突错误
- 将变量传递给node.js中的res.render
- Django 1.10 -使用Django .shortcut .render生成一个带有变量的网页,其中包含一个jav
- 如何使用通过res.render传递的Jade变量