-
BitMap-ID インデックスの $BitCount を使用してレコード総数を示すメッセージを表示する CurrentCount() メソッドを記述します。このためには、$Order の 3 つの引数形式も便利です。この新しいメソッドを Main() の最初に呼び出します。
-
Main() および GetInput() に、電話番号全体またはエリア・コードのみ (例: 617-621-0600 または 617-) を処理するコードを追加します。
-
電話番号 (またはエリア・コードのみ) を引数として取って、一致する値を表示する Phone() メソッドを記述します。電話番号は一意なので、3 つの引数形式の $Order は別の機会にも使用できます。
-
Main() および GetInput() に、名前の全体あるいは一部 (Smith、Smith,John、Smith,J、Sm,John、Sm,J など) を処理するコードを追加します。ユーザが大文字と小文字を気にせずに名前を入力できるようにするため、$ZConvert を使用して、名前の全体または一部を最初の文字が大文字になるようにフォーマットします。
-
ユーザが入力した名前の全体または一部を引数として取る Name() メソッドを記述します。一致する値をすべて表示するため、入れ子にした $Order ループを 3 つ作成します。
-
追加の検索オプションを使用して Help() を更新します。
-
配列を使用して一致する値を追跡し、表示された一致番号に連結する ID 番号を取得します。この配列を使用するように、3 つすべてのメソッド (DOB()、Phone()、Name()) を変更します。
-
Select() メソッドを記述し、一致する値をユーザが選択してその ID 番号を返せるようにします。もう一度 DOB()、Phone()、および Name() を変更して、それぞれが Select() を呼び出すようにします。
-
選択された ID 番号を新しい 2 番目の引数として返すように DOB()、Phone()、および Name() のシグニチャを変更し、DOB()、Phone()、および Name() が参照によって id を返すように Main() を変更します。
-
ID 番号を引数として取る TakeAction() メソッドを記述します。この演習では単に、選択されたレコードを ^PersonD から取得し、ObjectScript.DataEntry4 から Display() を呼び出してレコードを表示します。TakeAction() を呼び出すように Main() を変更します。