# GetCurrentSelections - 图表函数

GetCurrentSelections() 返回应用程序中当前选择的列表。如果选择是使用搜索框中的搜索字符串进行的，GetCurrentSelections() 将返回该搜索字符串。

如果使用选项，您需要指定 record\_sep。要指定新行，请将 record\_sep 设置为 chr(13)&chr(10)。

如果选择除两个值以外的所有值，或除一个值以外的所有值，则分别使用格式“NOT x,y”或“NOT y”。如果选择全部值，并且全部值的计数大于 max\_values，将返回文本 ALL。

语法：

GetCurrentSelections ([record\_sep [, tag\_sep [, value\_sep [, max\_values [, state\_name]]]]])

返回数据类型： 字符串

参数

| 参数 | 描述 |
| --- | --- |
| record\_sep | 要置于两个字段记录之间的分隔符。默认分隔符为 &lt;CR&gt;&lt;LF&gt;，表示新行。 |
| tag\_sep | 要置于字段名标记和字段值之间的分隔符。默认设置为“` :  `”。 |
| value\_sep | 置于字段值之间的分隔符。默认分隔符为“,”。 |
| max\_values | 将会单独列出字段值的最大数字。当选择更大的字段值数量时，会改用“x 个值，共 y 个”格式。默认值为 6。 |
| state\_name | 已为特定可视化选择的备用状态的名称。如果已使用 state\_name 参数，则将只考虑与指定状态名称关联的选择。<br><br>有关更多信息，请参阅[使用备用状态进行对比分析](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Visualizations/alternate-states-comparative-analysis.htm)。 |

示例：图表表达式

| 示例 | 结果 |
| --- | --- |
| `GetCurrentSelections ()` | 如果未对任何字段进行选择，则返回 (`-`)。如果进行了选择，则返回值为字段名和值，例如 `First Name : John`。 |

## 示例 - GetCurrentSelections 基础知识

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/FieldFunctions/getcurrentselections.htm)

#### 图表表达式

概述

本例向您展示了 `GetCurrentSelections` 函数返回的值如何根据您的选择而变化。

打开数据加载编辑器，并将下面的加载脚本添加到新部分。

加载脚本包含：

* 加载到名为 `Example` 的数据表中的数据集。

* 数据表中有以下字段：

  * `FirstName`

  * `LastName`

  * `Initials`

  * `HasCellphone`

加载脚本

```
Example:
LOAD * inline [
FirstName|LastName|Initials|HasCellphone
John|Anderson|JA|Yes
Sue|Brown|SB|Yes
Mark|Carr|MC|No
Peter|Devonshire|PD|No
Jane|Elliot|JE|Yes
Peter|Franc|PF|Yes ] (delimiter is '|');
```

结果

1. 加载数据并打开工作表。创建一个新的筛选器窗格，并将这些字段添加为维度：

   * `FirstName`

   * `Initials`

2. 添加 KPI 对象，然后创建以下度量：

   * `=GetCurrentSelections ()`，用于查找当前选择项。

     由于没有选择值，KPI 返回 (`-`)。

   提示注释在本示例中，KPI 的样式已调整为使用响应式布局行为，以便于查看输出结果。有关更改图表布局行为的更多信息，请参阅[设定 KPI 的样式](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Visualizations/KPI/create-kpis.htm#Styling)。

3. 单击编辑工作表切换到分析模式，然后在 `FirstName` 字段中选择 `John`。KPI 返回以下内容：`FirstName: John`。

   * 现在选择 `Peter`，这样 `John` 和 `Peter` 都被选中。KPI 返回以下内容：`FirstName: John, Peter`。

   * 从 `Initials` 字段中选择 `JA` ，添加到选择中。KPI 返回以下内容：`First name: John, Peter Initials: JA`。

     ![GetCurrentSelection 函数返回名字 John 和 Peter 以及缩写 JA。](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-GetCurrSel-example.png)

4. 清除选择并执行以下操作：

   * 从 `FirstName` 字段中选择 `John` ，从 `Initials` 字段中选择 `JA` 。

   * 将 KPI 表达式编辑如下：`=GetCurrentSelections ( chr(13)&chr(10) , ' = ' )`，将标签分隔符改为等号 (`=`)。

     信息注释KPI 不支持换行，会添加一个空格作为记录分隔符。

5. 清除选择并执行以下操作：

   * 在 `FirstName` 字段中选择除 `Sue` 以外的所有名称。

   * 将 KPI 表达式编辑为以下内容：`=GetCurrentSelections (chr(13)&chr(10), '=', ',' ,3)`，用于添加一个标记分隔符 (`=`)、一个值分隔符 (`,`) 和要列出的最大值数 (`3`)。

     ![结果显示，只有 Sue 没有被选中，因为被选中的名称数量超过了函数表达式中设定的要列出的最大值。](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-GetCurrSel-example2.png)

     KPI 返回值：`FirstName=NOT Sue` ，因为选择了四个名称，但 `max_values` 参数只会列出三个。如果将 `max_values` 参数改为 `4` ，则所有四个值都将以相同的选择分别列出。

     ![由于最大值已改为四个，因此现在显示的是所有四个选定的名称。](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-GetCurrSel-example3.png)

## 示例 - 自定义图表标题以显示选项

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/FieldFunctions/getcurrentselections.htm)

#### 图表表达式

概述

本例向您展示如何使用 `GetCurrentSelections` 函数根据用户选择制作动态图表标题。

打开数据加载编辑器，并将下面的加载脚本添加到新部分。

加载脚本包含：

* 加载到名为 `Example` 的数据表中的数据集。

* 数据表中有以下字段：

  * `SalesID`

  * `Product`

  * `Year`

  * `Region`

  * `SalesAmount`

加载脚本

```
Example:
LOAD * INLINE [
SalesID, Product, Year, Region, SalesAmount
1, WidgetA, 2021, North, 500
2, WidgetB, 2021, South, 600
3, WidgetC, 2021, East, 450
4, WidgetA, 2021, West, 700
5, WidgetB, 2022, North, 550
6, WidgetC, 2022, South, 425
7, WidgetB, 2022, East, 650
8, WidgetC, 2022, West, 250
9, WidgetB, 2023, North, 650
10, WidgetC, 2023, South, 325
11, WidgetB, 2023, East, 550
12, WidgetC, 2023, West, 450
13, WidgetB, 2024, North, 550
14, WidgetC, 2024, South, 525
15, WidgetB, 2024, East, 350
16, WidgetC, 2024, West, 650
];
```

结果

1. 加载数据并打开工作表。创建一个新的筛选器窗格，并将这些字段添加为维度：

   * `Region`

   * `Year`

2. 创建折线图并添加以下维度：

   * `Year`

   * `Region`

3. 创建以下度量：

   * `=Sum(SalesAmount)`，用于显示销售总额。

4. 在度量属性面板的外观 &gt; 常规 &gt; 标题下，输入以下表达式：`='Sales Analysis for: ' & GetCurrentSelections()`。

   ![折线图显示了按年份和地区分列的销售额总和。](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-GetCurrSel-example4.png)

   结果显示了所有地区和年份的销售额总和。图表标题显示为 `Sales Analysis for:` 。

5. 单击编辑工作表切换到分析模式，然后进行以下选择：

   * 在区域字段中选择 `East` 和 `North` 。

   * 在年份字段中选择 `2022` 和 `2023` 。

     ![折线图仅显示所选地区和年份的销售额总和。](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-GetCurrSel-example5.png)

     图表标题变为显示 `Region` 和 `Year` 的筛选器选择项。