(本文档仅供参考)
问题说明
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)
}