findMatching2SForm( )

検索キーとして指定されたアイテム値と一致する、行IDで識別される2セクション・フォームの繰返しセクション・インスタンスを検索します。この関数は部分日付をサポートします。

  • ドロップダウン、ラジオ・ボタンおよびチェック・ボックスの値は、関数パラメータまたはターゲットとしてサポートされていません。
  • 変数が日付の一部を保持するように設計されている場合は、そのパラメータの値を同じ日付形式で指定します。日付の一部を次の書式で使用できます。
    • <dd- mmm- yyyy hh:mm>
    • <dd- mmm- yyyy hh>
    • <dd- mmm- yyyy>
    • <mmm- yyyy>
    • <yyyy>

    ノート:

    インスタンス間で日付の一部がある場合、他の完全な日付は比較のために同じ形式で取得されます。たとえば、日付インスタンスUNK-JAN-2022の一部がある場合、完全な日付であっても、他の日付の月と年の値のみが比較のために取得されます。同様に、部分的な日付インスタンス'UNK-UNK-2022'がある場合、すべての日付の比較には年の値のみが使用されます。

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

構文

findMatching2SForm(formInstance, 'variable1', value1, 'variable2', value2, ...)

パラメータ

ノート:

ルール式の他の場所でこの関数に渡された変数を再利用できますが、一重引用符を使用して変数をパラメータとして追加する必要があります。
パラメータ 必須/オプション 説明
formInstance オプション 検索が実行されるフォーム インスタンスを示します。
  • nullの場合、検索では2つのセクション・フォームの既存のインスタンスの配列が考慮されます。これは、フォームのフラット・セクション内の変数とともに使用することをお薦めします。
  • 値が指定されている場合、検索では、2項フォームの指定されたインスタンスにある既存のテーブル行の配列が考慮されます。
variable(s) 必須 チェックする項目変数。一重引用符を使用して渡されます。
value(s) 必須 検索する特定の変数の値。
これらの値はハードコードされ、ルール変数にはできません。
  • 日付は、文字列'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>

戻り値

一致する値が見つかったインスタンスのインデックスを表す数値(>0)。
  • すべてのインスタンスで2セクション・フォームを検索する場合(formInstance = nullの場合)、この関数は一致のフォーム・インスタンス番号を返します。
  • 特定のインスタンス(formInstance = 1など)を検索すると、この関数は一致の表行インスタンス番号を返します。
  • 複数のインスタンスが見つかった場合、最初の索引のみが返されます。
  • 一致が見つからない場合は -1を返します。

注意:

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

例)

例3-68症状= "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;
}