find2SFormInstance( )

指定された演算子を使用して検索値と一致する値を含む2セクション形式の繰返しセクションのインスタンスを検索します。

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

注意:

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

構文

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

パラメータ

formInstance
  • formInstancenullで、変数がフラット・セクションにある場合、すべてのインスタンスのフラット部分が検索されます。
  • formInstancenullで、変数が表の行にある場合、検索はすべてのインスタンスのすべての表の行にわたって行われます。
  • formInstance値が指定されている場合、検索は指定されたインスタンスの表の行にまたがります。
DateMask

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

  • null。比較の実行時に日付の一部を無視します。
  • value。部分的な日付のUNKコンポーネントを、指定した値で置き換えます。たとえば、'10-Apr'と入力すると、'10'がDay (DD)コンポーネントのUNK値ごとに、'Apr'がMonth (MMM)コンポーネントのUNK値ごとに置換されます。

    注意:

    日付要素にのみマスクを使用し、時間要素には使用しません。時間部分の欠落値は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つ見つかった場合は繰り返されるセクションインスタンスのインデックス番号(>0)を返します。複数のインスタンスが見つかった場合は、最初の索引のみが返されます。

使用上のヒント

  • カスタム関数の値は、JavaScript変数または直接値である必要があります。カスタム関数式でオペランド変数を直接使用しないでください。
  • 他のオペランド/変数を値に使用する場合は、最初にJavaScript変数に割り当ててから、関数式で使用する必要があります。
  • 'DD-MON'形式をDateMaskとして使用して、部分的な日付値で不明な(UNK)値を置換します。たとえば、マスクが'01-MAR'の場合:
    部分日付値 マスク日 ノート
    'UNK-FEB-2020' '01-FEB-2020' マスクの部分を使用して計算に有効です。
    'UNK-UNK-2020' '01-MAR-2020' マスクの部分と部分の両方を使用して計算に有効です。

例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指定された時間値以降にTime変数のインスタンスがある場合の問合せの呼出し

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