findMatching2SFormWithinRange( )

検索キーとして指定された項目値と一致する、行IDで識別される2セクション・フォームの繰返しセクションのインスタンスを検索します。検索は、検索キーまたは日付範囲に基づいて行うことができます。

  • ドロップダウン、ラジオ・ボタンまたはチェック・ボックス値を関数パラメータまたはターゲットとして使用することはできません。
  • 最初の2つのパラメータは、常に日付範囲である必要があります。その後、追加の検索キーを指定できます。
  • この関数は、日付がnullであるエントリも考慮します。
    繰返しフォーム・インスタンスの開始日または終了日がnullの場合、日付範囲重複チェックを正常に実行するために日付が想定されます。
    • 開始日がnullの場合、0001年1月1日とみなされます。
    • 終了日がnullの場合、3099年12月1日とみなされます。
  • 変数が日付の一部を保持するように設計されている場合は、そのパラメータの値を同じ日付形式で指定します。日付の一部を次の書式で使用できます。
    • <dd- mmm- yyyy hh:mm>
    • <dd- mmm- yyyy hh>
    • <dd- mmm- yyyy>
    • <mmm- yyyy>
    • <yyyy>

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

構文

findMatching2SFormWithinRange('startDateVariable',startDateValue, 'endDateVariable', endDateValue, 'variable1', value1, 'variable2', value2, ...)

パラメータ

注意:

ルール式の他の場所でこの関数に渡された変数を再利用できますが、一重引用符を使用して変数をパラメータとして追加する必要があります。
パラメータ 必須/オプション 説明
startDateVariable 必須 評価する日付範囲の開始日として使用される、繰返しフォームの日付アイテム。
startDateValue 必須 日付範囲の開始日の日付値。これは文字列形式で指定する必要があり、ハードコードされている必要があり、ルール変数にはできません。
  • 日付は、文字列'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)'内に指定する必要があります。
  • 時間の一部は、次の形式で使用できます。
    • <h:mm>
    • <hh>
endDateVariable 必須 評価する日付範囲の終了日として使用される、繰返しフォームの日付アイテム。
endDateValue 必須 日付範囲の終了日の日付値。

startDateValueパラメータと同じ要件を検討してください。

variable(s) オプション 検索する品目変数。一重引用符を使用して渡されます。
value(s) オプション 指定された変数の値を検索します。これらはハードコードされている必要があり、ルール変数にはできません。

戻り値

一致する値が見つかったインスタンスのインデックスを表す数値(>0)。
  • 複数のインスタンスが見つかった場合、最初の索引のみが返されます。
  • 一致が見つからない場合は -1を返します。

ノート:

日付では、UNK値は他の値と一致するとみなされます。たとえば、'Date(01-Feb-2022)''Date(20-Feb-2022)'は両方とも、UNK-Feb-2022日付値を持つエントリの照合とみなされます。

例)

例3-69 Date変数が指定された範囲内に存在し、一致する他の条件が存在する場合は、問合せを呼び出します。

// Given 5 repeating form instances with items "onsetStart", "onsetEnd" and "itmSymptom"
//Raises query if symptom = "headache" AND onSet date is between Jan 1 2020 and March 1 2020 
if (findMatching2SFormWithinRange('onsetStart', 'Date(01-JAN-2020)', 'onsetEnd', 'Date(01-MAR-2020)', 'itmSymptom', "headache") > 0) {
  return false;
} else {
  return true;
}
 
// Fires query if any of the 5 instances contain onset dates between Jan 1 2020 - March 1 2020 AND itmSymptom = "headache"



//if rule variable (datetimeVar) is datetime componentif (findMatching2SFormWithinRange(2, 'onsetStart', 'Date(01-JAN-2020)', 'onsetEnd', 'Date(01-MAR-2020)', 'datetimeVar', 'Date(10-Jun-2010 11:12:15)') > 0) {  
return false;
} else {  
return true;
}    

//if rule variable (timeVar) is time componentif (findMatching2SFormWithinRange(2, 'onsetStart', 'Date(01-JAN-2020)', 'onsetEnd', 'Date(01-MAR-2020)', 'timeVar', 'Time(11:12:15)') > 0) {
return false;
} else {  
return true;
}