FindRFInstance( )

查找包含使用提供的运算符匹配搜索值的值的重复表单实例。

此函数类似于 FindMatchingRepeatingForm( ) 。但是,它允许规则设计器指定匹配操作数(=><>=<=)。
  • 此功能不支持选择问题,例如下拉列表、单选按钮或复选框。
  • 定制函数中的值应为 JavaScript 变量或直接值。请勿直接在定制函数表达式中使用操作数变量。
  • 如果要将其他操作数/变量用于值,则必须先将其分配给 JavaScript 变量,然后在函数表达式中使用。

这是聚集函数。如果目标位于重复表单中,则为每个表单实例运行规则。

语法

FindRFInstance (DateMask, 'variable1', 'compareOperator1', value1, 'variable2', ...)

参数

注:

允许在规则表达式的其他位置重用传递到此函数的变量,但是您必须使用单引号将变量添加为参数。
参数 必填/可选 说明
DateMask 可选 用于指定如何处理部分日期的标志:
  • 如果为 null,则在执行比较时将忽略部分日期。
  • 如果提供了 value (以字符串格式),则将部分日期中的 UNK 组件替换为指定的值。

    例如:输入 '10-Apr' 会用 '10' 替换 Day (DD) 组件的每 UNK 值,并使用 'Apr' 替换 Month (MMM) 组件的每 UNK 值。

注:仅对日期要素使用掩码,而不对时间要素使用掩码。时间部分中的任何缺少值都被视为 00。

variable(s) 必需 要搜索的项变量,使用单引号传入。
compareOperator 必需
用于比较提供的变量和值的运算符:
  • =
  • >
  • <
  • >=
  • <=
value 必需 用于将变量作为字符串进行比较的值。
  • 日期值可以作为 Javascript 日期变量提供,也可以作为以下格式的字符串提供:
    • 'Date(dd-mmm-yyyy)'
    • 'Date(dd-mmm-yyyy hh:mm:ss)'
    • 'dd-mmm-yyyy'
    • 'dd-mmm-yyyy hh:mm:ss'
  • 时间值可作为 'Time(hh:mm:ss)' 提供

返回值

表示找到匹配值的表单实例的索引的编号 ( >0 )。
  • 如果找到多个实例,则仅返回第一个索引。
  • 如果未找到匹配项,则返回 -1

使用提示

  • 使用 'DD-MON' 格式作为 DateMask 来替换部分日期值中的未知 (UNK) 值。例如,如果掩码为 '01-MAR'
    部分日期值 屏蔽日期 注释
    'UNK-FEB-2020' '01-FEB-2020' 使用掩码的 day 部分使计算生效。
    'UNK-UNK-2020' '01-MAR-2020' 使用掩码的 daymonth 部分均可进行计算。

示例

示例 3-51 如果某个脉冲实例大于给定值,则引发查询

// Raise a query if there is an instance of pulse > 100
return (FindRFInstance(null, 'pulseVal','>', 100) > 0)?false:true;        //query is raised when false is returned
 

示例 3-52 如果 Date 变量等于或晚于给定日期值,则引发查询

// Raise a query if there's an instance where onDate is >= 10-Jun-2010
//(onDate is partial UNK-UNK-YYYY) 
return (FindRFInstance('10-Jun', 'onDate', '>=', '10-Jun-2010') > 0)?false:true;

示例 3-53 如果日期时间变量在给定日期时间值上或之后,则引发查询

// Raise a query if there's an instance where onDateTime is >= 10-Jun-2010 11:12:15
//(onDateTime is partial DD-MMM-YYYY UNK:UNK:UNK)
return (FindRFInstance('10-Jun', 'onDateTime' , '>=', '10-Jun-2010 11:12:15') > 0)?false:true; 

//or
return (FindRFInstance('10-Jun', 'onDateTime' , '>=', 'Date(10-Jun-2010 11:12:15)') > 0)?false:true;

示例 3-54 如果 Time 变量在给定时间值上或之后,则引发查询

// Raise a query if there's an instance where onTime is >= 11:12:15 
//(onTime is partial HH:UNK:UNK)
return (FindRFInstance(null, 'onTime' ,'>=', 'Time(11:12:15)') > 0)?false:true;