# 搜索和替换引用

使用 [引用] 窗口，可以搜索工程或复合对象中指定源属性或文本的实例。然后可以使用[引用]窗口替换源属性或文本。

[引用]窗口是维护和调整工程的重要工具。

1. 搜索字段
2. 源属性选择器
3. 范围
4. 搜索命令
5. 替换字段
6. 替换命令
7. 转到源对象
8. 选择搜索和替换的范围
9. 搜索结果

## 搜索和替换引用

### 搜索

1. 单击[引用]选项卡。
2. 在[引用]窗口中，使用[搜索]字段指定要搜索的项目。单击“源类型”图标并选择源属性。

   搜索项目 | 搜索字段
   工程 | 复合对象
   [变量]、[本地变量]、[图形对象]、[目标]、[设备]、[报警]、[配方] | [复合对象]、[本地变量]、[图形对象] | 从源属性选择器中选择要搜索的源属性。
   [语言表文本]，[直接文本] | [直接文本] | 输入要在工程标签和文本或复合文本中搜索的文本。
   [转换器] | [转换器] | 输入要搜索的转换器名称。 注：输入转换器名称时，会动态列出匹配的名称。
   [安全级别] | [安全级别] | 定义要搜索的安全级别范围。例如，下面是对安全级别 5 的搜索。

注： 对 [引用] 的搜索是精确匹配搜索。但是，您可以使用星号 (*) 来缩小除 [安全级别] 之外的搜索项目的搜索结果。例如，如果选择变量 源属性并在搜索字段中输入 “Var*”，则搜索结果将显示以 “Var” 开头的变量源属性引用。

3. 单击范围图标定义搜索范围。选中复合对象时，范围按钮将被禁用。

   范围 | 描述
   [全选] | 选中此复选框可选中所有搜索项的复选框并将其添加到搜索范围中。清除此复选框可清除所有搜索项的复选框，并将其从搜索范围中删除。
   [画面] | 选中此复选框搜索画面后，设置是搜索[所有画面]还是具有[画面 ID]字段的特定画面。
   [内容] | 选中此复选框搜索内容后，设置是搜索[所有内容]还是具有[内容 ID]字段的特定内容。
   [脚本] | 选中此复选框可将脚本添加到搜索范围。 选中此复选框搜索脚本后，设置是搜索[所有脚本]、所有[全局脚本]、还是与特定画面关联的脚本，或者具有[画面 ID]和[内容 ID]字段的内容。
   [变量] | 选中此复选框可将变量添加到搜索范围。
   [转换器] | 选中此复选框可将转换器添加到搜索范围。
   [报警] | 选中此复选框可将报警添加到搜索范围。
   [语言] | 选中此复选框可将语言添加到搜索范围。
   [目标] | 选中此复选框可将目标添加到搜索范围。
   [记录] | 选中此复选框可将记录添加到搜索范围。
   [配方] | 选中此复选框可将配方添加到搜索范围。
   [系统键盘] | 选中此复选框可将系统键盘添加到搜索范围。
   [安全] | 选中此复选框可将安全添加到搜索范围。

4. 单击搜索图标开始搜索。
   匹配搜索参数的项目将显示在搜索结果中并包含以下信息。

   列名称 | 描述
   [目标类型] | 与搜索参数匹配的对象。
   [目标路径] | 与搜索参数匹配的属性路径。
   [源路径] | 与搜索参数匹配的源项目的属性名称。如果运行替换操作，则这是被替换的项目。

5. 可以使用列名称对搜索结果进行排序或筛选。
   注：
   - 在搜索结果中选择一个项目，然后单击[跳至源对象]跳到目标路径。
   - 在画面编辑器、变量编辑器或转换器中工作时，工具栏包含搜索图标。单击该图标以启动对于所选对象的搜索操作，并在[引用]窗口中显示搜索结果。

### 替换

6. 在搜索结果中选择所需项目。
7. 在[替换]字段中，定义搜索项目的替换项。
   替换项目必须与搜索项目匹配。
   单击源属性选择器图标，然后选择相应的源属性（变量、图形对象、目标、报警、配方、语言表文本）或相应的转换器、安全级别或文本。
8. 若要替换搜索结果中的所有匹配项，请输入 [CTRL]+[A] 以全选。要仅替换选定项目，请使用 [CTRL]+单击以选择单个项目。
9. 单击替换图标替换所选实例。
   注：运行替换操作后，不会更新搜索结果。因此，搜索结果可能不是最新的。再次运行搜索以更新搜索结果。
10. 运行替换操作后，单击撤消图标将工程还原为替换操作之前的状态。

注：

- 当变量用于定义数组变量中的元素编号，并且该数组变量作为搜索结果的一部分显示在[源路径]中时，使用替换操作可以选择替换数组变量、元素编号变量或完全源路径（[完全替换]）。
- 当搜索或替换一个本地变量时，会添加前缀 "$Local"。例如: '$Local.Var1.Value'

以下是使用数组时替换操作的三个不同示例：完全替换、替换变量元素和替换数组。

源路径 | 替换类型 | 替换至 | 结果
Array1[Var1.value].value | 完全替换 | Var2.value | Var2.value
Array1[Var1.value].value | Var1 | Var2.value | Array1[Var2.value].value
Array1[Var1.value].value | Array1 | Array2 | Array2[Var1.value].value

完全替换将用所选变量替换完全源路径。

在第二个方案中，当选择元素编号变量时，仅替换所选变量。

在第三个方案中，由于替换类型是数组，因此数组变量本身被替换。