FindMatchingRepeatingFormWithinRange( )

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

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

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

構文

FindMatchingRepeatingFormWithinRange('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>
    • <yyyy-mmm>
    • <yyyy>
  • 時間は文字列'Time(hh:mm:ss)'内に指定する必要があります。
  • 時間の一部を次の書式で使用できます。
    • <hh:mm>
    • <hh>
endDateVariable 必須 評価する日付範囲の終了日として使用される、繰返しフォームの日付アイテム。
endDateValue 必須 日付範囲の終了日に対する日付値。

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

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

戻り値

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

注意:

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

例)

例3-50 a) onset dateが2020年1月1日から2020年3月1日までの間に存在し、b)symptom = "headache"であるインスタンスが存在する場合は、問合せを実行します。

// Given 5 repeating form instances with items "onsetStart", "onsetEnd" and "itmSymptom":
if (FindMatchingRepeatingFormWithinRange('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"