本帖最后由 lucas.Yan 于 2024-5-14 10:00 编辑
参考文档:正文: 对于仪表板,当我们需要使用文档跳转功能的时候,可以选择跳转仪表板或者跳转报表进行跳转同时可以传递参数,当然也可以使用动态变量进行格式化从而实现灵活的自定义跳转。 但是当我们使用报表进行自定义URL跳转,需要将绑定的参数或者一些自定义值进行拼接形成将要跳转的URL。这个时候我们会发现跳转所用的格式和拿到参数的格式值不同,需要进行额外的处理。而表达式编写所提供的函数无法满足我们的需要,此时我们可以借助自定义函数对数据进行处理来满足格式转换。 效果如下GIF动态图:
具体实现步骤:
1. 设计报表:使用共享数据集Demo销售明细为例,例如矩表组件设计向导进行快速创建矩表。
2. 设置报表参数
3. 为矩表中的客户省份添加钻取操作,通过设置钻取类型应用到报表参数,来实现将点选的省份从参数中添加或者取出。
4. 创建两个文本框,稍后填写数据和表达式
5. 进入系统管理,编写自定义函数 - <font size="3">/// <function name="MultivaluedParameterConversion">
- /// <culture>
- /// <label>MultivaluedParameterConversion</label>
- /// <syntax>MultivaluedParameterConversion(object[] parameters)</syntax>
- /// <description>自定义函数描述</description>
- /// <example>Code.MultivaluedParameterConversion(object[] parameters)</example>
- /// </culture>
- /// </function>
- ​
- public string MultivaluedParameterConversion(object[] parameters)
- {
- string ret = "[";
- for (int i = 0; i < parameters.Length; i++)
- {
- if(i == 0)
- {
- ret += """ + parameters[i].ToString() + """;
- }
- else
- {
- ret += ","" + parameters[i].ToString() + """;
- }
- }
- ret += "]";
- return ret;
- }</font>
复制代码
这段代码主要作用是将参数 省份 拼接为["省份1","省份2] 这样的格式
6. 填写文本框 在第一个文本框中填写 多选省份:{Join(@省份, ",")} 用作观察参数的值 在第二个文本框中填写 跳转用作跳转的按钮
7. 为第二个文本框设置钻取操作 - http://localhost:51980/dashboards/view/{dashboardId}?theme=default&lng=zh-CN&token={token}&dp={{%22省份%22:{Code.MultivaluedParameterConversion(@省份)}}
复制代码上面的dashboardId和token可以根据自己的需求进行更换,同时也可以添加其他集成参数对dashboard进行自定义集成.
8. 点击保存报表,即可完成报表带多值参数跳转仪表板
|