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

提示:本文档的示例代码仅适用于本文档中的示例报表/场景。若实际报表/场景与示例代码无法完全适配(如报表使用冻结,或多个宏代码冲突等),需根据实际需求开发代码。

示例说明

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

设置方法

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

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

function main(spreadsheetReport) {
    var util = jsloader.resolve("freequery.common.util");
    // I8a8a962a0172c13fc13f1df10172c1830d180248 电子表格resid
    var ret = util.remoteInvoke("SpreadsheetReportModule", "openQueryInPage", ["I8a8a962a0172c13fc13f1df10172c1830d180248", null]);
    if (ret.succeeded && ret.result) {
        // parameterPanelClientId
        var parameterPanelClientId = ret.result[0].parameterPanelClientId;
        // jsonArray中存储中个人参数的id
        // eg:jsonArray[0].id 的值为OutputParameter.parameterPanelClientId的值.参数名
        var userParamInfo = ret.result[0].userParamInfo;
        if (userParamInfo === "" || userParamInfo === null) {
            alert("此报表没有设置个人参数");
            return;
        }
        var jsonArray = JSON.parse(userParamInfo);
        var ret = util.remoteInvoke("ParameterPanelService", "getParamStandbyValue", [parameterPanelClientId, jsonArray[0].id]);
        if (ret && ret.result) {
            var data = ret.result;
            for (var i in data) {
                alert("个人参数备选值" + i + "-->真实值:" + data[i][0] + ",显示值:" + data[i][1]);
            }
        }
    }
}

效果:

示例资源:获取个人参数的备选值.xml


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

function main(spreadsheetReport) {
    var util = jsloader.resolve("freequery.common.util");
    //PARAM.SYSTEM知识库.季度2 --> 公共设置中右键参数属性的节点ID
    var ret = util.remoteInvoke("ParamService", "getParamStandValuebyParamId", ["PARAM.SYSTEM知识库.季度2"]);
    if (ret.succeeded && ret.result) {
        var data = ret.result; //结果集数据,返回一个二维数组
        for (var i in data) {
            alert("备选值" + i + "—>真实值:" + data[i][0].value + ",显示值:" + data[i][1].value);
        }
    }
}

效果:

示例资源:获取公共参数的备选值.xml