find2SFormInstance( )

以两节形式查找重复部分的实例,其中包含的值与使用提供的运算符的搜索值匹配。

此函数与 findMatching2SForm( ) 类似。但是,它允许规则设计器指定匹配操作数(=><>=<=)。

注意:

这是一个聚集函数。如果目标位于两部分形式的重复部分中,则为每个实例运行规则。

语法

find2SFormInstance(formInstance, DateMask, 'variable1', 'compareOperator1', value1, 'variable2', ...)

参数

formInstance
  • 如果 formInstancenull 且变量位于平面区域中,则会搜索所有实例的平面部分。
  • 如果 formInstancenull 且变量位于表行中,则搜索所有实例中的所有表行。
  • 如果提供 formInstance 值,则搜索指定实例的表行。
DateMask

用于指定如何处理部分日期的标志。

  • null。进行比较时忽略部分日期。
  • value 。将部分日期中的 UNK 组件替换为指定值。例如:输入 '10-Apr' 可替换为“天”(DD) 组件的每 UNK'10' 以及“月”(MMM) 组件的每 UNK'Apr'

    注意:

    仅对日期元素使用掩码,不将其用于时间元素。时间部分中缺少的任何值都视为 00。
变量
要搜索的项变量。

注:

允许在规则表达式的其他位置重复使用传递给此函数的变量,但是必须使用单引号将变量添加为参数。
compareOperator

用于比较的运算符:=><>=<=

将变量作为字符串进行比较的值。
  • 日期值可作为 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)' 提供

返回值

如果未找到匹配项,则返回 -1;如果找到至少一个匹配实例,则返回重复部分实例的索引号 (>0)。如果找到多个实例,则仅返回第一个索引。

使用提示

  • 定制函数中的值应为 JavaScript 变量或直接值。请勿直接在定制函数表达式中使用操作数变量。
  • 如果要将其他操作数/变量用于值,则必须首先将其分配给 JavaScript 变量,然后在函数表达式中使用。
  • 使用 'DD-MON' 格式作为 DateMask 来替代部分日期值中的未知 (UNK) 值。例如,如果掩码为 '01-MAR'
    部分日期值 屏蔽日期 附注
    'UNK-FEB-2020' '01-FEB-2020' 使用掩码的 day 部分进行有效计算。
    'UNK-UNK-2020' '01-MAR-2020' 可使用掩码的 daymonth 部分进行有效计算。

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

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

示例 3-70 如果给定日期值当天或之后存在日期变量的实例,则引发查询

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


//Example using operand variable values
//Raise a query if there's an instance where onDate is on or after the enddt
dtval=enddt;
return (Find2SFormInstance(null, '10-Jun', 'onDate', '>=', dtval) > 0)?false:true;

示例 3-71 如果给定日期时间值当天或之后存在日期时间变量的实例,则引发查询

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

示例 3-72 如果给定时间值当天或之后存在时间变量的实例,则引发查询

return (find2SFormInstance(2, null, 'onTime' ,'>=', 'Time(11:12:15)') > 0)?false:true;