処理ルールとヘルプルーチンは、マップ内のフィールドに対して定義されます。
以下の演習を完了すると、サンプルのアプリケーションは次のモジュールで構成されます(処理ルールは別のモジュールとして定義できず、常にマップの一部になります)。
このドキュメントには次の演習が含まれています。
ユーザーが開始名を指定せずに ENTER キーを押した場合に表示するメッセージを定義します。
処理ルールを定義するには
[Development Functions]メニューでマップエディタに戻ります。
EDIT MAP01
方向キーを使用して、開始名の入力フィールドを選択します。ESC キーを押してメニューを再表示し、[ ]を選択します。
[Extended Field Editing]ウィンドウが表示されます。
+-Extended Field Editing-------------------------------------------------------+ ¦Field : #NAME-START ¦ ¦Format: A Len: 20 AL: 20 PM: ZP: N SG: N ¦ ¦Rules : 0 Rule Editing: N Array: None Array Editing: N Mode: User ¦ ¦AD: ILMFHT'_' CD: CV: DY: N HE: N ¦ ¦EM: ¦ +------------------------------------------------------------------------------+ |
TAB キーを使用して、[Rule Editing]フィールドに移動します。このフィールドで「"Y"」と入力するか、PF2 キーを押します。
次の画面が表示されます。
+-Current Field: #NAME-START---------------------------------------------------+ ¦ R U L E E D I T I N G (Esc = Quit) ¦ ¦Rules Fields ¦ +------------------------------------------------------------------------------+ End XXXXXXXXXXXXXXXXXXXX Create or modify a rule for this field |
[
]を選択してから[ ]を選択します。空のエディタウィンドウが表示されます。
次の処理ルールを入力します(空行を挿入するには、行コマンド I
を使用します)。
IF & = ' ' THEN REINPUT 'Please enter a starting name.' MARK *& END-IF
処理ルール内のアンパサンド(&)は、フィールド名にダイナミックに置き換えられます。この場合は、#NAME-START
に置き換えられます。#NAME-START
が空白の場合は、REINPUT
ステートメントで定義されたメッセージが表示されます。
MARK
は、REINPUT
ステートメントのオプションです。構文は MARK *fieldname
です。MARK
は、REINPUT
ステートメントの実行時にカーソルが置かれるフィールドを指定します。この場合は、カーソルが[#NAME-START
]フィールドに置かれます。
コマンド行で次のように入力します。
P=1
ランクにより、異なるフィールドに対するルールの処理順序が定義されます。ランク 1 のルールはすべて最初に処理され、その後にランク 2 などが続きます。
EDIT: S 02- ---------------Columns 001 074 Rank: NEW RULE Rule: Typ: R Mode: S Cmnd=> p=1 Scroll==> CSR ****** ******************************* top of data ***************************** 000001 IF & = ' ' THEN 000002 REINPUT 'PLEASE ENTER A STARTING NAME.' 000003 MARK *& 000004 END-IF ****** ***************************** bottom of data **************************** PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12-- P U End P* Rfind Rchng Up Down Right Left Home |
ENTER キーを押して、入力内容を保存します。
次の画面が再表示されます。ランク 1 の新しいルールが[
]の下に表示されます。このルールを選択すると、コードの最初の行が画面下部に表示されます。+-Current Field: #NAME-START---------------------------------------------------+ ¦ R U L E E D I T I N G (Esc = Quit) ¦ ¦Rules Fields ¦ +--------+---------------------------------------------------------------------+ ¦<CREATE>¦ ¦ 1¦ End XXXXXXXXXXXXXXXXXXXX +--------+ 0010 IF & = ' ' THEN 0020 REINPUT 'PLEASE ENTER A STARTING NAME.' 0030 MARK *& Create or modify a rule for this field |
[Natural Map Editor]メニューが再表示されるまで、ESC キーを繰り返し押します。
マップをテストします。
結果の出力で、任意の開始名を入力して ENTER キーを押します。
出力画面が閉じます。
マップをもう一度テストします。名前を入力せずに、ENTER キーを押します。
処理ルールで定義したメッセージが、マップに表示されます。
出力画面を終了するには、開始名の入力を求めるフィールドに「.」(ピリオド)を入力し、ENTER キーを押します。
マップを Stow します。
ヘルプルーチンは、開始名の入力フィールドにカーソルが置かれているときにユーザーがヘルプキーを押すと表示されます。
まず、ヘルプルーチンを定義してから、それを特定のフィールドに関連付けます。
ヘルプルーチンを作成するには
[Natural Map Editor]メニューから、[
]を選択します。Natural のメインメニューが再表示され、[Direct Command]ウィンドウで入力を求められます。
以下のいずれかを入力します。
EDIT PROGRAM
E P
空のエディタが表示されます。
次のように入力します。
WRITE 'Type the name of an employee' END
プログラムエディタのコマンド行で次のように入力して、プログラムをヘルプルーチンに変更します。
SET TYPE H
"H" はヘルプルーチンを示します。
ヘルプルーチンを格納し「HLP01
」という名前にします。
STOW HLP01
ヘルプルーチンをマップ上のフィールドに関連付けるには
ヘルプルーチンを入力した画面のコマンド行で次のように入力して、マップエディタに戻ります。
E MAP01
開始名のデータフィールドを選択し、ESC キーを押して[Natural Map Editor]メニューを表示し、[ ]を選択します。
フィールドに対する[Extended Field Editing]ウィンドウが表示されます。
TAB キーを使用して、[HE]フィールドに移動します。このフィールドで「"Y"」と入力するか、PF2 キーを押します。
ヘルプルーチン名の入力を求めるウィンドウが表示されます。
[HE]フィールドで「"'HLP01'"」(一重引用符も含めます)と入力します。
これは、ヘルプルーチンの保存に使用した名前です。
XXXXXXXXXX TT:TT:TT Start XXXXXXXXXXXXXXXXXXXX End XXXXXXXXXXXXXXXXXXXX +-HE-----------------------------------------------------------------+ ¦HE: 'HLP01' ¦ ¦ ¦ +--------------------------------------------------------------------+ +-Extended Field Editing-------------------------------------------------------+ ¦Field : #NAME-START ¦ ¦Format: A Len: 20 AL: 20 PM: ZP: N SG: N ¦ ¦Rules : 1 Rule Editing: Y Array: None Array Editing: N Mode: User ¦ ¦AD: MILFHT'_' CD: CV: DY: N HE: Y ¦ ¦EM: ¦ +------------------------------------------------------------------------------+ Helproutine and Parameters |
ENTER キーを 2 回押して、変更内容を保存し、すべてのウィンドウを閉じます。
マップをテストします。
結果の出力で、開始名の入力フィールドに疑問符(?)を入力します。
定義したヘルプテキストが表示されます。
ENTER キーを押して、マップに戻ります。
マップを終了するには、開始名の入力を求めるフィールドに「.」(ピリオド)を入力し、ENTER キーを押します。
マップを Stow します。
[Natural Map Editor]メニューから、[
]を選択します。Natural のメインメニューが再表示され、[Direct Command]ウィンドウで入力を求められます。
次の演習に進みます。ローカルデータエリア.