页面树结构
转至元数据结尾
转至元数据起始

(本文档仅供参考)

问题说明

       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)

}

  • 无标签