如何在Cognos Bi中的值提示或文本提示中将最近使用的参数值设置为“默认”

时间:2018-03-29 06:34:06

标签: sql plsql cognos cognos-10 cognos-bi

我正在使用Cognos Bi 10.2.2版本。

我已经为带有值提示的参数创建了一个提示页面。我正在使用参数" Term_Code"其中包含201410,201420,201510...和我之类的值将选择参数值" 201420"这是第一次运行报告。当我将来再次运行我的报告时,我必须得到默认值为201420,这是最近使用的参数值。任何人都可以知道,

如何获取最近使用的参数值作为值提示中的默认值。请帮帮我。

提前致谢。

3 个答案:

答案 0 :(得分:0)

您可以创建一个Cookie,将其值设置为用户上次选择的值。我这样做的方法是将HTML项目拖到提示之后然后在HTML元素中,你可以放置JavaScript来处理创建cookie并设置它的值。

以下是我使用的JavaScript:

<script>

function createCookie(name,value,days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}

function subtractDay ()
{
var dtToday = new Date();
var dtYesterday = new Date( dtToday - 86400000 ); // 86400000 = 24 hours * 60 (minutes per hour) * 60 (seconds per minute) * 1000 (milliseconds per second)
var strYesterday = [dtYesterday.getUTCFullYear(), dtYesterday.getMonth()+1, dtYesterday.getDate()].join("-");
return strYesterday;
}



var x = readCookie('MyCookie');
while (x != 'Value'){
    pickerControlpDatePicked.setValue(subtractDay() );
    createCookie('MyCookie','Value',0);
    x = readCookie('MyCookie');

}
</script> 

函数pickerControlpDatePicked获取所选日期(这是我的用例)。我认为String

应该有类似的功能

答案 1 :(得分:0)

这只是对可能解决方案的建议。

在Framework Manager中,您可以将查询主题链接到存储过程。每次执行报表时,参数 Team_Code 都将传递给链接到存储过程的查询,存储过程会将其值保存在数据库表中。

下次执行报告时,提示页面将查询保存的最后一个参数的已保存参数表,并使用JavaScript Prompt API将此值设置为提示页面中提示控件的默认值

我希望这有帮助,祝你好运!

答案 2 :(得分:0)

Cognos并非旨在存储有关提示选择的信息,但报告视图除外。但是,由于报表视图提示值不是动态的,因此无法帮助您。您设置一个固定值,并保持该值,直到您手动更改它。

我要做的是设置一个小型Web服务。这将是一个Web页面,其目的是通过Web URL接收请求并返回信息或执行某些操作。可以创建单个页面:

  1. 接收新值并将其存储在数据库中,甚至是cookie
  2. 从数据库/ cookie中检索值并将其返回给请求者
  3. Cognos提示页面将包含在首次生成提示页面时触发的JavaScript,以通过Web服务检索存储的值,并将提示值设置为上一个选择。当用户选择一个新的值来将该选项发送到Web服务进行存储时,也会触发JavaScript。