页面树结构
转至元数据结尾
转至元数据起始

(本文档仅供参考)

问题说明

电子表格中设置了跳转规则,跳转时传值年份参数到仪表盘中,年份参数是没有默认值的,当年份参数没有选值时,点击跳转仪表盘,就会将空值传递到仪表盘参数中,导致仪表盘筛选无数据。若是希望,年份参数为空时,跳转仪表盘的时候,默认查全部的年份数据,应如何处理呢?


解决方案

首先这是正常的现象,参数值为空,在电子表格中是不过滤数据的意思,但仪表盘筛选器支持了查询空值的情况,所以默认是传递空值了,若需要为空不传递参数,则需要在宏里面处理判断为空则不传递该参数。

参考代码如下(V10.5.15版本测试验证通过):


请按需复制如下代码:

function paramToString(v) {
    return v == null ? null : v.toString();
}

function main(spreadsheetReport, ruleName, params) {
    if (ruleName != "综合费用跳转") return;
    //@smartbi.openOtherPage:"I2c901a52018f6ff06ff0faa3018fdbec2ae84cc1"
    spreadsheetReport.openURL("openresource.jsp?resid=I2c901a52018f6ff06ff0faa3018fdbec2ae84cc1&showtoolbar=true&refresh=true&showLeftTree=default", [{
        name: "paramsInfo",
        value: lang.toJSONString(
            [{
                id: "22f64d24e58b225517f0eacad66b00d4",
                name: "年份",
                value: EmptyCheck(paramToString(spreadsheetReport.getParamValue("过账日期(年)-1720580680535"))),
                displayValue: EmptyCheck(paramToString(spreadsheetReport.getParamDisplayValue("过账日期(年)-1720580680535")))
            }])
    }]);
}

function EmptyCheck(value) {
    if (value) {
        return value
    } else {
        return 'ALL_ITEM_KEY'
    }
}



  • 无标签