我正在使用Cognos Bi 10.2.2版本。
我已经为带有值提示的参数创建了一个提示页面。我正在使用参数" Term_Code"其中包含201410,201420,201510...
和我之类的值将选择参数值" 201420"这是第一次运行报告。当我将来再次运行我的报告时,我必须得到默认值为201420,这是最近使用的参数值。任何人都可以知道,
如何获取最近使用的参数值作为值提示中的默认值。请帮帮我。
提前致谢。
答案 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接收请求并返回信息或执行某些操作。可以创建单个页面:
Cognos提示页面将包含在首次生成提示页面时触发的JavaScript,以通过Web服务检索存储的值,并将提示值设置为上一个选择。当用户选择一个新的值来将该选项发送到Web服务进行存储时,也会触发JavaScript。