アウトラインエディタでは、Natural マップエディタで作成された画面用のボックスを定義します。 具体的には、周囲にボックスを描くフィールドのボックスコードを設定します。 ボックスコードは、BX
パラメータの値を表します。
原則として、アウトラインエディタはボックスの作成に使用し、フィールドの定義には使用しません。 フィールドの定義は、マップエディタで行います。
このセクションでは、以下のトピックについて説明します。
アウトラインエディタを使用するには、以下の前提条件が満たされている必要があります。
使用する端末または端末エミュレーションで、ボックスの表示がサポートされている必要があります。 一般に、DBCS(ダブルバイト文字セット)文字をサポートする端末または端末エミュレーションです。 サポートしていないと、マップ用に生成されたボックスが実行時に表示されません。
DBCS をサポートするために Natural に実装されている機能の詳細については、『オペレーション』ドキュメントの「ダブルバイト文字セット」も参照してください。
Natural バージョン 3.1 および KAPRI で作成されたマップを、Natural for MBCS でのコンパイルおよび実行に適したマップに変換する必要があります。 Natural for Mainframes の最新のリリースノートの「Natural for MBCS を使用して変換されたマップの処理」を参照してください。
注意: KAPRI では、DBCS(ダブルバイト文字セット)文字およびボックスの画面位置を記憶して適切に表示します。 Natural for MBCS では、KAPRI とは異なり、実際の表示長と Natural 言語拡張を使用して正しい表示位置を判断します。 このため、KAPRI で作成されたマップは、Natural や Natural for MBCS で実行する前に変換する必要があります。 変換されていないマップを実行すると、その表示の際に予期しない結果が生じることがあります。 |
KAPRI マップを移行する場合は、バックアップコピーを作成し、移行後にマップエディタまたはアウトラインエディタの
機能を使用して新しいマップのレイアウトを確認することをお勧めします。変換された KAPRI マップは Natural for MBCS をサポートしない Natural バージョンでは編集できないので、変換されたマップは、Natural バージョン 3.1 および KAPRI で作成されたマップとは別のライブラリ(または別の FUSER システムファイル)に保存することを強くお勧めします。
KAPRI で作成されたマップを 1 つ変換するには
マップエディタの[Edit Map]メニューを表示します。
[Edit Map]メニューで、 のファンクションコード「X
」を指定し、変換対象のマップの名前を入力します。
Enter キーを押します。
マップが正常に変換されたことを示すメッセージが表示されます。
KAPRI で作成されたマップを複数変換するには
『システムコマンド』ドキュメントの説明に従って、CATALL
システムコマンドを使用します。
CATALOG、STOW、または CHECK オプションが CATALL 画面で選択されているか CATALL
ダイレクトコマンドで指定されている場合は、移行機能も CATALL
コマンドによって呼び出されて実行されます。 SAVE オプションが指定されている場合は、移行は実行されません。
アウトラインエディタを使用して編集する各マップのマップ設定には、デリミタクラス D
が定義されている必要があります。 このデリミタクラスがないと、アウトラインエディタを開くことができず、エラーメッセージが表示されます。
デリミタクラス D
は、通常、KAPRI で作成されたマップのマップ定義を読み取るとき、または Natural で新しいマップを作成するときに自動的に追加されます(『マップエディタ』ドキュメントの「デリミタクラス D」を参照)。 ただし、Natural で作成された既存のマップについては、以下の手順に従ってデリミタクラスを追加する必要があります。
Natural システムファイルのライブラリにソースオブジェクトとして保存されているマップのマップエディタを起動します。
マップエディタの編集エリアが開き、指定したマップが表示されます。
PF2(Mset)キーを押して、マップのデフォルト設定を変更します。
[Define Map Settings]画面が開きます。
[Delimiters]セクションで、以下の例のようにデリミタクラス D
を追加します(または既存のデリミタを置き換えます)。
Delimiters ----------------- Cls Att CD Del T D BLANK T I ? A D _ A I ) A N ^ M D & M I : O D + O I ( D I # |
マップエディタの[Edit Map]メニューを表示し、マップを保存します。
デリミタの詳細については、『マップエディタ』ドキュメントの関連セクションを参照してください。
このセクションでは、アウトラインエディタの起動手順について説明します。
アウトラインエディタを起動するには
マップエディタの[Edit Map]メニューを表示します。
[Outline Editor]のファンクションコード「O
」と、アウトラインエディタで編集するマップの名前を入力します。 マップは、エディタの現在のソースワークエリアに含まれているか、Natural システムファイルのライブラリにソースオブジェクトとして保存されている必要があります。
以下の例のような[Outline Editor]画面が画面分割モードで開き、指定したマップが表示されます。
アウトラインエディタ画面の上部には、すべての有効なボックスコード(O など)、それによって作成されるボックスのタイプの記号(例えば、O の場合は正方形 )、およびエンドマーカー E(END)が表示されます。 この図は全画面モードでは表示されません。
画面の下部は編集エリアで、指定したマップのマップ定義が表示されます。 データフィールドを示す文字(X
や 9
など)は、マップエディタの編集エリアで使用されている文字と同じです。 詳細については、『マップエディタ』ドキュメントの「マップフィールドの定義」を参照してください。
ボックスコードは、BX
セッションパラメータの値または値の組み合わせを表す 1 文字です。 例えば、ボックスコード O
は BX
設定 TBLR
を表します。 使用可能なパラメータ値の詳細については、「ボックスコードおよび BX パラメータ値の一覧」を参照してください。
ボックスコードの使用時に適用されるルールと条件については、次のセクションで説明します。 取り上げられている例については、「ボックスコード指定の例」を参照してください。
ボックスコードでは、大文字と小文字は区別されません。 以下を示すボックスコードを入力できます。
データフィールド
デリミタクラス D
を使用して作成されたテキストフィールド
(デリミタクラス T
は使用できません)
空白文字 1 文字または空白文字のシーケンス
このセクションでは、以下のトピックについて説明します。
デリミタクラス D
のデータフィールドまたはテキストフィールドの場合は、ボックスを作成するフィールドの属性位置にボックスコードを入力します。 属性位置はフィールドの直前であり、以下のいずれかで示されます。
マップエディタを使用してフィールドに割り当てられたデリミタ文字。
例:テキストフィールド[Information]
フィールドにすでに入力されているボックスコード。 アウトラインエディタには、デリミタ文字は表示されず、ボックスコードが表示されます。
例:テキストフィールド[Personal]
配列として定義されているデータフィールドの場合は、配列のオカレンスごとにボックスコードを入力できます。 例えば、[Office:]
、[Home:]
、および[Mobile:]
は 1 次元配列(A20/1:3)
の 3 つのオカレンスです。 ボックスコードをこの配列のすべてのオカレンスに対して有効にするには、マップエディタの拡張フィールド編集機能を使用して BX
パラメータを変更します。
空白文字 1 文字または空白文字のシーケンス用のボックスを作成できます。 これにより、ボックスデザイン用に空のマップエリアを使用できるようになります。
空白文字 1 文字または空白文字のシーケンスの場合は、空行にボックスコードを入力します。
ボックスの長さは、使用ボックスコードが適用される空白文字数と、エンドマーカー(「エンドマーカーの使用」を参照)によって異なります。
エンドマーカーが設定されている場合は、ボックスはボックスコードからエンドマーカーまでの文字数の周囲に描画されます。
例:
データフィールド[Last Name:]
の横の空白エリアのボックスコード 2 と U。
エンドマーカーが設定されていない場合は、ボックスはボックスコードから次のフィールドまたは行末までの文字の周囲に描画されます。
例外:ボックスコード L と R は、エンドマーカーの有無に関係なく、空白文字 1 文字のボックスのみ作成します。 例:テキストフィールド[Phone]
および[Office:]
の間のボックスコード L。
空白文字のシーケンス用に作成されたボックスは、「Enter キーを押した後のボックスコード指定の例」のように、複数のピリオド(.)で示されます。 直後にエンドマーカーがあるボックスコード(OE
など)で作成されたボックスや、直後にボックスコード L と R があるボックスコードで作成されたボックスには、ピリオドは表示されません。
空白文字 1 文字または空白文字のシーケンス用のボックスは、デリミタクラス D
の空のテキストフィールドとしてマップ定義に生成されます。
ボックスの長さを短縮するには、ピリオド(.)のいずれかをエンドマーカー(「エンドマーカーを指定するには」も参照)またはボックスコードに置き換えます。 これにより、置き換えたピリオドの位置でフィールドが終わります。
空のテキストフィールドは、マップエディタの拡張フィールド編集機能を使用して編集できます。
上または下に横線があって右側に縦線がないボックスコード(ボックスコード T、B、I、C、3、および 5)は、同じ行の後続のフィールドにも適用されます。 この場合、ボックスの終了は、次のボックスコード、デリミタクラス T
の次のテキストフィールド、または行末になります。 例:テキストフィールド[Personal]
と[Information]
、および[City:]
の横のデータフィールド。
上記のボックスコードのいずれかを入力すると、このボックスコードが適用されるすべての後続フィールドの前に、自動生成されたボックスコードがアウトラインエディタによって配置されます。 自動生成されたボックスコードのシーケンスは、「ボックスコードおよび BX パラメータ値の一覧」の「自動生成ボックスコード」にリストされています。 ボックスコードは、ボックスコードをあらかじめ入力しておいた場合にのみ自動生成されます。 自動生成されたボックスコードは置き換え可能です。
1 つまたは複数のボックスコードを変更するには、ボックスコードを 1 つずつ別のボックスコードに置き換えます。
1 つまたは複数のボックスコードを削除するには、ボックスコードを 1 つずつ空白文字に置き換えるか、「行コマンドと PF キー」で説明している行コマンドのいずれかを使用します。
通常は、削除できるのはフィールドのボックスコードのみであり、フィールド自体を削除することはできません。 フィールド定義は、マップエディタでのみ削除できます。 例外:空白フィールドのボックスコードを削除すると、マップ定義の該当フィールドも削除されます。
エンドマーカー
例外:ボックスコード L と R は、常に空白文字 1 文字用のボックスのみ作成します。 この 2 つはエンドマーカーなしで入力できます。 例:テキストフィールド[Phone]
および[Office:]
の間のボックスコード L。
エンドマーカーでは、大文字と小文字は区別されません。
エンドマーカーは、マップソースに BX
パラメータ値としては生成されません。
エンドマーカーは、ボックスコードと、エンドマーカーが配置された行に適用されます。 ボックスコードとエンドマーカーをそれぞれ別の行に入力しても、複数行にわたるボックスは作成できません。
空行で、ボックスの開始位置にボックスコードを入力し、ボックスの終了位置に E
を入力します。
例:
「ボックスコード設定の例」の[Last Name:]
の上にある空行の列 035 と 059
Enter キーを押してエントリを確定します。
ボックスコードとエンドマーカーで囲まれた空白文字(この例では列 035 と 059 の間)がピリオド(.)に置き換わります。
エンドマーカーが画面に表示されなくなります。
ボックスの長さを短縮するには、ピリオド(.)のいずれかをエンドマーカーに置き換えます。 例:U..........E.....
これにより、上書きしたピリオドの位置でフィールドが終わります。
次の表に、アウトラインエディタの編集エリアにリストされるボックスコードの説明を示します。 また、自動生成されたボックスコードのシーケンス(ボックスコードに関連する場合)と、等価な BX
パラメータ値(順不同)も示します。
このセクションでは、「アウトラインエディタの起動」のマップ定義をベースに、ボックスコード指定の例を示します。 この例は、ボックスコードの使用方法を示すのが目的であり、ボックスを使用してマップをデザインするためのガイダンスではありません。
以下の例は、アウトラインエディタにボックスコードをどのように入力できるかを示しています。
以下の例は、ボックスコード入力を Enter キーで確定した後にボックスコード指定がどのように表示されるかを示しています。
以下の例は、プログラムまたは PF4 テスト機能で呼び出されたときの、マップのボックスレイアウトを示しています。
この例は、「ボックスコード設定の例」をベースにしています。
アウトラインエディタに用意されている行コマンドと PF キーは、ボックスコードや空のテキストフィールドの削除、アウトラインエディタの編集エリアでの移動、編集エリアの切り替え(アウトラインエディタ/マップエディタ)、表示モードの切り替え、アウトラインエディタの終了などに使用できます。
行コマンドは、行の先頭に入力します。 行コマンドでは、大文字と小文字は区別されません。
行コマンド | PF キー | 説明 |
---|---|---|
..D |
コマンドが入力された行から、すべてのボックスコードと空のテキストフィールドを削除します。 | |
..Dnn |
コマンドが入力された行とその下 nn 行から、すべてのボックスコードと空のテキストフィールドを削除します。nn の範囲は 1~99 です。 | |
..D* |
コマンドが入力された行とその下すべての行から、すべてのボックスコードと空のテキストフィールドを削除します。 | |
..X |
PF13 | アウトラインエディタとマップエディタの編集エリアを切り替えます。 |
PF1 | ヘルプ。 アウトラインエディタとマップエディタのヘルプ情報を表示します。 |
|
..Q |
PF3 | 終了。 アウトラインエディタを終了し、[Edit Map]メニューに戻ります。 [Box-Code Display]またはテスト画面で押すと、アウトラインエディタの編集エリアに戻ります。 |
PF4 | テスト。 ボックスレイアウトを使用してマップ定義をテストします。 この機能はマップエディタからも呼び出すことができます。 PF3 キーまたは Enter キーを押すと、編集エリアに戻ります。 |
|
PF5 | ボックス表示。 マップのボックスコード設定を表示します。後述の「Box-Code Display」を参照してください。 PF3 キーまたは Enter キーを押すと、編集エリアに戻ります。 |
|
PF7 | 画面を 1 ページ上方にスクロールします。 | |
PF8 | 画面を 1 ページ下方にスクロールします。 | |
PF9 | 全画面モードと画面分割モードを切り替えます。 | |
PF10 | マップの幅が画面より広い場合に画面の左半分に移動します。 | |
PF11 | マップの幅が画面より広い場合に画面の右半分に移動します。 | |
PF12 | Enter キーを押す前に編集エリアで実行された直前の操作を取り消します。 |
ボックスコード表示機能により、[Box-Code Display]画面が表示されます。この画面は確認用で、ボックスコードを単なる文字と区別するのに役立ちます。
[Box-Code Display]画面には、設定されているボックスコードが表示され、フィールド位置が一連のピリオド(.)で示されます。 この画面には、エンドマーカーとして入力された E
は表示されません。
ボックスコード表示画面は、編集には使用できません。
以下の例は、PF4 キーが押された後のマップのボックスコード設定を示しています。 この例は、「ボックスコード設定の例」をベースにしています。