如何通过宏获取到参数备选值(示例是基于电子表格实现,其他的报表类型可参考如下代码实现)

类型:ClientSide(客户端宏)   对象:spreadsheetReport    事件:onRenderReport

获取到私有参数的备选值,宏示例如下:

function main(spreadsheetReport) {
    var util = jsloader.resolve("freequery.common.util");
    //私有参数  --打开电子表格
    //I4028818a015ea8fea8fe2bbc015eb885a4421f6f  电子表格resid
    var ret = util.remoteInvoke("SpreadsheetReportModule","openQueryInPage",["I4028818a015ea8fea8fe2bbc015eb885a4421f6f",null]);
    if (ret.succeeded && ret.result) {
        var parameterPanelClientId = ret.result[0].parameterPanelClientId;//parameterPanelClientId
        //OutputParameter.I4028818a015ea8fea8fe2bbc015eb8819c011f0f.产品类别2  --> 数据集输出参数标识
        var ret = util.remoteInvoke("ParameterPanelService","getParamStandbyValue",[parameterPanelClientId,"OutputParameter.I4028818a015ea8fea8fe2bbc015eb8819c011f0f.产品类别2"]);
        if (ret && ret.result) {
            var data = ret.result;
            for(var i in data){
                alert("私有参数备选值"+i+"-->真实值:"+data[i][0] + ",显示值:"+data[i][1]);
            }
        }
        
    }    
}

效果:

获取到公共参数的备选值,宏示例如下:

 

function main(spreadsheetReport) {
    var util = jsloader.resolve("freequery.common.util");
    //PARAM.培训northwind.产品大类名称 --> 公共设置中右键参数属性的节点ID
    var ret = util.remoteInvoke("ParamService", "getParamStandbyValue",["PARAM.培训northwind.产品大类名称"]);
    if (ret.succeeded && ret.result) {
        var data = ret.result.data;//结果集数据,返回一个二维数组

        for(var i in data){
            alert("备选值"+i+"-->真实值:"+data[i][0].value + ",显示值:"+data[i][0].displayValue);
        }
    }
}

效果: