注意 |
---|
提示:本文档的示例代码仅适用于本文档中的示例报表/场景。若实际报表/场景与示例代码无法完全适配(如使用功能不一致,或多个宏代码冲突等),需根据实际需求开发代码。 |
示例说明
在项目中灵活分析报表根据参数值显示不同列。如下示例中当参数“币种”选择“美元”时报表显示“A”列、“B”列、“C”列;当参数“币种”选择“人民币”时报表显示“D”列、“E”列、“F”列。可以通过实现该功能。
当参数“币种”选择“美元”时的效果图:
当参数“币种”选择“人民币”时的效果图:
...
- 在资源定制中,创建一张灵活分析;
- 选中灵活分析,右键选择 编辑宏 进入报表宏界面。
- 在报表宏界面新建客户端模块,在弹出的新建模块对话框中选择对象为simpleReport;事件为onParamValueChanged;并把下面宏代码复制到代码区域。
在报表展示时,灵活分析中可能包含多个列。现需要根据参数“展示内容”来控制不同列展示。
当参数“展示内容”选择“产品”时,显示“产品类别”、“产品名称”、“销售量”和“销售额”几列:
当参数“展示内容”选择“区域”时,显示“发货区域”、“发货城市”、“销售量”和“销售额”几列:
版本及客户端要求
1.版本:Smartbi V7.0及以上
2.客户端:PC
3.浏览器:IE11、谷歌浏览器、火狐浏览器
设置方法
1.创建灵活分析报表
在资源定制中创建好灵活分析报表,报表中包含“展示内容”参数
2.设置初始隐藏字段
该灵活分析报表中“展示内容”参数默认值为“产品”。则报表打开时,默认只显示“产品类别”、“产品名称”、“销售量”和“销售额”字段。
点击工具栏中的“字段”按钮,在下拉菜单中将“发货区域”、“发货城市”字段隐藏
3.选中该灵活分析报表,右键选择 编辑宏,进入报表宏界面
4.在报表宏界面选择新建客户端模块。在弹出的新建模块对话框中选择对象为 simpleReport;事件为 onParamValueChanged;并把下面宏代码复制到代码区域。根据实际情况进行修改
宏类型
类型 | 对象 | 事件 |
---|---|---|
ClientSide | simpleReport | onParamValueChanged |
宏代码
代码块 | ||||||
---|---|---|---|---|---|---|
| ||||||
function main(simpleReport, simpleReportContext, param) { if (param.name == "币种展示内容") { //判断是否是"展示内容参数" var aFieldid//获取 = 'BizViewOutField.I402881e66c36d2570147ed4a3b96042a.I402881e66c36d2570147ed4943710413'; //获取报表中输出的字段 产品类别 字段 var bFieldidcategoryname = 'BizViewOutField.I402881e66c36d2570147ed4a3b96042aI4028818a015c808d808db7fe015c817340eb0502.I402881e66c36d2570147ed4943710414I4028818a015c808d808db7fe015c81732db504fa'; //获取报表中输出的字段 var cFieldid = 'BizViewOutField.I402881e66c36d2570147ed4a3b96042a.I402881e66c36d2570147ed4943710415';//获取产品名称 字段 var dFieldidproductname = 'BizViewOutField.I402881e66c36d2570147ed4a3b96042aI4028818a015c808d808db7fe015c817340eb0502.I402881e66c36d2570147ed48e9890410I4028818a015c808d808db7fe015c81732db504fb'; var eFieldid = 'BizViewOutField.I402881e66c36d2570147ed4a3b96042a.I402881e66c36d2570147ed48e9890411'; //获取发货区域字段 var fFieldidshipregion = 'BizViewOutField.I402881e66c36d2570147ed4a3b96042aI4028818a015c808d808db7fe015c817340eb0502.I402881e66c36d2570147ed49eeb20421I4028818a015c808d808db7fe015c81732db604fc'; if (param.displayValue == "美元") { //判断为"美元"显示那些字段,true为显示,false为不显示获取发货城市字段 var shipcity = simpleReport'BizViewOutField.clientConfig.gridProp.fieldProps[aFieldid].visible = true;I4028818a015c808d808db7fe015c817340eb0502.I4028818a015c808d808db7fe015c81732db604fd'; if simpleReport.clientConfig.gridProp.fieldProps[bFieldid].visible = true;(param.displayValue == "产品") { //判断为"产品产品"显示哪些字段,true为显示,false为不显示 simpleReport.clientConfig.gridProp.fieldProps[cFieldidcategoryname].visible = true; simpleReport.clientConfig.gridProp.fieldProps[eFieldidproductname].visible = falsetrue; simpleReport.clientConfig.gridProp.fieldProps[dFieldidshipregion].visible = false; simpleReport.clientConfig.gridProp.fieldProps[fFieldidshipcity].visible = false; } else { simpleReport.clientConfig.gridProp.fieldProps[aFieldidcategoryname].visible = false; simpleReport.clientConfig.gridProp.fieldProps[bFieldidproductname].visible = false; simpleReport.clientConfig.gridProp.fieldProps[cFieldidshipregion].visible = false; simpleReport.clientConfig.gridProp.fieldProps[eFieldid].visible = true; simpleReport.clientConfig.gridProp.fieldProps[dFieldidshipcity].visible = true; simpleReport.clientConfig.gridProp.fieldProps[fFieldid].visible = true; } simpleReport.updateClientConfig(); //更表报表配置 } simpleReport.refreshData(); //刷新报表数据 } |
注:
在上述代码中,字段的输出ID,如"BizViewOutField.I4028818a015c808d808db7fe015c817340eb0502.I4028818a015c808d808db7fe015c81732db504fa",是在数据集中获取的