提示:本文档的示例代码仅适用于本文档中的示例报表/场景。若实际报表/场景与示例代码无法完全适配(如使用功能不一致,或多个宏代码冲突等),需根据实际需求开发代码。
示例说明
在灵活分析报表中,可以设置指定的值添加跳转链接,或者不添加跳转链接。
如下,灵活分析报表中设置了合计,同时灵活分析又允许跳转,此时需要设置“合计”行不允许跳转。如下:
版本及客户端要求
1.版本要求:Smartbi V7 及以上
2.客户端:PC
3.浏览器:IE8-IE11、Chrome浏览器、firefox浏览器
设置方法
1.创建灵活分析报表,并设置合计,如下:
2.在灵活分析报表上,设置跳转规则,如下:
显示如下:
3.在报表上右键-》编辑宏,找到创建跳转规则时,自动生成的客户端宏。对其进行修改。具体代码如下:
宏代码
function main(simpleReport, simpleReportContext) { //simpleReport.addColumnLinkByName("产品类别",me);//注释掉原来的代码,使用下面代码代替 var col = simpleReport.getFieldIndexByName("产品类别"); //获取合计所在的列序号 for (var i = simpleReport.grid.getHeaderRows(); i < simpleReport.grid.getRowCount(); i++) { var cell = simpleReport.grid.getCell(i, col); if (cell) { if (cell.innerText == "合计") {} //判断为合计,则不加跳转 else { simpleReport.addCellLink(i, col, me); } } } } //这一部分没有做改变 var menuItem = { alias: "跳转", callback: function(simpleReport, simpleReportContext) { var destQuery = simpleReportContext.openReport("I4028818a015c808d808db7fe015c819f0143070b"); if (!destQuery) return; simpleReport.writeParamsToContext(); destQuery.refreshData(); } } var me = menuItem;
4.由于修改过客户端代码之后,如果重新保存跳转规则,则会导致代码失效。因此,删除跳转规则向导:
注意删除时将“删除相关模块”给勾除。
更多
同时,也可以只设置指定数据添加跳转,如只需要点击“点心”进行跳转。
步骤同上,在修改客户端宏代码时,修改如下:
宏代码
function main(simpleReport, simpleReportContext) { //simpleReport.addColumnLinkByName("产品类别",me);//注释掉原来的代码,使用下面代码代替 var col = simpleReport.getFieldIndexByName("产品类别"); //获取产品类别字段的列 序号 for (var i = simpleReport.grid.getHeaderRows(); i < simpleReport.grid.getRowCount(); i++) { var cell = simpleReport.grid.getCell(i, col); if (cell) { if (cell.innerText == "点心") { //内容为点心,则添加跳转 simpleReport.addCellLink(i, col, me); } else { } } } } //这一部分没有做改变 var menuItem = { alias: "跳转", callback: function(simpleReport, simpleReportContext) { var destQuery = simpleReportContext.openReport("I4028818a015c808d808db7fe015c81b639440848"); if (!destQuery) return; simpleReport.writeParamsToContext(); destQuery.refreshData(); } } var me = menuItem;