(本文档仅供参考,该宏代码已验证适用于 V11 版本,由于宏代码在特定场景下可能存在限制,如果与实际应用场景不完全匹配,请根据具体需求自行调整相关代码,以确保其满足实际使用要求。)
V11版本基于数据模型创建的新即席分析中,如何实现切换不同的参数值打开不同的报表。如切换【报表】参数,值为1的时候显示报表1,值为2的时候显示报表2, 值为3的时候显示报表3:
该效果可通过写宏处理,具体步骤如下:
1、在报表宏界面新建客户端模块,在弹出的新建模块对话框中选择对象为detailed_query;事件为onRender;并把下面宏代码复制到代码区域。
function main(detailedQuery: IDetailedQuery) { let filetrPanel = detailedQuery.getFilterPanel() setTimeout(() => { //根据参数别名获取参数 let filter = filetrPanel.getParamByAlias('月份') let filter1 = filetrPanel.getParamByAlias('参数') filter1.setValueChangeHandler(function (newValues, oldValues) { debugger return newValues }) filter.setValueChangeHandler(function (newValues, oldValues) { let reportId = ''; debugger //参数值数组,newValues[0][0]代表选中的第一个值的真实值,newValues[0][1]第二个为显示值 if (newValues[0][1] == '1') { reportId = '95950a6e5ecf94ed01ed06d9ded64f77' } else { reportId = 'Iff8080810175e063e06365410175e432b02d047e' } // 【传参给资源】,不用传参可直接设置null // let query = { // paramInfo: [{name: '名称', alias: '别名', value: ['真实值'], displayValue: ['显示值']}] // } let query = null // 第三个参数 新窗口打开:NEW_WIN;新Tab页打开:NEW_TAB;浮动框打开:DIALOG detailedQuery.openResourceByType(reportId, query, 'NEW_TAB') return newValues }) }, 1000) } |