渲染变量仅在页面渲染时被评估。三种方式他们才会重新评估:
- 用户点击一个按钮被设置为“重新提示”
- 用户选择从具有其提示的值“自动提交”属性设置为“是“,并且尚未提供必需的提示。
- JavaScript是发射时再次提示页面
1号工作,但你需要用户到每一个页面需要刷新时间点击一个按钮
2号会,如果你的工作不提供非常好的易用性正在按照要求提示。如果提示是可选的,则当'自动提交'提示设置为'是'时提示整个提示页面将被提交。有一个技巧可以使用,涉及一个隐藏的提示,可以解决这个问题,但很麻烦。
3号是最好的选择,因为它给你最大的控制。值得庆幸的是,由于Cognos 10.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会在幕后多次启动对提示的验证。除非用户实际更改提示的值,否则不需要刷新页面。
*此提示应该是文本提示以外的内容,因为每次按键时都会发生文本提示验证,因此每输入一个字母都会发生刷新。该技术最适用于价值提示,如列表,下拉菜单或单选按钮组。