findMatching2SFormWithinRange( )
行IDで識別される、検索キーとして指定されたアイテム値に一致する2セクション フォームの繰返しセクションのインスタンスを検索します。検索は、検索キーまたは日付範囲に基づいて行うことができます。
この関数の場合:
- ドロップダウン、ラジオ・ボタンまたはチェックボックス値は、ファンクション・パラメータまたはターゲットとして使用できません。
- 最初の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>
ルールは、日付が重複する2セクション・フォームで繰返しセクション・インスタンスの索引を返します。
注意:
この関数は、日付がnullのエントリも考慮します。これは集計関数です。ルールは、ターゲットが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>
- <yyyy-mmm>
- <yyyy>
- 時間は文字列
'Time(hh:mm:ss)'
内に指定する必要があります。 - 時間の一部を次の書式で使用できます。
- <hh:mm>
- <hh>
- 日付は、文字列
- endDateVariable
-
必須。日付アイテム。
- DateValue
-
必須。文字列の形式の日付値。
startDateValueパラメータと同じ要件を考慮してください。
- 変数
-
オプション:検索するアイテム変数。
- 値
-
オプション:検索値。これらはハードコードする必要があり、ルール変数にはできません。
戻り値
一致するものが見つからない場合は -1を返し、一致するインスタンスが少なくとも1つ見つかった場合は2セクション形式の繰り返しセクションのインスタンスのインデックス番号(>0)を返します。複数のインスタンスが見つかった場合は、最初の索引のみが返されます。
注意:
日付では、UNK
値が他の値と一致するとみなされます。たとえば、'Date(01-Feb-2022)'
と'Date(20-Feb-2022)'
は、両方ともUNK-Feb-2022
日付値を持つエントリの一致とみなされます。
例3-68 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;
}
親トピック: 2セクション・フォーム関数