(本文档仅供参考)
问题说明
电子表格中设置了跳转规则,跳转时传值年份参数到仪表盘中,年份参数是没有默认值的,当年份参数没有选值时,点击跳转仪表盘,就会将空值传递到仪表盘参数中,导致仪表盘筛选无数据。若是希望,年份参数为空时,跳转仪表盘的时候,默认查全部的年份数据,应如何处理呢?
解决方案
首先这是正常的现象,参数值为空,在电子表格中是不过滤数据的意思,但仪表盘筛选器支持了查询空值的情况,所以默认是传递空值了,若需要为空不传递参数,则需要在宏里面处理判断为空则不传递该参数。
参考代码如下(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' } }