# InObject - 图表函数

InObject() 图表函数计算当前对象是否包含在具有函数参数中指定 ID 的另一个对象中。对象可以是工作表或可视化。

此函数可用于显示工作表中对象的层次结构，从顶层工作表对象到嵌套在其他可视化中的可视化。此函数可以与 if 和 ObjectId 函数一起使用，以在应用程序中创建自定义导航。

语法：

InObject(id\_str)

返回数据类型： 布尔值

在 Qlik Sense 中，布尔 true 值由 -1 表示，false 值由 0 表示。

参数

| 参数 | 描述 |
| --- | --- |
| id\_str | 表示正在计算的对象 ID 的字符串值。 |

可以从应用程序 URL 获取工作表 ID。对于可视化，请使用开发者选项来标识对象 ID 和对象类型的文本字符串。

执行以下操作：

1. 在分析模式下，将以下文本添加到 URL 中：

   /options/developer

2. 右键单击可视化，然后单击 the 开发者 icon 。

3. 在属性下，从对话框标题获取对象 ID，从“qType”属性获取对象类型。

限制：

当在作为主条目的容器内的对象（例如按钮）中调用此函数时，可能会产生意外的结果。此限制也适用于筛选器窗格主条目，这些主条目是多个列表框的容器。这是因为主条目使用对象层次结构的方式。

InObject() 通常与以下函数结合使用：

相关函数

| 函数 | 交互 |
| --- | --- |
| [if - 脚本和图表函数](https://help.qlik.com/zh-CN/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/ConditionalFunctions/if.htm) | if 和 ObjectId 函数可以一起用于创建条件表达式。例如，可视化可以通过使用这些函数的表达式实现条件着色。 |
| [ObjectId - 图表函数](https://help.qlik.com/zh-CN/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/SystemFunctions/ObjectId.htm) | 与 if 类似，ObjectId 也与 InObject 一起用于创建条件表达式。 |

## 示例 1 – 基本功能

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/SystemFunctions/InObject.htm)

#### 图表表达式和结果

下面的基本示例演示了如何确定一个对象是否包含在另一个对象中。在这种情况下，我们将使用工作表的 ID 作为参数检查文本和图像对象是否驻留在工作表对象中。

执行以下操作：

1. 打开新工作表并将文本和图像图表拖到工作表上。

2. 在属性面板中，单击添加度量。

3. 单击 the 表达式 icon 以打开表达式编辑器。

4. 将以下表达式粘贴到对话框中：

   ```
   =InObject()
   ```

5. 修改表达式以将工作表的 ID 作为字符串包含在括号之间。

   例如，对于 ID 为 1234-5678 的工作表，可以使用以下内容：

   `=InObject('1234-5678')`

6. 单击应用。

值 `-1` 显示在图表中，表示表达式的计算结果为真。

## 示例 2 – 具有条件颜色的对象

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/SystemFunctions/InObject.htm)

#### 图表表达式和结果

概述

以下示例演示如何创建显示不同颜色的自定义导航按钮，以指示当前打开的工作表。

首先创建一个新应用程序并打开数据加载编辑器。将以下加载脚本粘贴到新选项卡中。请注意，数据本身是占位符，不会在示例内容中使用。

加载脚本

```
Transactions: 

Load 
* 
Inline  
[ 
id,date,amount 
8188,'1/19/2022',37.23 
8189,'1/7/2022',17.17 
8190,'2/28/2022',88.27 
8191,'2/5/2022',57.42 
8192,'3/16/2022',53.80 
8193,'4/1/2022',82.06 
8194,'4/7/2022',40.39 
8195,'5/16/2022',87.21 
8196,'6/15/2022',95.93 
8197,'7/26/2022',45.89 
8198,'8/9/2022',36.23 
8199,'9/22/2022',25.66 
8200,'11/23/2022',82.77 
8201,'12/27/2022',69.98 
8202,'1/1/2023',76.11 
8203,'2/8/2022',25.12 
8204,'3/19/2022',46.23 
8205,'6/26/2022',84.21 
8206,'9/14/2022',96.24 
8207,'11/29/2022',67.67 
]; 
```

创建可视化

加载数据并创建两个新工作表。将它们的标题分别命名为 Sales 2022 和 Sales 2023。

接下来，构建两个按钮对象，用于在两个工作表之间导航。

执行以下操作：

1. 向工作表中添加两个按钮对象。

2. 在外观 &gt; 常规下，将每个按钮的标签分别设置为 Sales 2022 和 Sales 2023。

3. 排列按钮以匹配下图。

   带有两个导航按钮的Sales 2022 工作表排列

   带有两个导航按钮的Sales 2022 工作表排列

   带有两个导航按钮的Sales 2022Sales 2022 工作表排列![Sales 2022 工作表，带有两个按钮，分别标记为 'Sales 2022' 和 'Sales 2023'。](https://help.qlik.com/zh-CN/sense/November2024/Subsystems/Hub/Content/Resources/Images/ObjectId_ConditionalColorButtonsArrangement_Windows.png)

4. 选择 Sales 2022 按钮，然后在属性面板中展开操作和导航。

5. 单击添加操作，然后在导航下选择转到工作表。

6. 在工作表下，选择 Sales 2022。

7. 重复此按钮操作设置，将 Sales 2023 按钮链接到 Sales 2023 工作表。

8. 通过右键单击按钮并选择the 添加到主条目 icon ，将按钮转换为主条目。

现在，您可以复制每个按钮并将其粘贴到 Sales 2023 工作表中，使用工作表上相同的大小和排列。

创建条件颜色

接下来，配置按钮，使其在链接到当前打开的工作表时为蓝色，在链接到未打开的工作时为浅灰色。

执行以下操作：

1. 打开 Sales 2022 工作表并从 URL 获取工作表 ID。保持 Sales 2022 工作表打开。

2. 单击 Sales 2022 按钮主条目，然后在属性面板中选择编辑。

3. 在外观 &gt; 背景下，选择按表达式为按钮着色。

4. 在表达式中，粘贴以下文本：

   =if(InObject(''), Blue(), LightGray())

5. 在上面表达式中的括号之间，粘贴 Sales 2022 工作表的工作表 ID。

现在，该按钮被配置为当 Sales 2022 工作表打开时变为蓝色，而当未打开时则变为浅灰色。

对 Sales 2023 工作表重复上述说明，将 Sales 2023 按钮主条目链接到 Sales 2023 工作表 ID。

每个工作表现在应有两个按钮，以蓝色指示当前打开的工作表。

Sales 2022 工作表，蓝色，表示当前显示 2022 年销售额

Sales 2022 工作表，蓝色，表示当前显示 2022 年销售额

Sales 2022Sales 2022 工作表，蓝色，表示当前显示 2022 年销售额 ![Sales 2022 工作表的分析模式，带有两个按钮，分别标记为 'Sales 2022' 和 'Sales 2023'。](https://help.qlik.com/zh-CN/sense/November2024/Subsystems/Hub/Content/Resources/Images/ObjectId_ConditionalColorButtonsSales2022.png)