报表跳转仪表板传参时,数据中有特殊字符如何处理?

报表设计过程中,需要从报表的表格或者交叉报表跳转到仪表板,通过仪表板图表展示数据。
这种场景,需要将报表数据对应的信息传递给仪表板的参数,仪表板通过全局参数进行数据筛选过滤。
如果报表数据为不包含特殊字符的普通文本,则可以参照帮助文档链接:
交互式报表并动态传参:https://help.grapecity.com.cn/pages/viewpage.action?pageId=42086123

如果数据中有包含如:#、@、%、!等特殊字符,则需要进行特殊处理。
需要将特殊字符使用报表表达式中的 Replace函数转换为UrlEncode编码之后的格式。
特殊字符UrlEncode对照表:


具体示例:
1.以示例销售数据为例,货主地区字段值中存在特殊符号“#”、“&”。


2.设计报表,设置 货主地区 单元格的钻取操作为URL。
注意:参考:交互式报表并动态传参:https://help.grapecity.com.cn/pages/viewpage.action?pageId=42086123,提前设计好跳转的仪表板。
 

此处,跳转Url的属性值需要使用表达式:
="http://localhost:51980/dashboards/view/36ca768c-e2d2-4e53-bc2c-a8224494b540?theme=default&lng=zh-CN&dp={%22area%22:[%22" & Fields!货主地区.Value.replace("#","%23").replace("&","%26") & "%22]}"

和帮助文档中的差异是:参数值不是直接使用字段值Fields!货主地区.Value,而是:Fields!货主地区.Value.replace("#","%23") ,
此处对特殊字符进行处理。如有多个特殊字符,则多次处理:Fields!货主地区.Value.replace("#","%23").replce("&","%26")。


替换之后的效果:


3.点击或者地区,查看调整之后的仪表板参数过滤效果。
点击报表中货主地区列:"#西北",成功跳转到仪表板,并实现数据过滤,参数值传递成功。

原文地址:https://www.cnblogs.com/edoo/p/13446757.html