findMatching2SForm( )
行IDで識別される、検索キーとして指定されたアイテム値に一致する2セクション フォームの繰返しセクション インスタンスを検索します。この関数は部分日付をサポートしています
この関数の場合:
- ドロップダウン、ラジオ・ボタンおよびチェック・ボックスの値は、関数パラメータまたはターゲットとしてサポートされていません。
- 変数が部分的な日付を保持するように設計されている場合は、そのパラメータの値を同じ部分的な日付書式で指定します。日付の一部を次の書式で使用できます。
- <dd-mmm-yyyy hh:mm>
- <dd-mmm-yyyy hh>
- <dd-mmm-yyyy>
- <yyyy-mmm>
- <yyyy>
注意:
インスタンスに部分的な日付がある場合は、比較のために他の完全な日付が同じ書式で取得されます。たとえば、部分的な日付インスタンス'UNK-JAN-2022
'がある場合、完全な日付であっても、他の日付の月および年の値のみが比較のために取得されます。同様に、部分的な日付インスタンス'UNK-UNK-2022
'がある場合、すべての日付で比較に使用されるのは年の値のみです。
これは集計関数です。ターゲットが2セクション フォームにある場合は、各フォーム インスタンスに対してルールが実行されます。
構文
findMatching2SForm(formInstance, 'variable1', value1, 'variable2', value2, ...)
パラメータ
- formInstance
-
- nullの場合、検索では2セクション・フォームの既存のインスタンスの配列が考慮されます。これは、フォームのフラット・セクション内の変数で使用するのが理想的です。
- 値を指定した場合、検索では、2セクション・フォームの指定インスタンスにある既存の表の行の配列が考慮されます。
- 変数
-
検索するアイテム変数。
注意:
この関数に渡された変数は、ルール式内の他の場所でも再使用できますが、一重引用符を使用して変数をパラメータとして追加する必要があります。 - 値
-
値を検索します。
次の値はハードコードする必要があり、ルール変数にはできません。- 日付は、文字列
'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>
- 日付は、文字列
戻り値
一致するインスタンスが1つ以上見つからない場合は-1を返し、一致するインスタンスが1つ以上見つかった場合はフォーム・インスタンスの索引番号(
>0
)を返します。複数のインスタンスが見つかった場合は、最初の索引のみが返されます。
注意:
日付では、UNK
値が他の値と一致するとみなされます。たとえば、'Date(01-Feb-2022)'
と'Date(20-Feb-2022)'
は、両方ともUNK-Feb-2022
日付値を持つエントリの一致とみなされます。
すべてのインスタンスで2セクション・フォーム(formInstance = null
など)を検索すると、一致するフォーム・インスタンス番号が返されます。特定のインスタンス(たとえば、formInstance = 1
)を検索すると、一致する表の行インスタンス番号が返されます。
例3-67 Symptom = "headache"およびパルス率= "100"のインスタンスが存在する場合の問合せの呼出し
// Given 5 two-sections form instances with items "itmSymptom" and "itmPulse" on flat part
// Fires query if any of the 5 instances contain both itmSymptom = "headache" AND itmPulse = 100.
if (findMatching2SForm(null, 'itmSymptom', "headache", 'itmPulse', 100) > 0) {
return false;
} else {
return true;
}
// Search table rows inside the 4th instance of the 2-section form
// Fires query if any rows inside the 4th form instance contain both itmSymptom = "headache" AND itmPulse = 100.
if (findMatching2SForm(4, itmSymptom, "headache", itmPulse, 100) > 0) {
return false;
} else {
return true;
}
親トピック: 2セクション・フォーム関数