Skip to main content

This documentation is for an older version of this product. See the latest version of this content.Opens in a new tab

ストレージ・メソッド

グローバルを使用してデータを保存する方法を理解することは非常に重要なので、次の演習に移る前に、ObjectScript.DataEntry4Store() メソッドも "一緒に" 記述します。ユーザがプロンプトに正しく応答してデータを確認した後、データを保存するオプションをユーザに表示します。次のページで示しているように、^PersonD というグローバルにデータを格納します。

一人一人に、^PersonD の添え字として使用する一意の ID 番号が必要です。これによって、複数のレコードを保存できるようになります。ObjectScript.DataEntry4 のコードの初回実行時は、^PersonD は存在しません。したがって、最初の ID が 1 になるようにする必要があります。これは $Increment() を使用すると簡単です。これにより、“通常” の配列と同様の概念構造を持つ配列、つまり人のデータベースに ^PersonD が配置されます (ただし、実際はまだツリー構造です)。

各個人のレコードは、3 項目のリスト・データから成り立ちます。別の方法として一般的なのは、各回答の間に区切り文字 (例えば、"^" や "*") を使用して、レコードを name^phone^intdob または name*phone*intdob のようにすることです。この場合、データ内で使用されていない区切り文字を選択してください。 "," や "-" は名前や電話番号で使用されるので、適切な選択ではありません。$ListBuild を使用すると、この問題を解消できます。

Store() は以下のとおりです。

VS Code - ObjectScript


Class ObjectScript.DataEntry4
{

/// store the data
ClassMethod Store(answers as %String)
{
    read !, "Store? (y/n): ", yn  // ask if user wants to store
    // only go on if user says yes
    if ((yn '= "y") && (yn '= "Y")) {
        write "...not stored."
        quit
    }

    set id = $increment(^PersonD)  // use $increment to generate a new ID
    set ^PersonD(id) = answers  // store the answers
   
    // ...remainder of this method described and completed on next page
    
}
}
FeedbackOpens in a new tab