GetRecordIDsFromFoundSet

从当前搜索结果返回列表或 JSON 数组形式的记录 ID。要获取相关记录的 ID,请指定表摹本或入口的名称。

格式 

GetRecordIDsFromFoundSet ( 类型 { ; 表摹本或入口 } )

参数 

类型 - 指定返回的记录 ID 格式的数字表达式。请参阅描述。

表摹本或入口 - 指定当前布局上相关表摹本名称或入口对象名称的文本表达式。

括号 { } 中的参数是可选的。

返回的数据类型 

文本

原始版本 

22.0

说明 

该函数按当前顺序返回当前搜索结果的所有记录的记录 ID,或按指定表摹本或入口与当前记录相关的所有记录的记录 ID。记录 ID 是 FileMaker 客户端在创建记录时分配给表中的每个记录的唯一标识符,无法更改。

类型”参数决定返回的数据格式。使用常量名称或数值来指定“类型”。

类型参数 将记录 ID 返回为 示例

ValueNumber (0)

用回车返回分隔的值列表

复制
1
5
21
22
23
7

JSONString (1)

字符串形式的值的 JSON 数组

复制
["1","5","21","22","23","7"]

JSONNumber (2)

数字形式的值的 JSON 数组
复制
[1,5,21,22,23,7]

ValueNumberRanges (3)

带有范围的值列表1

复制
1
5
21-23
7

JSON 字符串(4)

作为具有范围1的字符串形式的 JSON 数组

复制
["1","5","21-23","7"]
  1. 对于 ValueNumberRangesJSONStringRanges,连续的记录 ID 被压缩到范围中,以帮助减小返回数据的大小。

要获取表摹本中相关记录的 ID,请使用表摹本或入口参数来指定相关表摹本的名称。相关记录 ID 按关系指定的排序顺序返回。请参阅创建和更改关系

要获取当前布局上入口中相关记录的 ID,请使用表摹本或入口参数来指定入口的对象名称(请参阅命名对象)。返回的记录 ID 会根据”入口设置“对话框中的入口设置进行过滤和排序。请参阅创建入口以显示相关记录

注释 

  • 返回的记录 ID 可与转到记录列表脚本步骤一起使用,以便在基于同一表指定布局时重新创建相同的搜索结果。

  • 如果没有找到记录,该函数将以指定格式返回一个空结果。对于空值列表,它返回一个空字符串 ("")。对于空的 JSON 数组,将返回“[]”。

  • 如果指定了表摹本或入口参数,该函数首先尝试将其值与表摹本名称相匹配。如果失败,它会尝试将值与入口的对象名称相匹配。如果没有找到匹配项,该函数将返回“?”。

示例 1 - 以值列表的形式获取记录 ID

以回车分隔的列表形式获取记录 ID。

复制
GetRecordIDsFromFoundSet ( ValueNumber )

如果当前的搜索结果包含 ID 为 101、102 和 105 的记录,此示例将返回:

复制
101
102
105

示例 2 - 从入口中获取相关记录 ID 作为 JSON 数字数组

从名为 ContactsPortal 的入口对象中返回相关记录 ID 作为 JSON 数字数组。

复制
GetRecordIDsFromFoundSet ( JSONNumber ; "ContactsPortal" )

如果当前记录中的入口显示三条关联记录,且该入口通过排序和过滤后显示的记录 ID 分别为 1101、702 和 1015,则本示例将返回:

复制
[1101,702,1015]

示例 3 - 保存搜索结果以便稍后重现

将包含当前搜索结果的记录 ID 和当前布局名称的 JSON 对象保存到全局字段中。

复制
设置变量 [ $recordIDs ; 值: GetRecordIDsFromFoundSet ( JSONStringRanges ) ]
设置变量 [ $currentLayout ; 值: Get ( 布局名称 ) ]

设置变量 [ $foundSetInfo ; 值: 
  JSONSetElement ( "{}" ; 
    [ "记录 ID" ; $recordIDs ; JSONArray ] ; 
    [ "布局" ; $currentLayout ; JSONString ] 
  )
]

设置字段 [ Global::LastFind ; $foundSetInfo ]

对于“联系人”布局上的搜索结果,保存在 Global::LastFind 中的 JSON 对象可能如下所示:

复制
{
  "recordIDs": ["1-3", "5", "7-9"],
  "layout": "联系人"
}

稍后,另一个脚本可以使用转到记录列表脚本步骤转到相同的布局和搜索结果。

复制
设置变量 [ $foundSetInfo ; 值: Global::LastFind ]
设置变量 [ $recordIDs ; 值: JSONGetElement ( $foundSetInfo ; "记录 ID" ) ]
设置变量 [ $layoutName ; Value: JSONGetElement ( $foundSetInfo ; "布局" ) ]

转到记录列表 [ 记录 ID 列表: $recordIDs ; 使用布局: $layoutName ; 动画: 无 ]