示例说明

          在项目中灵活分析报表根据参数值显示不同列。如下示例中当参数“币种”选择“美元”时报表显示“A”列、“B”列、“C”列;当参数“币种”选择“人民币”时报表显示“D”列、“E”列、“F”列。可以通过实现该功能。

        当参数“币种”选择“美元”时的效果图:

       

        当参数“币种”选择“人民币”时的效果图:

      


设置方法

  1. 在资源定制中,创建一张灵活分析;
  2. 选中灵活分析,右键选择 编辑宏 进入报表宏界面。
  3. 在报表宏界面新建客户端模块,在弹出的新建模块对话框中选择对象为simpleReport;事件为onParamValueChanged;并把下面宏代码复制到代码区域。

 

宏类型

类型

对象

事件

ClientSide

simpleReport

onParamValueChanged


宏代码

function main(simpleReport, simpleReportContext, param) {
    if (param.name == "币种") {
        var aFieldid = 'BizViewOutField.I402881e66c36d2570147ed4a3b96042a.I402881e66c36d2570147ed4943710413'; //获取报表中输出的字段
        var bFieldid = 'BizViewOutField.I402881e66c36d2570147ed4a3b96042a.I402881e66c36d2570147ed4943710414';
        var cFieldid = 'BizViewOutField.I402881e66c36d2570147ed4a3b96042a.I402881e66c36d2570147ed4943710415';
        var dFieldid = 'BizViewOutField.I402881e66c36d2570147ed4a3b96042a.I402881e66c36d2570147ed48e9890410';
        var eFieldid = 'BizViewOutField.I402881e66c36d2570147ed4a3b96042a.I402881e66c36d2570147ed48e9890411';
        var fFieldid = 'BizViewOutField.I402881e66c36d2570147ed4a3b96042a.I402881e66c36d2570147ed49eeb20421';
        if (param.displayValue == "美元") { //判断为"美元"显示那些字段,true为显示,false为不显示
            simpleReport.clientConfig.gridProp.fieldProps[aFieldid].visible = true;
            simpleReport.clientConfig.gridProp.fieldProps[bFieldid].visible = true;
            simpleReport.clientConfig.gridProp.fieldProps[cFieldid].visible = true;
            simpleReport.clientConfig.gridProp.fieldProps[eFieldid].visible = false;
            simpleReport.clientConfig.gridProp.fieldProps[dFieldid].visible = false;
            simpleReport.clientConfig.gridProp.fieldProps[fFieldid].visible = false;
        } else {
            simpleReport.clientConfig.gridProp.fieldProps[aFieldid].visible = false;
            simpleReport.clientConfig.gridProp.fieldProps[bFieldid].visible = false;
            simpleReport.clientConfig.gridProp.fieldProps[cFieldid].visible = false;
            simpleReport.clientConfig.gridProp.fieldProps[eFieldid].visible = true;
            simpleReport.clientConfig.gridProp.fieldProps[dFieldid].visible = true;
            simpleReport.clientConfig.gridProp.fieldProps[fFieldid].visible = true;
        }
        simpleReport.updateClientConfig(); //更表报表配置
    }
    simpleReport.refreshData(); //刷新报表数据
}