示例效果
在即席查询中切换一个参数,不同的参数值打开不同的报表。
如切换【报表】参数,值为1的时候显示报表1,值为2的时候显示报表2, 值为3的时候显示报表3:

设置方法
分别在3个报表使用到的数据模型中添加一个参数,设置好默认值
在“分析展现”节点下分别创建即席查询报表1、报表2、报表3。
切换到 公共设置 > 宏资源包 节点下,新建一个宏资源包,类型选择即席查询,并且勾选【基于数据模型】,适用范围选择报表1、报表2和报表3。
双击此宏资源包进入报表宏界面。
在报表宏界面新建客户端模块,在弹出的新建模块对话框中选择对象为model_query;事件为onParamChanged;并把下面宏代码复制到代码区域。
宏类型
类型 | 对象 | 事件 |
ClientSide | model_query | onParamChanged |
宏代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | function main(modelQuery: IModelQuery, paramId: string) {
var param:IParam = modelQuery.getParamPanel().getParamById(paramId);
var reportId: string = modelQuery.getId();
if (param !== null ) {
var currentValue = param.getValue();
if ( typeof currentValue === 'string' ) {
switch (currentValue) {
case '1' :
if (reportId !== 'f2e2d9c955fab606628b4aed0bcc86c5' ) {
modelQuery.openQuery( 'f2e2d9c955fab606628b4aed0bcc86c5' );
}
break ;
case '2' :
if (reportId !== 'dca69a7d49d30cafd1d9fc580116ec63' ) {
modelQuery.openQuery( 'dca69a7d49d30cafd1d9fc580116ec63' );
}
break ;
case '3' :
if (reportId !== '4b1258911070ba01a0437a38d8d9e4db' ) {
modelQuery.openQuery( '4b1258911070ba01a0437a38d8d9e4db' );
}
break ;
}
}
}
}
|
关键对象总结
打开即席查询:
modelQuery.openQuery( '4b1258911070ba01a0437a38d8d9e4db' );
|