[]
        
在线Demo 免费试用
(Showing Draft Content)

动态显示组件

1. 概述

1.1 功能概述

一般情况下,报表的组件是固定的,但也有一些情况需要动态地显示组件。例如以下两种场景:

  1. 允许用户自定义显示组件,以提高阅读效率。如图所示。

    PixPin_2025-07-03_17-32-36


  2. 根据登录用户的权限自动控制显示组件。比如当Administrator角色登录时可以看到报表中的所有内容,而当普通角色登录查看此报表时则仅能看到图表内容,不能看到表格内容。如图所示:

    image

    下面为您分别介绍这两种动态显示组件效果在报表中的实现方法。

2. 操作步骤

2.1 场景一:根据用户的选择控制组件是否显示

2.1.1 新建报表

  1. 新建报表,添加基于 WynDemoData 的数据集,并创建如下图表和表格。

    PixPin_2025-07-03_17-33-41

  2. 添加一个报表参数,并按下图所示编辑参数设置项。

    PixPin_2025-07-03_17-34-29

2.1.2 设置隐藏

  1. 选中图表组件,在属性设置面板中找到显示选项隐藏设置项,单击右侧的小方块,然后选择表达式

    PixPin_2025-07-03_17-35-21

  2. 在表达式编辑器中输入表达式: {IIF(Join(@P1, ",").IndexOf("图表") >= 0, false, true)}

    表达式含义: 先将参数P1转换成字符串,然后检测是否包含“ 图表 ”,如果包含则返回“ False ”,如果不包含则返回“ True ”。

    由于表达式是添加在了隐藏设置项中,因此如果返回“ False ”即不隐藏,返回“ True ”则隐藏。

    PixPin_2025-07-03_17-35-41

  3. 同理,在表格的属性设置中找到隐藏设置项,然后为其添加表达式: {IIF(Join(@P1, ",").IndexOf("表格") >= 0, false, true)}。

    PixPin_2025-07-03_17-36-24

2.1.3 成果展示

  1. 保存或预览报表,可见已经实现组件的动态控制效果。

    image

2.2 场景二:根据用户权限自动控制组件是否显示

根据用户权限控制组件显示情况的做法与以上通过参数面板进行控制的原理相同,都是在组件的隐藏设置项中添加表达式,然后通过表达式来实现动态控制。

具体做法如下:

2.2.1 新建报表

  1. 新建报表具体步骤请参考场景一的新建报表。

2.2.2 设置隐藏

  1. 选中表格组件,在属性设置面板中找到显示选项下的隐藏设置项,单击右侧的小方块,然后选择表达式。在表达式编辑器中输入表达式: {IIF(Join(UserContext.GetValues("role"), ",").IndexOf("administrator") >= 0, false, true)}{IIF(Join(UserContext.MyRoles(), ",").IndexOf("administrator") >= 0, false, true)}

    表达式含义: 先获取到当前登录用户的角色值并将其转换成字符串,然后检测是否为“ administrator ”,如果是则返回“ False ”,如果不是则返回“ True ”。

    由于表达式是添加在了隐藏设置项中,因此如果返回“ False ”即不隐藏,返回“ True ”则隐藏。

    PixPin_2025-07-03_17-44-32

2.2.3 成果展示

  1. 保存报表。当前登录用户为administrator,因此可以看到表格组件;如将文档分享给其他角色,并切换至其他角色的用户登录,则只能看到图表组件。

    PixPin_2025-07-03_17-43-05

3. 资源下载

  1. 场景一示例文件包: 下载后,您可直接导入至对应版本系统中查看使用。

    动态显示组件.zip


注意: 本示例压缩包基于8.1版本制作,请使用8.1及以上版本并参照导入导出文档操作(低版本可能存在兼容性问题,建议升级)。

  1. 场景二: 按步骤操作即可实现。