FindRFInstance( )

指定された演算子を使用して、検索値に一致する値を含む繰返しフォーム・インスタンスを検索します。

この関数は、FindMatchingRepeatingForm( )と似ています。ただし、ルール・デザイナでは、一致するオペランド(=><>=<=)を指定できます。

注意:

これは集計関数です。ターゲットが繰返しフォームにある場合は、各フォーム インスタンスに対してルールが実行されます。

構文

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

パラメータ

DateMask

部分的な日付の処理方法を指定するフラグ。

  • null.比較を行う際に日付の一部を無視します。
  • 。部分日付のUNKコンポーネントを、指定した値に置き換えます。たとえば、'10-Apr'と入力すると、Day (DD)コンポーネントのUNK値ごとに'10'に置き換わり、Month (MMM)コンポーネントのUNK値ごとに'Apr'に置き換えられます。

    注意:

    マスクは日付要素にのみ使用し、時間要素には使用しないでください。時間部分の欠落値は00とみなされます。
変数
検索する項目変数。

ノート:

この関数に渡された変数は、ルール式内の他の場所でも再使用できますが、一重引用符を使用して変数をパラメータとして追加する必要があります。
compareOperator

比較に使用する演算子: =><>=<=

変数を文字列として比較する値。
  • 日付値は、Javascript Date変数として、または次の形式の文字列として指定できます。
    • '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つ以上見つからない場合は-1を返し、一致するインスタンスが1つ以上見つかった場合はフォーム・インスタンスの索引番号(>0)を返します。複数のインスタンスが見つかった場合は、最初の索引のみが返されます。

使用方法のヒント

  • この関数は、ドロップダウン、ラジオ・ボタン、チェック・ボックスなどの選択肢の質問をサポートしていません。
  • カスタム関数の値は、JavaScript変数または直接値である必要があります。カスタム関数式でオペランド変数を直接使用しないでください。
  • 他のオペランド/変数を値に使用する場合は、最初にJavaScript変数に割り当ててから、関数式で使用する必要があります。
  • 部分的な日付値で不明な(UNK)値を置換するには、'DD-MON'書式をDateMaskとして使用します。たとえば、マスクが'01-MAR'の場合:
    日付値の一部 マスク日 ノート
    'UNK-FEB-2020' '01-FEB-2020' マスクの day部分を使用した計算に有効になります。
    'UNK-UNK-2020' '01-MAR-2020' マスクのの両方を使用する計算に有効になります。

例3-50指定した値より大きいパルスのインスタンスがある場合の問合せの呼出し

// 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-51日付変数が特定の日付値以降である場合に問合せを発生させる

// 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-52 Datetime変数が特定の日時値以降の場合に問合せを呼出し

// 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-53 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;