因此,我在我的报告中使用了 jQuery,并且我有一套报告,由于 jQuery 可以一次性全部加载,所以客户感觉转换速度更快,因为他们不必在每次点击之间等待。我希望能够根据客户使用的提示更改所有报告。因此,如果他们选择特定日期,套件中的所有报告都将更改为该日期。或者,如果他们选择了特定区域,则所有报告都会转到该区域。这将使客户不必在每个报告的提示中加载参数。我想知道是否有办法做到这一点。我已经看过了,还没有找到任何东西。
编辑.. 所以在包含所有 iframe 和我命名为 changeMonth 的值提示的报告中,我有这个 JS
<script>
var report = cognos.Report.getReport("_THIS_");
var radio = report.prompt.getControlByName('monthChange');
var currentRadioValue = radio.getValues()[0]; //Get initial value object
radio.setValidator(validateRadio); //Define function to validate prompt
function validateRadio(values) {
if (values && values.length > 0 && values[0].use != currentRadioValue.use) { //Only do anything if control has value and has changed
currentRadioValue = values[0]; //Assign new value for later comparison
for (var i=0; i<window.frames.length; i++) { //Loop through all iFrames
window.frames[i].changeValue(values[0].use); //Call the changeValue function passing in the radio button value
}
}
return true; //Indicates the prompt is valid
}
</script>
在我想要 iframe 的报告中,我有一个值提示,它是一个下拉列表,此代码位于 HTML 标记中。
<script>
function changeValue(str){
var report = cognos.Report.getReport("_THIS_"); //Grab a handle for the report
var control = report.prompt.getControlByName('monthChange'); //Grab a handle for the prompt control
control.addValues([{"use":str,"display":str}]); //Change the prompt to the passed in value
report.sendRequest(cognos.Report.Action.REPROMPT); //Reprompt the page
}
</script>
如果这很重要,它们都是下拉列表。我看到您将它们列为单选按钮,所以我稍后会在这里尝试并让您知道这是否改变了任何东西。但是我是如何设置它的,我还应该做些什么吗?