処理ルールとヘルプルーチンは、マップ内のフィールドに対して定義されます。
以下の演習を完了すると、サンプルのアプリケーションは次のモジュールで構成されます(処理ルールは別のモジュールとして定義できず、常にマップの一部になります)。
このドキュメントには次の演習が含まれています。
ユーザーが開始名を指定せずに Enter キーを押した場合に表示するメッセージを定義します。
処理ルールを定義するには
[Development Functions]メニューで次のように入力して、マップエディタに戻ります。
Code .. E Type .. _ Name .. MAP01___________________________ |
開始名の入力フィールドの最初の位置から開始して、次のように入力します。
.P
例:
Start .PXXXXXXXXXXXXXXXXXXX End :XXXXXXXXXXXXXXXXXXXX |
Enter キーを押します。
選択したフィールドについて次の画面が表示されます。
Variables used in current map Mod #NAME-START(A20) U #NAME-END(A20) U Rule ________________________________ Field #NAME-START > > + Rank 0 S L 1 Struct Mode ALL ....+....10...+....+....+....30...+....+....+....50...+....+....+....70. 0010 0020 0030 0040 0050 0060 0070 0080 0090 0100 Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help Mset Exit Test -- - + Full Sc= Let |
次の処理ルールを入力します。
IF & = ' ' THEN REINPUT 'Please enter a starting name.' MARK *& END-IF
処理ルール内のアンパサンド(&)は、フィールド名にダイナミックに置き換えられます。 この場合は、#NAME-START
に置き換えられます。 #NAME-START
が空白の場合は、REINPUT
ステートメントで定義されたメッセージが表示されます。
MARK
は REINPUT
ステートメントのオプションです。 構文は MARK *fieldname
です。 MARK
は、REINPUT
ステートメントの実行時にカーソルが置かれるフィールドを指定します。 この場合は、カーソルが #NAME-START
フィールドに置かれます。
[Rank]フィールドに「1」と入力します。
Rule ________________________________ Field #NAME-START > > + Rank 1 S 2 L 1 Struct Mode ALL ....+....10...+....+....+....30...+....+....+....50...+....+....+....70. 0010 IF & = ' ' THEN 0020 REINPUT 'Please enter a starting name.' 0030 MARK *& 0040 END-IF 0050 |
ランクにより、異なるフィールドに対するルールの処理順序が定義されます。 ランク 1 のルールはすべて最初に処理され、その後にランク 2 などが続きます。
Enter キーを押して、入力内容を保存します。 次に PF3 キーを押してマップに戻ります。
注意:
処理ルールを再表示する場合は、コマンド .P1
(ランク 1 のルールを表示)または .P*
(このフィールドに定義されたすべてのルールのリストを表示)を使用する必要があります。
マップをテストします。
結果の出力で、任意の開始名を入力して Enter キーを押します。
出力画面が閉じます。
マップをもう一度テストします。 名前を入力せずに、Enter キーを押します。
処理ルールで定義したメッセージが、マップに表示されます。
出力画面を終了するには、開始名の入力を求めるフィールドに「.」(ピリオド)を入力し、Enter キーを押します。
マップを Stow します(PF3 を押して[Edit Map]メニューに戻り、[Code]フィールドで「W」と入力します)。
ヘルプルーチンは、開始名の入力フィールドにカーソルが置かれているときにユーザーがヘルプキーを押すと表示されます。
まず、ヘルプルーチンを定義してから、それを特定のフィールドに関連付けます。
ヘルプルーチンを作成するには
[Edit Map]メニューで PF3 キーを押して、[Development Functions]メニューに戻ります。
[Development Functions]メニューの下部で、次の情報を入力して Enter キーを押します。
Code .. C Type .. H Name .. HLP01___________________________ |
"C" は[Create Object]機能、"H" はオブジェクトタイプのヘルプルーチン、および "HLP01" は新しいヘルプルーチンの名前を表します。
空のエディタが表示されます。
次のように入力します。
WRITE 'Type the name of an employee' END
ヘルプルーチンを格納し HLP01
ます。
ヘルプルーチンをマップ上のフィールドに関連付けるには
ヘルプルーチンを入力した画面のコマンド行で次のように入力して、マップエディタに戻ります。
E MAP01
開始名のデータフィールドの最初の位置から開始して、次のように入力し、Enter キーを押します。
.E
または:
データフィールド内の任意の場所にカーソルを置き、PF5 を押します。
フィールドの拡張フィールド編集セクションが表示されます。
[HE]フィールドで「'HLP01'」(一重引用符も含めます)と入力します。
これは、ヘルプルーチンの保存に使用した名前です。
Fld #NAME-START Fmt A20 ------------------------------------------------------------------------------- AD= MIT'_'____ ZP= SG= HE= 'HLP01'______________ Rls 2 AL= _____ CD= __ CV= ________________________________ Mod User PM= __ DF= DY= ______________________________ EM= __________________________ SB= ________________________________ |
拡張フィールド編集セクションを終了するには、PF3 を押します。
マップをテストします。
結果の出力で、開始名の入力フィールドに疑問符(?)を入力し、Enter キーを押します。
定義したヘルプテキストが表示されます。
Enter キーを押して、マップに戻ります。
マップを終了するには、開始名の入力を求めるフィールドに「.」(ピリオド)を入力し、Enter キーを押します。
マップを Stow します(PF3 を押して[Edit Map]メニューに戻り、[Code]フィールドで「W」と入力します)。
PF3 キーを押して[Development Functions]メニューに戻ります。
次の演習「ローカルデータエリア」に進みます。