提示:本文档的示例代码仅适用于本文档中的示例报表/场景。若实际报表/场景与示例代码无法完全适配(如使用功能不一致,或多个宏代码冲突等),需根据实际需求开发代码。
示例说明
如何通过宏获取到参数备选值(示例是基于电子表格实现,其他的报表类型可参考如下代码实现)
设置方法
类型: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); } } }
效果: