COGNOS网页版制作-cognos提示框样式替换

众做周知,cognos的值提示框丑得一B,还不能设置位置,大小等属性,网上说的又是改变里面的选项.
我就直接写了几个函数去替换了值提示框的功能,样式的话,想怎么换怎么换
那么就有两个问题了:
1.值提示框内的选项从何而来;
2.如何将值传递进报表;

第一个问题,提示框的选项从何而来呢?
答:从表格内部来,拖一个表格,只需要你制的那一列就行
这里写图片描述
不加查询条件的话,里面会显示所有的年月可选值,接着就需要从表格内部提取数据了,
这个函数:
function GetData(n) {

var arr = new Object();
arr.data = [];//存放value值(表格第二列)
arr.value = [];//存放显示值(表格第一列)
arr.areaAttr = [];//备用(表格第三列)

if ($("table[LID=列表" + n + "RS]").length != 0) {
    GetTdText('列表' + n + 'RS');//取表格里面的数据到定义的数组中
}//判断表格的ID
else {
    GetTdText('列表' + n + '_NS_');//取表格里面的数据到定义的数组中
}

function GetTdText(td) {//表格第一列为显示值,第二列为写入URL的值
    var tab = $("table[LID=" + td + "]");
    var lid = tab.children().children("tr");


    tab.css("display", "none");//隐藏表格
    for (var i = 1; i < lid.length; i++) {
        var trCurrent = lid.eq(i);
        var tds = trCurrent.children("td");
        for (var t = 0; t < tds.length; t++) {

            var tdCurrent = tds.eq(t);
            var tdText = tdCurrent.children().text();
            if (t == 0) {//取第一列
                arr.value.push(tdText)
            }
            else if (t == 1) {//取第二列
                arr.data.push(tdText)
            }
            else if (t == 2) {
                tdText = parseInt(tdText)
                attr.areaAttr.push(tdText)


            }

        }
    }

}//获取表格内容函数

return arr;

}
获取到数据后,添加到你预先设置好的下拉框内部;
function CreatOption_Year_Month(val, id) {/val:表格的序号;id:添加到哪个地方;用于年月的组合/

var f1 = GetData(val)
/*获取可用时间*/
for (var i = 0; i <= f1.data.length - 1; i++) {
    //添加下拉选项
    var $list = $("<option  value=" +f1.value[i]  + f1.data[i] + ">" + f1.value[i] + "年" +  f1.data[i]+ "月</option>");
    $list.appendTo($(id));
}
/*添加时间到下拉框*/

}

,接着就用我上篇文章写的传参函数就行了
如图这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_38610536/article/details/74064994