Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

$Order ループ

generated description: personi

前ページの例では、$Order を繰り返し使用して、ツリーを検索しました。ループを使用するとより簡単に取得でき、ツリーの他のレベルの検索もできます。以下は、ObjectScript で頻繁に使用するループのコードです。

最初に、変数 ln を初期化して空文字列にします。その後 For ループを開始します。Set 文では、$Order を使用して ^PersonI("Name") ノードの最初の子、つまり姓の添え字値を生成します。次に、Quit コマンドは空文字と等しい姓を検索し、ループを終了させるかどうかを判断します。最後に、値に対してどのような処理を実行するかを指定します。ここでは値を表示します。その後、ループは同じ処理を繰り返し、次の姓を検索します。電話番号は姓とは兄弟でないため、姓の “隣に” 電話番号の添え字が存在してもその値は取得しません。

$OrderSet 文は、典型的なプログラミング・コード Set i=i+1 と類似しています。このコードは、変数値の現在の値を使用して新規の値を生成します。

SAMPLES>d ^simpleloop

Agee
Jones
Swoboda
SAMPLES>

以下は、simpleloop.mac コードです。

simpleloop ; loop through last names
    set ln = ""
    for {
        set ln = $order( ^PersonI("Name", ln) )
        quit:(ln = "")
        write !, ln
        }
FeedbackOpens in a new tab