(本文档仅供参考)
问题
V11 清单表、汇总表如何实现根据点击的单元格的值不同打开不同的目标报表,并把单元格的值传到目标报表
解决办法
可参考如下宏代码,若需其它方式打开目标资源,可参考:【仪表盘】指定打开方式来打开目标报表页面
function main(page: IPage, portlet: ITableListPortlet) { portlet.setRenderCellHandler((cell, row, rowIndex, columnIndex) => { //点击第一列进行跳转,从0开始计算 if (columnIndex == 0) { //给单元格添加点击事件 cell.addEventListener(TableCellEvent.CLICK, () => { let value = cell.getValue() //判断点击的单元格的值为华南跳转到报表1 if(value=='华南'){ let params = [{ name: "baiwan", alias: "baiwan", value: value, displayValue: value }] let paramsInfoBase64 = SmartbiXMacro.utils.encodeBase64(JSON.stringify(params)) let query: OpenLinkQuery = { targetInfo: { url: `../vision/openresource.jsp?resid=I8a74a43c0192879a879aa861019288a7093007c4¶msInfoBase64=${paramsInfoBase64}`, method: 'POST', title: '报表1' } } //调用打开接口,接口默认为:新窗口打开'NEW_WIN',设置为浮窗打开 page.openLinkByType(query, OpenType.DIALOG) } //判断点击的单元格的值不为华南跳转到报表2 else { let params = [{ name: "参数1", alias: "参数1", value: value, displayValue: value }] let paramsInfoBase64 = SmartbiXMacro.utils.encodeBase64(JSON.stringify(params)) let query: OpenLinkQuery = { targetInfo: { url: `../vision/openresource.jsp?resid=I8a74a4220190996499644b8101909b6a1b4311d7¶msInfoBase64=${paramsInfoBase64}`, method: 'POST', title: '报表1' } } //调用打开接口,接口默认为:新窗口打开'NEW_WIN',设置为浮窗打开 page.openLinkByType(query, OpenType.DIALOG) } }) } }); }