示例说明
...
在灵活分析报表中,设置了合计,同时灵活分析又允许跳转,此时需要设置“合计”行不允许跳转。如下:
版本及客户端要求
1.版本要求:Smartbi V7 及以上
2.客户端:PC
3.浏览器:IE8-IE11、Chrome浏览器、firefox浏览器
...
设置方法
- 在资源定制中,创建一张灵活分析(带合计行)。
- 选中灵活分析,右键选择 编辑宏 进入报表宏界面。
- 在报表宏界面新建客户端模块,在弹出的新建模块对话框中选择对象为simpleReport;事件为onRenderTable;并把下面宏代码复制到代码区域。
宏类型
...
类型
...
对象
...
事件
...
ClientSide
...
simpleReport
...
1.创建灵活分析报表,并设置合计,如下:
2.在灵活分析报表上,设置跳转规则,如下:
显示如下:
3.在报表上右键-》编辑宏,找到创建跳转规则时,自动生成的客户端宏。对其进行修改。具体代码如下:
宏代码
代码块 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
function main(simpleReport, simpleReportContext) { //simpleReport.addColumnLinkByName("产品类别",me);//注释掉原来的代码,使用下面代码代替 var col = simpleReport.getFieldIndexByName("Region产品类别"); //取列序号 获取合计所在的列序号 for (var i = simpleReport.grid.getHeaderRows(); i < simpleReport.grid.getRowCount(); i++) { var cell = simpleReport.grid.getCell(i, col); if (cell) { debugger; if (cell.getAttribute("realValue").indexOf("小计合计") >= 0 || cell.getAttribute("realValue").indexOf("合计") >= 0) {}) {} //判断为合计,则不加跳转 else { simpleReport.addCellLink(i, col, me); } } } } //这一部分没有做改变 var menuItem = { alias: "区域跳转跳转", callback: function(simpleReport, simpleReportContext) { var destQuery = simpleReportContext.openReport("I402881903744c86c015437caeb580bb8I4028818a015c808d808db7fe015c819f0143070b"); if (!destQuery) return; simpleReport.writeParamsToContext(); destQuery.refreshData(); } } var me = menuItem; |
关键对象总结
- 通过参数名获取参数对象:simpleReport.addCellLink(i, col, me)
- 打开灵活分析:simpleReportContext.openReport("I2c949eaf1a942102011a9561f7e7015d");
...
4.由于修改过客户端代码之后,如果重新保存跳转规则,则会导致代码失效。因此,删除跳转规则向导:
注意删除时将“删除相关模块”给勾除。