提示:本文档的示例代码仅适用于本文档中的示例报表/场景。若实际报表/场景与示例代码无法完全适配(如使用功能不一致,或多个宏代码冲突等),需根据实际需求开发代码。
(本示例已在V10.5.15版本中测试并验证通过)
问题说明
在交互式仪表盘中,使用文本组件获取公共参数的真实值和显示值,应该如何实现?
解决方案
1、获取真实值:使用函数 [GetSelectedFieldValue(xx,xx,xx)],参考其它组件 ⬝ 文本组件 ⬝ 字段取数
(注:模型参数使用该函数获取到的是显示值)
2、获取显示值
1)要把参数组件应用于文本组件,文本组件才会随着参数选中值变化而刷新;
2)添加宏代码在文本组件
//对象:文本 事件:onAfterRender function main(page: IPage, portlet: IStaticTextPortlet) { portlet.setContentHandler(function (rawHtmlContent, processedHtmlContent) { let paramPortlet = page.getPortletById('xxx') //xxx填写参数组件id,获取方式见https://wiki.smartbi.com.cn/pages/viewpage.action?smt_poid=43&pageId=115002325 let displayValue = paramPortlet.getDisplayValue() || [] let html = '<span>' + displayValue.join(',') + '<\span>' return html }) }
最后效果: