首页 文章

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

提问于
浏览
0

我使用的是Cognos Bi 10.2.2版本 .

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

How to get Most recently used parameter value as the default value in value Prompt . 请帮我 .

提前致谢 .

3 回答

  • 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应该有类似的功能

  • 0

    这只是一个可能的解决方案的建议 .

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

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

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

  • 0

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

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

    • 接收新值并将其存储在数据库甚至cookie中

    • 从数据库/ cookie中检索值并将其返回给请求者

    Cognos提示页面将具有在首次生成提示页面时触发的JavaScript,以通过Web服务检索存储的值,并将提示值设置为上一个选择 . 当用户选择一个新的值来将该选项发送到Web服务进行存储时,也会触发JavaScript .

相关问题