1

在“IBM cognos BI 的附录 H Prompt API”中有一个关于如何使用方法调用 addValues 的示例。然而,我尝试过的每一次尝试都给我留下了 0 个结果。这是我一直在尝试使用的代码,它不会产生任何错误。

   window.onload = function()
{
var oCR = cognos.Report.getReport("_THIS_");
       function setPromptValue(promptName, useValue, displayValue ) {
    var oP = oCR.prompt.getControlByName( promptName );

var oValue =( {"use": useValue, "display": displayValue});
oP.addValues( [oValue]);
}
setPromptValue ( 'L', 'ca', 'Canada');
}

我基本上传递了我的控制名称,即“L”并说使用“ca”但显示加拿大。它根本不起作用。有没有人能够做到这一点?我已经做了几个小时了,并且有任何运气,任何帮助将不胜感激。感谢所有米格尔

4

2 回答 2

1

我建议使用 Cognos 中的“静态选择”或“使用值”/“显示值”功能来解决此问题。

在您定义下拉列表的提示页面上,有三个属性。

使用静态选项,您可以定义特定于该报告的选项列表,这些选项始终在下拉列表中可用。这可以代替或补充使用查询来填充下拉工具的内容。

Cognos 8.4.1 中的静态选择

在这里,您可以将 Use 设置为“ca”,将 Display 设置为“Canada”,ca/Canada 选项将始终可用。

现在 ca = 'Canada' 是一个相当可重用的设置,因此最好的解决方案可能是有一个定义国家代码及其名称的表(我们将其称为 COUNTRY_CODES)。在框架管理器中设置 COUNTRY_CODES 后,您可以创建一个查询来提取您希望用户从中选择的国家代码,然后在“查询”属性下的下拉属性中,指定您创建的查询。

接下来,您转到“使用值”属性并选择国家代码字段(“ca”所在的位置)。在“显示值”属性中,选择国家名称字段(“加拿大”所在的位置)。

于 2013-04-05T20:57:45.043 回答
1

你没有说你的提示控制是什么类型的控制。如果控件是值提示,则必须确保“使用”值有效,否则将被忽略。设置值时,不需要“显示”值。您不需要window.load,只需执行该功能即可。我尝试了以下示例并且它有效。

(function() {
var oCR = cognos.Report.getReport("_THIS_");
function setPromptValue(promptName, useValue, displayValue ) {
    var oP = oCR.prompt.getControlByName( promptName );
    var oValue =( {"use": useValue});
    oP.addValues( [oValue]);
}
setPromptValue ( 'L', 'ca');})()
于 2013-08-21T19:11:32.140 回答