示例说明
如何通过宏获取到参数备选值(示例是基于电子表格实现,其他的报表类型可参考如下代码实现)
设置方法
类型: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