---
order: 2
navTitle: 参数
---
# 参数

参数是当前页面的一组变量，改变参数的值可以触发引用了参数的组件刷新或引用了参数的数据集刷新。参数的值可以通过URL参数传递、也可以通过交互([设置参数值](../action/set-param-value.md))修改，使用参数可以方便的实现各种灵活交互效果，如点击进度环华中大区，折扣率标题前会加上华中名称，点击不同大区，标题也会随之对应改变：

![参数](./images/2021-10-11-13-13-25.gif)

## 使用参数{#use-param}

![使用参数](./images/2021-10-11-15-13-37.gif)

1. 点击页面工具栏中的**参数**按钮，弹出[参数](#settings)对话框
2. 点击`+`，弹出**新增参数**对话框，名称输入`dq`，描述为`大区`，点击确定即可

## 参数{#settings}

![参数](./images/2021-10-11-18-35-39.png)

- **名称**：参数的名称，一般使用简洁易懂的小写英文字母，如`dq`
- **默认值**：参数未传递明确的值时会使用默认值，仅在初始时计算一次作为参数的初始内容，后续参数的修改与默认值无关
- **数据类型**：用于限制参数的数据类型，如字符型、整形、日期型等，参数的值会自动按设置的类型进行转换，无法转换的值认为是不符合期望的，比如给日期类型的参数传递的值是“1”，会在查看界面使用到该参数的组件上给出错误提示信息
- **描述**：参数的业务描述，如“身份证号”
- **包含多值**：勾选后参数支持传递“多个值”，此时当参数用在查询或修改数据时都会匹配多条数据。通常用逗号分隔的字符串表示多值，具体可参考文档[多个数值匹配](../../../../exp/types.md#multi-number)
- **禁止外部传入**：勾选后，将自动忽略外部传入的参数
- **操作按钮**：
  - 添加：新增参数
  - 重命名：可修改参数名称
  - 查看引用：查看该参数在当前页面中被引用的地方，可以点击引用进行定位，具体可查看文档[查看引用](../../designer.md#view-reference)
  - 删除：删除参数。如果参数被引用了，点击删除时会给出友好提示；若强制删除，引用的表达式会报错，通过点击右上角红色报错数字，可快速定位问题位置

## 应用场景{#application}

参数只能在当前页面被使用，部分交互或组件可以获取到其他页面传递过来的参数值，并使用参数作为数据传递的桥梁，实现对其他页面的数据过滤。参数使用场景通常有以下几种：

1. [通过参数改变组件的数据，如改变组件的标题](#change-param)
2. [通过参数过滤数据，如打开链接获取参数进行数据过滤](#filter-data)
3. [通过参数判定组件的显示与隐藏](#display-hide)
4. [通过地址栏修改URL传递参数](#url-param)

### 通过参数改变组件数据{#change-param}

当点击不同数据时，想要标题也随所点击的数据发生改变，则可以使用**参数**与[设置参数值](../action/set-param-value.md)交互搭配使用，根据数据不同改变参数的值，然后将参数填写在想要改变数据的地方即可。如点击环形占比图不同的大区，其他图形上方标题会同步显示对应的大区名称，实现思路如下：

1. 在当前页面设置参数`dq`
2. 添加**设置参数值**交互，点击**编辑参数**，**参数名称**选择`dq`，**值**选择`当前值`即可，具体可查看文档[设置参数值](../action/set-param-value.md)交互
3. 在标题处添加参数即可，如`${[dq]}折扣率`

![通过参数改变组件数据](./images/2021-10-11-13-13-25.gif)

### 通过参数过滤数据{#filter-data}

点击数据打开目标页面时，想要在当前页面点击不同的数据，打开的目标页面就自动过滤数据，则可以在[打开链接](../action/linkto.md)交互中获取目标页面的参数，使用参数传递数据，从而达到过滤数据的效果。如点击`各类别产品销量`，能根据环形占比所选的大区查看对应大区的销售详情数据，实现思路如下:

1. 在打开链接目标页面中设置参数，即在销售详情页面设置参数`dq`
2. 在`各类别产品销量`条形图设置打开链接交互，**参数名**中能自动识别到目标页面中的参数，选择`dq`，参数值设置当前页面的参数`dq`即可
3. 在目标页面的模型表上添加参数过滤条件即可实现过滤数据，如`[dq]=[门店销售明细表].[区域编码].[大区]`

![地址栏修改url传递参数过滤数据](./images/2021-10-18-14-54-28.gif)

### 通过参数显示隐藏组件{#display-hide}

想要组件能实现动态的显示隐藏效果，也可以使用动态参数来控制，比如[设置参数值](../action/set-param-value.md)交互或者[打开链接](../action/linkto.md)传递不同的参数值来动态改变参数，最后在组件的**显示**属性中写入参数的表达式即可。如点击`隐藏`按钮，可以隐藏说明文字，点击`显示`可以显示说明文字，实现思路如下：

1. 设置参数`xs`，并设置默认值为`1`
2. 改变参数值
   - 在`隐藏`按钮上添加**设置参数值**交互，将参数值改为`0`，启用条件设置为`[xs]=1`
   - 再添加一个**设置参数值**交互，将参数值改为`1`，启用条件设置为`[xs]=0`
3. 在想要动态显示隐藏的组件**显示**属性中选择**条件**，并写入表达式，如`[xs]=1`，即可动态显示组件

![动态显示隐藏](./images/2021-10-18-14-54-27.gif)

### 地址栏修改URL传递参数{#url-param}

通过在URL后面传递参数也能给参数设置初始值，常用于[将页面嵌入到第三方系统](../../../../dev/integrate/embed-into-3rd.md)中。

需要注意的是URL的参数名是使用页面中定义好的参数的参数ID，即**参数名称**；参数值需要符合URL参数的编码规范，示例如下：

1. 参数值为数字：`https://demo.succbi.com/v5/DEMO/ana/report/float/float/自定义分组表.rpt?p_y=2018`
2. 参数值为中文，需要将中文进行编码：`https://demo.succbi.com/v5/DEMO/ana/report/float/float/自定义分组表.rpt?dq=%E5%8D%8E%E4%B8%AD`
3. 多个参数值，以`&`符连接：`https://demo.succbi.com/v5/DEMO/ana/report/float/float/自定义分组表.rpt?p_y=2018&dq=%E5%8D%8E%E4%B8%AD`

[点击此处体验](https://demo.succbi.com/v5/DEMO/ana/report/float/float/自定义分组表.rpt?p_y=2018)

![地址栏修改URL传递参数](./images/2021-10-19-10-04-05.png)
