注意 |
---|
提示:本文档的示例代码仅适用于本文档中的示例报表/场景。若实际报表/场景与示例代码无法完全适配(如使用功能不一致,或多个宏代码冲突等),需根据实际需求开发代码。 |
示例说明
在通过电子表格报表跳转分析时,需求要对所点击的分析项进行高亮显示,以便更加清楚的知道当分所分析的内容。如例:从“汇总报表”点击“产品类别”下钻到“明细报表”进行分析。当点击“产品类别”中的某一个值时某一个值就高亮。效果图下:
...
3、在报表宏界面中修改已创建跳转规则的action,在action中添加下图红框中的代码其它都是创建跳转规则时自动生成的代码不需要修改,如下图:
宏类型
类型 | 对象 | 事件 |
---|---|---|
ClientSide | spreadsheetReport | onLinkClick |
...
宏代码
代码块 | ||||
---|---|---|---|---|
| ||||
function paramToString(v) { return v == null ? null: v.toString(); } function main(spreadsheetReport, ruleName, params, page, pageContext) { if (ruleName != "跳转") return; /***添加的代码,开始***/ //恢复原来的颜色 if (spreadsheetReport.highlightCurrentCellLinkPosition) { var td = spreadsheetReport.getCell(spreadsheetReport.highlightCurrentCellLinkPosition.row, spreadsheetReport.highlightCurrentCellLinkPosition.column); var list = td.getElementsByTagName("SPAN"); for (var i = 0; i < list.length; i++) { list[i].style.color = list[i]._color; } } //设置颜色 var td = spreadsheetReport.getCell(spreadsheetReport.currentCellLinkPosition.row, spreadsheetReport.currentCellLinkPosition.column); var list = td.getElementsByTagName("SPAN"); for (var i = 0; i < list.length; i++) { list[i]._color = list[i].style.color; list[i].style.color = "red"; //指定颜色,可以使用#AABBCC 这样的字符串声明RGB } //保留当前位置 spreadsheetReport.highlightCurrentCellLinkPosition = spreadsheetReport.currentCellLinkPosition; /***添加的代码,结束***/ var targetResId = "I4028818a29b1f667014eaf0d629e18ce"; var newReport = false; //找到对应的dashlet对象,并刷新它。 var dashlet = page.findDashletByReportId(targetResId); //dashlet不存在 if (!dashlet) return; var portlet = dashlet.currentPortlet; if (!portlet) { return; } if (typeof paramsInfo != "undefined" && paramsInfo) paramsInfo.push({ name: "产品类别", value: paramToString(params[0]), displayValue: paramToString(params[0]) }); var pObj = { value: paramToString(params[0]), displayValue: paramToString(params[0]) }; if (typeof portlet != "undefined" && portlet) portlet.fillParamValueFromObj("产品类别", pObj); //设置参数值到报表对象 portlet.commitParamValue(); portlet.refreshData(); } //创建参数信息 function createParamInfo(name, value, disValue, mergeType) { var paramInfo = new Object(); paramInfo.name = name; paramInfo.value = value; paramInfo.displayValue = disValue; if (mergeType) paramInfo.groupType = mergeType; return paramInfo; } |
...