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 ,搜索将考虑包含两部分表单的现有实例数组。理想情况下,这应与表单平面部分内的变量一起使用。
  • 如果提供了值,搜索将考虑两个区段表单的指定实例上现有表行的数组。
variable(s) 必需 要检查的项变量,使用单引号传入。
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>

返回值

表示找到匹配值的实例的索引的编号 ( >0 )。
  • 在所有实例中搜索两部分表单时(当 formInstance = null 时),该函数将返回匹配的表单实例编号。
  • 搜索特定实例(例如 formInstance = 1)时,该函数将返回匹配项的表行实例编号。
  • 如果找到多个实例,则仅返回第一个索引。
  • 如果未找到匹配项,则返回 -1

注:

在日期中,UNK 值被视为与任何其他值匹配。例如:'Date(01-Feb-2022)''Date(20-Feb-2022)' 都被视为具有 UNK-Feb-2022 日期值的条目的匹配项。

示例

示例 3-68 如果存在症状 = "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;
}