findMatching2SForm( )
查找两个区段表单的重复区段实例,该实例由行 ID 标识,与作为搜索关键字提供的项值匹配。此功能支持部分日期
对于此函数:
- 不支持下拉列表、单选按钮和复选框值作为函数参数或目标。
- 如果变量设计为保存部分日期,则以相同的部分日期格式提供该参数的值。您可以采用以下格式使用部分日期:
- <dd-mmm-yyyy hh:mm>
- <dd-mmm-yyyy hh>
- <dd-mmm-yyyy>
- <mmm-yyyy>
- <yyyy>
注意:
实例之间是否存在任何部分日期将使其他完整日期采用相同的格式进行比较。例如,如果存在部分日期实例 'UNK-JAN-2022',则仅对其他日期中的月份和年份值进行比较,即使它们是完整日期也是如此。同样,如果存在部分日期实例 'UNK-UNK-2022',则在所有日期中仅使用年份值进行比较。
这是一个聚集函数。如果目标采用两节形式,则为每个表单实例运行规则。
语法
findMatching2SForm(formInstance, 'variable1', value1, 'variable2', value2, ...)参数
- formInstance
-
- 如果为 null ,搜索将考虑包含两部分表单的现有实例数组。理想情况下,这应与表单平面部分内的变量一起使用。
- 如果提供了值,搜索将考虑两个区段表单的指定实例上现有表行的数组。
- 变量
-
要搜索的项变量。
注意:
允许在规则表达式的其他位置重复使用传递给此函数的变量,但是必须使用单引号将变量添加为参数。 - value(s)(值)
-
搜索值。
这些值必须是硬编码的,不能是规则变量:- 必须在字符串
'Date(dd-mmm-yyyy hh:mm:ss)'内提供日期。 - 您可以采用以下格式使用部分日期:
- <dd-mmm-yyyy hh:mm>
- <dd-mmm-yyyy hh>
- <dd-mmm-yyyy>
- <mmm-yyyy>
- <yyyy>
- 必须在字符串
'Time(hh:mm:ss)'内提供时间。 - 您可以采用以下格式使用部分时间:
- <hh:mm>
- <hh>
- 必须在字符串
返回值
如果未找到匹配项,则返回 -1;如果找到至少一个匹配实例,则返回表单实例的索引号 (
>0)。如果找到多个实例,则仅返回第一个索引。
注:
在日期中,UNK 值被视为与任何其他值匹配。例如:'Date(01-Feb-2022)' 和 'Date(20-Feb-2022)' 都被视为具有 UNK-Feb-2022 日期值的条目的匹配项。
在所有实例中搜索两节表单(例如 formInstance = null)时,函数将返回匹配项的表单实例编号。搜索特定实例(例如 formInstance = 1)时,该函数返回匹配的表行实例编号。
示例 3-67 如果存在症状为 "headache" 且脉冲速率为 "100" 的实例,则引发查询
// Given 5 two-sections form instances with items "itmSymptom" and "itmPulse" on flat part
// Fires query if any of the 5 instances contain both itmSymptom = "headache" AND itmPulse = 100.
if (findMatching2SForm(null, 'itmSymptom', "headache", 'itmPulse', 100) > 0) {
return false;
} else {
return true;
}
// Search table rows inside the 4th instance of the 2-section form
// Fires query if any rows inside the 4th form instance contain both itmSymptom = "headache" AND itmPulse = 100.
if (findMatching2SForm(4, itmSymptom, "headache", itmPulse, 100) > 0) {
return false;
} else {
return true;
}父主题:两个部分表单函数