【发布时间】:2014-08-12 04:19:42
【问题描述】:
所以我在我的报告中使用了 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>
如果重要的话,它们都是下拉列表。我看到您将它们列为单选按钮,所以我稍后会在这里尝试,并让您知道这是否改变了任何东西。但是我是如何设置它的,我还应该做些什么吗?
【问题讨论】:
-
您的报告在哪里运行?报告工作室?工作区?你能提供更多细节吗?我在 Cognos 中使用 JavaScript 完成了大量工作,但需要更多信息来帮助您。
-
@Johnsonium 这一切都将在报告工作室中完成。在我们说话的时候,我正在努力让它发挥作用。所以我有两个 iFrame 设置,我想要一个提示来驱动这两个 iframe。在 iframe 中,我有交叉表。因此,如果我在提示中更改月份,它将在两个 iframe 中更改
-
因此,您有一个 Report Studio 报表,其中包含一堆 iFrame,每个 iFrame 都有自己的 Report Studio 报表。这个对吗?另外,您能否指出您正在运行的 Cognos 版本?
-
@Johnsonium 我使用的是 10.2.1,是的,我目前的设置方式是每个报告都是 iframed 的,它们链接到顶部由 jQuery 代码运行的选项卡。因此,当报告运行时,所有报告同时运行,因此从一个选项卡到另一个选项卡没有任何等待,因为所有内容都已加载。当您转到每个选项卡时,它会像以前一样加载。因此,客户想要的是能够选择顶部的值提示来驱动所有 iframe 更改他们想要查看的月份。我发现一些 jquery 下拉菜单可能还不确定
标签: javascript jquery prompt cognos-bi cognos-10