フォーマット定義ソース

本章では、フォーマット定義ソースの構成および記述形式について説明します。

1. 概要

PSAM(Presentation Service Access Method)は、アプリケーションと外部端末の入出力通信のために、OpenFrame AIMが提供するプレゼンテーション・サービスです。PSAMは、画面と帳票形式をアプリケーションと独立した定義体で作成し、これを使用してプレゼンテーション・サービスを提供します。

以下の図は、プレゼンテーション・サービスの概要を示しています。

figure 4 1
プレゼンテーション・サービスの概要

上の図のように、PSAMの機能はフォーマット定義機能とプレゼンテーション・サービス機能に分けられます。

jybfg000ツールを使用してフォーマット定義ソースからフォーマット定義体を作成し、プレゼンテーション・サービス・プログラムを使用してアプリケーションの内部データ形式と端末の外部表示形式間のデータを変換します。

データ変換には以下のフォーマット定義体の情報を使用します。

  • 端末制御情報

  • 画面または帳票の表示形式(レイアウト情報)

  • アプリケーションのデータ形式

  • 画面または帳票の表示とアプリケーション・データとの対応関係

jybfg000ツールの詳細については、OpenFrame AIM『ツールリファレンスガイド』を参照してください。

2. フォーマット定義ソースの構成

フォーマット定義ソースは、端末の種類に応じて多少の差はありますが、ほぼ同じ形式を持ちます。OpenFrame AIMは、ディスプレイ端末とプリンター端末をサポートします。

本節では、ディスプレイ端末とプリンター端末のフォーマット定義ソースの構成について紹介します。

2.1. ディスプレイ端末

ディスプレイ端末はユーザーのデータ入力によって、OpenFrame AIMのアプリケーションとの入出力通信が可能です。プリンター端末の場合は帳票による出力のみ可能です。そのため、ディスプレイ端末のためのフォーマット定義ソースでは、入力可能なレコードを定義する必要があります。ディスプレイ端末の場合は、DEVICE文のDVK値がDP10(デフォルト値)です。

ディスプレイ端末は、画面レイアウトの記述方法によって画面形式と制御文形式に分けられます。画面形式は、LAYOUT文とLAYEND文の間に画面レイアウトを記述してフォーマットを定義し、制御文形式は、FIELD文、WINDOW文で定義した文字フィールド、ウィンドウ・フィールドを使用してフォーマットを定義します。

  • 画面形式

    画面形式には、SCHAR文、SWINDOW文、LAYOUT文、LAYEND文、画面レイアウトの記述領域があります。また、画面レイアウトがレコードより前に定義されます。画面形式はディスプレイ端末にのみ記述できます。

    以下の図は、ディスプレイ端末の画面形式を示しています。

    figure 4 2
    ディスプレイ端末の画面形式の構成
  • 制御文形式

    制御文形式には、FIELD文、WINDOW文、REPEAT文、REPEND文があります。また、レコード定義が画面レイアウトの定義より前に記述されます。

    以下の図は、ディスプレイ端末の制御文形式を示しています。

    figure 4 3
    ディスプレイ端末の制御文形式の構成

2.2. プリンター端末

プリンター端末は、ユーザーのデータを入力することはできず、出力のみ可能です。そのため、プリンター端末のためのフォーマット定義ソースでは、出力用レコードのみ定義する必要があります。プリンター端末の場合、DEVICE文のDVK値がPR10です。プリンター端末は制御文形式でのみ記述します。

以下の図は、プリンター端末の制御文形式を示しています。

figure 4 4
プリンター端末の制御文形式の構成

ディスプレイ端末の制御文形式との違いは、行間隔を定義するLINE文とバーコード・フィールドを定義するXBARCODE文を使用できるという点です。また、画面分割を定義するDIST文と入出力項目単位を定義するGROUP文は存在しません。

3. フォーマット定義ソースの記述形式

フォーマット定義ソースの記述形式はレコード形式に応じて固定長レコードと可変長レコードに分けられます。固定長レコードのレコード長は80~255まで、可変長レコードは84~255までの値を使用できます。

以下の図は、固定長レコードのフォーマット定義の記述形式を示しています。

figure 4 5
フォーマット定義ソースの記述形式 – 固定長レコード

以下の図は、可変長レコードのフォーマット定義の記述形式を示しています。

figure 4 6
フォーマット定義ソースの記述形式 – 可変長レコード

以下は、フォーマット定義ソースの記述形式についての説明です。

  • 名前欄

    アルファベットで始まる8文字以内の英数字を記述します。固定長レコードは1桁目から、可変長レコードは10桁目から記述します。

  • 命令欄

    名前の直後に1つ以上の空白文字を入れて記述します。名前がない場合、固定長レコードは2桁目、可変長レコードは11桁目以降の任意の位置から記述できます。

  • オペランド欄

    オペランドは命令欄の後に続き、1つ以上の空白文字を入れて記述します。固定長レコードは継続欄の前まで記述でき、可変長レコードは最大レコード長まで記述できます。

    オペランドとオペランドの間は、次のいずれかを使用して区切ります。

    • 1つのコンマ(,)

    • 1つのコンマ(,)と1つ以上の空白文字

    • 1つ以上の空白文字

    オペランドはキーワード形式に従います。キーワード、等号(=)、オペランドの値で構成されます。等号の直後には、1つ以上の空白文字を入力できます。

    • XXXX=AAAA

    • XXXX=_AAAA

    • XXXX=___AAAA

    「XXXX」はキーワード、「AAAA」はオペランドの値、「_」は空白文字を示します。

    オペランドの値が複数の要素で構成される場合は括弧で囲みます。複数の各要素をサブオペランドといいます。括弧の前後には空白文字を入力できます。サブオペランドとサブオペランドの間を区切る方法は、オペランドと同様です。

    • XXXX=(AA,BB,CC)

    • XXXX=__(_AA,BB,CC_)

    • XXXX=__(_AA,_BB,_CC_)

    「AA」、「BB」、「CC」は、すべてサブオペランドです。

    EQU文では、上記のオペランド規則が適用されません。EQU文では、1つのコンマ(,)を使用してオペランドとサブオペランドを区切り、等号(=)の直後に空白文字を使用できません。

  • 継続欄

    オペランドは、以下の方法で次の行に続けて記述できます。

    • オペランドの最後にコンマ(,)を入力し(コンマは省略可能)、次の行の開始を固定長レコードは2桁目、可変長レコードは11桁目以降に次のオペランドを記述します。

    • サブオペランドの最後にコンマ(,)を入力し(コンマは省略可能)、次の行の開始を固定長レコードは2桁目、可変長レコードは11桁目以降に次のサブオペランドを記述します。

    • 引用符号で囲まれた文字列の場合、固定長レコードは継続欄の前まで記述し、残りの部分は次の行の16桁目から記述します。可変長レコードは最大レコード長まで記述し、残りの部分は次の行の25桁目から記述します。

    継続欄は継続を指定する用途に使用しており、構文チェックは行いません。1つの構文は、最大80行まで使用できます。

    以下の制御文は継続行を使用できません。

    • EQU文

    • LAYOUT文

    • LAYEND文

    • END文

  • コメント欄

    固定長レコードは1桁目に、可変長レコードは10桁目にアスタリスク(*)を記述すると、その行はコメントとみなされます。

4. 画面フォーマット

画面レイアウトの記述方法には、画面形式と制御文形式があります。

  • 画面形式

    • LAYOUT文とLAYEND文の間の画面レイアウトを記述してフォーマットを定義します。

    • レコード形式は可変長です。

    • メンテナンスの容易性を考慮して、画面形式を使用することを推奨します。ただし、以下の制限事項があります。

      • 長さが1のサブフィールドを使用できません。

      • 長さが2のサブフィールドを最初および中間サブフィールドで使用できません。

      • ウィンドウの高さが1行または2行になることはできません。

      • ウィンドウの幅はグラフ・レコードの幅より大きくする必要があります。

      • 文字フィールドはウィンドウの境界を超えることはできません。

      • ウィンドウを他のウィンドウとオーバーラップすることはできません。

      • サブフィールドの属性を記述できません。

      • 配列形式のデータ項目はフィールド位置の昇順でのみ表示できます。

      • 入力フィールドの属性として保護(Protection)属性を指定することはできません。

  • 制御文形式

    • FIELD文、WINDOW文を使用して、文字フィールド、ウィンドウ・フィールドを定義します。

    • レコード形式は固定長または可変長です。

    • すべてのPSAM機能を使用できます。

4.1. 画面形式と制御文形式の共通記述

以下は、画面形式と制御文形式を使用してフォーマットを記述する際、共通して使用できる文についての説明です。

説明

FID文

以下を設定します。

  • フォーマット定義体の名前(FID)

  • フォーマット定義体のタイプ(TYPE)

  • アプリケーションのタイプ(PGM)

  • アプリケーションの言語(LANG)

  • 年の出力形式(DATETYPE):日付表意定数で西暦年が4桁の場合、出力時に下2桁または4桁のいずれで表示するかを指定します。詳細については、日付表意定数の優先順位を参照してください。

    • STANDARD:西暦2桁で表示(デフォルト値)

    • EXTEND:西暦4桁で表示

DEVICE文

画面フォーマット記述の開始を示し、端末の固有情報を指定します。

以下を設定します。

  • 端末のタイプ(DVK)

  • 画面のサイズ(SIZE)

  • 入力データの削除コード(DELETE)

  • 端末の解像度(GPLANE)

FRAME文

画面フォーマットの設定方法を記述します。

以下を設定します。

  • フィールド長の形式(FLNGTH)

  • 論理画面のサイズ(VSIZE)

  • スクロール領域の指定(VSCROLL)

  • 非スクロール領域の指定(FIX)

  • プリント書式の制御方法(VPOS)

  • 半角文字の対象(HALF)

PART文

ディスプレイ端末の場合は以下を設定します。

  • 端末制御情報(CONTROL)

  • 画面出力のデフォルト動作(WRITE)

    • ERASE:WRITE文が省略されると、デフォルトの動作として指定されます。画面出力モードがWRITEの場合、画面全体をクリアしてフィールドを表示します。画面出力モードがREWRITEの場合は、変更されたフィールドのみを表示します。

    • PARTIAL:WRITEモードの場合、画面全体をクリアせず、定義されたフィールドを現在表示中の画面上に上書きします。REWRITEモードの場合は、変更されたフィールドのみを表示します。

  • 入力データのチェック方法(AKCHECK)

  • 注意コードの指定(ATT)

プリンター端末の場合は以下を設定します。

  • 帳票のサイズ(SIZE)

  • 基準文字のサイズ(NPO)

  • 日付表意定数の優先順位

    ユーザーは、ofconfigまたは環境変数の設定を通じて、PSAMで使用される日付の表意定数を変更することができます。適用の優先順位は以下のとおりです。

    1. ofconfigのSPARM_DATEおよびSPARM_TIMEに設定された値

    2. 環境変数OPENFRAME_DATEおよびOPENFRAME_TIMEに設定された値

    3. 上記1または2の設定がない場合、システム時刻値を使用

4.2. 画面形式の記述

画面形式はディスプレイ端末にのみ使用できます。LAYOUT文とLAYEND文の間の画面レイアウトを記述してフォーマットを定義します。

以下は、画面形式を記述するために使用する文です。

説明

SCHAR文

レイアウトの記述に使用する文字の用途を定義します。詳細については、SCHAR文を参照してください。

SWINDOW文

グラフ・ウィンドウ、イメージ・ウィンドウ、図形ウィンドウの設定情報を記述します。

LAYOUT文

画面レイアウト記述の開始を示します。

LAYEND文

画面レイアウト記述の終了を示します。

4.2.1. SCHAR文

レイアウトの記述に使用する文字の用途を定義します。

  • 文字フィールドの開始または終了を示す文字(ATTR)

  • セパレーター文字(SEP)

  • 画面内の固定文字(CHAR)

文字フィールドは、FILEDを指定して以下のように区分します。また、各フィールドには属性を与えます。

  • テキスト・フィールド(TEXT)

  • 入力フィールド(IN)

  • 出力フィールド(OUT)

  • 終了フィールド(END)

フィールド属性は、ATTR文で指定します。以下の表は、表意定数(system figurative constant)を示しています。

  • 基本属性

    分類 表意定数 属性

    [Protection][Detectability] [Intensity]

    [I|O][D|U][H|L|S]

    入力と検査の可否、明るさの属性を指定する場合、それぞれに対応する表意定数のいずれかを選択し、連続して記述する必要があります。たとえば、入力と検査が可能であり、明るさ最大のフィールドを定義する場合は、IDHのように連続して指定します。

    [I|O]属性が個別に指定されていない場合、テキスト・フィールドと出力フィールドには [O]属性が、入力フィールドには[I]属性が指定されたものと見なされます。表示される色は、環境設定により異なります。詳細については、属性指定に応じた基本色を参照してください。

    • I:入力できるフィールド

    • O:入力できないフィールド、出力フィールド

    • D:ライトペン機能を使用できる(未サポート)

    • U:ライトペン機能を使用できない(未サポート)

    • H:高輝度

    • L:低輝度

    • S:フィールド内文字の非表示

    入力属性(複数指定可能)

    NUM

    数字(0~9)、ピリオド(.)、マイナス記号(-)のみ入力文字として使用

    CUR

    カーソルを指定

    MDT

    入力しなくても入力したかのように扱う

    FIL

    入力フィールドの長さの分だけ入力

    ENT

    必須入力

    TRG

    トリガーとして使用される入力フィールド

    NOC

    入力された小文字を大文字に変換せずにそのまま使用

    AEN

    自動エンター

    フィールド・アウトライン(OTLを除いて複数指定可能)

    UDL

    下線

    OVL

    上線

    VTL

    左線

    VTR

    右線

    OTL

    フィールド全体を囲む(UDL + OVL + VTL + VTR)

    特殊機能

    SPF

    ハードウェア装置に応じて動作が異なる

    PTN

    パターンを表示

  • 拡張属性

    分類 表意定数 属性

    強調 (1つだけ指定でき、複数指定した場合は優先順位が最も高い項目のみが適用されます。優先順位:UDS < RVS < BLK))

    BLK

    点滅

    RVS

    反転

    UDS

    下線

    色 (複数指定不可)

    BLU

    RED

    PNK

    ピンク

    GRN

    TUR

    青緑

    YLW

    WHT

  • 属性指定に応じた基本色

    ユーザーが拡張属性で色を指定した場合、その値が優先的に適用されます。色が指定されていない場合は、環境設定のCOLOR_PATTERN値(デフォルト値:0)とフィールドの基本属性に基づいて色が決まります。

    属性指定 IUL IDL IDH OUL ODL ODH

    COLOR_PATTERN 0

    COLOR_PATTERN 1

    COLOR_PATTERN 2

    COLOR_PATTERN 3

    COLOR_PATTERN 4

    青緑

    青緑

4.2.2. レイアウト

LAYOUT文とLAYEND文の間に画面レイアウトを記述します。

以下は、画面レイアウトを記述する際の注意事項です。

  • 画面の原点(1行1列の位置)に配置できる文字

    • フィールド開始文字

    • フィールド終了文字

    • 空白文字

  • テキスト・フィールドとアウトプット・フィールドの区別

    固定文字列フィールドまたは固定文字列と変数が混在するフィールドは、テキスト・フィールドとして定義します。1つの変数のみで構成されたフィールドはテキスト・フィールドまたはアウトプット・フィールドとして定義できます。ただし、テキスト・フィールドは変数の開始文字が必要であるため、長さが1のフィールドはアウトプット・フィールドとしてのみ定義できます。

    • テキスト・フィールド

      以下の例は、変数Aが示すフィールドは長さが2のテキスト・フィールドです。つまり、テキスト・フィールドの長さが1になることはできません。

      ○@A△
    • アウトプット・フィールド

      以下の例は、変数Aが示すフィールドは長さが1のアウトプット・フィールドです。

      ○A△

    上記例の記号の意味は以下のとおりです。

    区分 意味

    フィールド開始文字

    フィールド終了文字

    @

    変数開始文字

    !

    変数終了文字

  • フィールドの長さ

    • フィールド開始文字とフィールド終了文字の間に定義されたフィールド

      フィールド開始文字とフィールド終了文字は、実画面で属性文字に対応されます。フィールド開始文字の位置には必ず属性文字が配置されますが、フィールド終了文字の位置には、必ずしも属性文字が配置されるわけではありません。変数を含むフィールドの長さは変数のデータ項目の長さによって決まるため、フィールドの終了を示す属性文字の位置も変数のデータ項目の長さによって変わります。そのため、フィールド終了文字を使用するフィールドは、変数に該当するデータ項目の長さを変更しても、次のフィールドと重ならない限り、レイアウト記述を変更する必要がありません。

    • フィールド開始文字とフィールド開始文字の間に定義されたフィールド

      フィールドの前後に属性文字を指定するには、フィールドの長さが固定である必要があります。したがって、変数に該当するデータ項目の長さが一致する必要があります。

    フィールドの長さと変数に該当するデータ項目の長さの不一致を検出するために、LAYOUT文にLENGCHKオペランドを使用することができます。

  • メッセージ・フィールド

    メッセージは一般的なアウトプット・フィールドとして指定できますが、メッセージ表示用のアウトプット・フィールド(または、メッセージ・フィールド)を使用すると、メッセージIDを使用してメッセージ本文を定義することができます。これにより、1つのフィールドにさまざまなメッセージを出力することが可能で、メッセージ内容を簡単に変更することができます。

  • 空白行

    レイアウト記述での空白行は実画面の空白行を示すため、省略できません。ただし、LAYEND文直前の画面最下部の空白行は省略できます。

  • レイアウト記述とEQU文の関係

    EQU文で定義された置換変数は、レイアウト記述部分では影響を及ぼしません。

  • 2次元配列を持つデータ項目の定義

    2次元配列を持つデータ項目は以下のように定義されます。1次指標と2次指標の値に留意します。

    figure 4 7
    2次元配列のデータ項目と画面レイアウトの記述例

4.3. 制御文形式の記述

制御文形式でのみ使用できる文について説明します。制御文形式はディスプレイ端末だけでなく、プリンター端末でも使用できます。FIELD文、WINDOW文を使用して各フィールド属性を直接定義します。

以下は、制御文形式を記述するために使用する文です。

説明

WINDOW文

グラフまたはイメージを表示するための表示領域を指定します。

FIELD文

画面または帳票のフィールドを定義します。詳細については、FIELD文を参照してください。

  • フィールドの開始位置

  • 1次属性

  • 2次属性

  • フィールドの固定データ

  • 可変データ

  • 入力データ項目

REPEAT文

繰り返しフィールド定義の開始を示します。REPEAT文とREPEND文の間に、繰り返しの対象となるFIELDを指定します。繰り返し回数、繰り返し方向(行または列)、繰り返し時の指標値の変化など、繰り返し動作に必要な情報を一緒に指定する必要があります。詳細については、REPEAT文を参照してください。

REPEND文

繰り返しフィールド定義の終了を示します。

4.3.1. FIELD文

フィールドとは、制御文の記述に使用される画面または帳票の空間単位であり、FIELD文とその文によって具体化されます。

以下は、FIELDの記述に使用される文です。

説明

POS文

画面または帳票でフィールドの開始行と列の位置を指定します。指定された位置から前の1つの列位置には、空白属性の文字が生成されます。

ATTR文

フィールドの1次属性を指定します。ATTR文を省略した場合、該当フィールドの1次属性としてOULが設定されます。ATTRとATTR2で指定できる属性値は、SCHAR文を参照してください。

ATTR2文

フィールドの2次属性を指定します。ATTR2文を省略した場合、2次属性は1次属性と同じ属性に設定されます。

VALUE文

フィールド内に固定データおよび可変データを指定します。1つ以上のデータを指定でき、それぞれをサブフィールド(subfield)と呼びます。複数のサブフィールドは連続して表示され、同じATTR属性が適用されます。

  • 固定データの記述形式

    {'固定文字列' | (ALL, 繰り返し文字, n) | 空白文字}
    • '固定文字列':任意の英数字を指定します。

    • (ALL, 繰り返し文字, n):固定データが1文字のn回繰り返しであることを指定します。

    • 空白文字:空白文字がm個の場合、mXと記述します。

  • 可変データの記述形式

    {変数名 | (変数名, n) | (変数名, n, m)}
    • 変数名:出力データ項目として定義されたDATA文またはSDATA文の名前を指定します。

    • n:1次元配列データの1次指標、または2次元配列データの1次指標を指定します。

    • m:2次元配列の2次指標を指定します。

DATAIN 문

入力されたフィールド・データを受け取る入力データ項目を指定します。

  • 入力データ項目の記述形式

    {DUMMY | 変数名 | (変数名, n) | (変数名, n, m)}
    • DUMMY:入力データを指定しません。

    • 変数名:入力データ項目として定義されたDATA文またはSDATA文の名前を指定します。

    • n:1次元配列データの1次指標、または2次元配列の1次指標を指定します。

    • m:2次元配列の2次指標を指定します。

MSG文

このフィールドに固定メッセージを表示する際に、メッセージIDを設定するデータ項目の名前を指定します。

LENGTH文

フィールドの長さを指定します。フィールドの属性はフィールド全体の長さに適用されます。通常、固定データの長さと可変データの長さの合計がフィールドの長さとなるため、フィールドの長さを指定する必要はありません。ただし、以下のような場合にはフィールドの長さの指定が必要です。

  • VALUE文を記述していない場合

  • 属性で付与した枠線の長さを調整する場合

  • MSG文を記述した場合

以下は、FIELD文の使用例です。

  • 固定データを指定した場合

    以下は、3行4列の位置から開始するフィールドに固定データ’ABC’を指定し、属性としてボックス型の実線と反転強調表示を指定する例です。4行4列の位置では、最初のサブフィールドに固定データ’BCD’を、2番目のサブフィールドに固定データ' '(空白文字)を5回繰り返すことを指定します。5行4列の位置には、30個の空白文字を指定します。

     FIELD  POS=(3,4)
            VALUE='ABC'
            ATTR=(OTL,RVS)
    
     FIELD  POS=(4,4)
            VALUE=('BCD', (ALL,' ',5))
            ATTR=(OUL, VTL, UDS)
    
     FIELD  POS=(5,4)
            VALUE=30X
  • 可変データを指定する場合

    以下は、可変データを指定する例です。可変データは、DATA文またはSDATA文の名前で定義されている必要があります。

     FIELD  POS=(5,4)
            VALUE=MYTDATA
  • 固定データと可変データが混在する場合

    以下は、固定データと可変データが混在する例です。それぞれはサブフィールドとして連続して表示され、同じATTR属性が適用されます。

    A  DATA USAGE=CTRL1 PIC=(X,4)
    ...
     FIELD  POS=(2,2)
            VALUE=('(', A, ')')
            ATTR=OUL

4.3.2. REPEAT文

繰り返しフィールド定義の開始を示します。次に示す文を使用して、繰り返しに関する詳細情報を指定します。
REPEAT文は大きくタイプ1とタイプ2に分かれ、タイプ1は行方向のみの繰り返しが可能であり、タイプ2は行方向、列方向、そして行列方向での繰り返しを指定できます。

説明

OCCURS文

タイプ1の繰り返しを指定し、行方向の繰り返し回数を指定します。

LINE文

行方向の繰り返しに関する情報を指定し、タイプによって異なる指定を行います。

  • タイプで行方向の繰り返し時にフィールド間の間隔を指定します。

  • タイプ2で行方向の繰り返し回数と行方向の繰り返し時、フィールド間の間隔を指定します。

ROW文

列方向の繰り返しに関する情報を指定し、タイプ2でのみ指定します。

  • タイプ2で列方向の繰り返し回数と列方向の繰り返し時、フィールド間の列間隔を指定します。

BY文

タイプ1でのみ指定し、繰り返し時の配列データの1次指標の増分値を指定します。省略した場合、1に指定されます。

BY1文

タイプ2でのみ指定し、繰り返し時の配列データの1次指標の増分値を指定します。省略した場合、1に指定されます。

BY2文

タイプ2でのみ指定し、繰り返し時の配列データの2次指標の増分値を指定します。省略した場合、1に指定されます。

以下は、REPEAT文の使用例です。

  • REPEATタイプ1

    以下は、行方向で3回繰り返し、行間隔を4、1次指標の増分値を1に指定する例です。
    REPEAT文の繰り返し指定により、(2,4)の位置に(A,1)、(6,4)の位置に(A,2)、(10,2)の位置に(A,3)を持つフィールドが定義されます。

    A    DATA   PIC=(X,4)    OCCURS=5
    ...
        REPEAT  OCCURS=3     LINE=4
          FIELD POS=(2,4)    VALUE=(A,1)
        REPEND
  • REPEATタイプ2 - 行の繰り返し

    以下は、行方向で3回繰り返し、行間隔は2、1次指標の増分値は2に指定する例です。
    REPEAT文の繰り返し指定により、(2,4)の位置に(A,2)、(4,4)位置に(A,4)、(6,4)位置に(A,6)を持つフィールドが定義されます。

    A    DATA   PIC=(X,4)    OCCURS=6
    ...
        REPEAT  LINE=(3,2)   BY1=2
          FIELD POS=(2,4)    VALUE=(A,2)
        REPEND
  • REPEATタイプ2 - 列の繰り返し

    以下は、列方向で3回繰り返し、列間隔は5、1次指標の増分値は3に指定する例です。
    REPEAT文の繰り返しにより、(2,4)の位置に(A,1)、(2,9)位置に(A,4)、(2,14)位置に(A,7)を持つフィールドが定義されます。

    A    DATA   PIC=(X,4)    OCCURS=5
    ...
        REPEAT  ROW=(3,5)    BY1=3
          FIELD POS=(2,4)    VALUE=(A,1)
        REPEND
  • REPEATタイプ2 - 行列の繰り返し

    以下は、行方向で2回繰り返し、行間隔は2、列方向で4回繰り返し、列間隔は5、1次指標と2次指標の増分値は1に指定する例です。
    REPEAT文の繰り返し指定によって行例の繰り返しが設定されると、8つのフィールドはぞれぞれ増分された位置で(A,1,1) ~ (A,1,4)、(A,2,1) ~ (A,2,4)のような値を持つことになります。

    A    DATA   PIC=(X,4)    OCCURS=(3,4)
    ...
        REPEAT  LINE=(2,2)   ROW=(4,5)
          FIELD POS=(2,4)    VALUE=(A,1,1)
        REPEND

5. プリンター端末の記述

プリンター端末でのみ記述できる文について説明します。

以下は、プリンター端末を記述するために使用する文です。

説明

LINE文

行間隔を指定します。

PART文の直後に指定できます。省略時には、6LPI(Line Per Inch)間隔で設定されます。

BARCODE文

帳票に出力されるバーコード・フィールドを定義します。アプリケーションがメッセージ・ファイル・インターフェースを介して端末と通信する場合に使用されます。

以下を定義します。

  • バーコードの位置

  • バーコードのタイプ

  • バーコードのサイズ

  • バーコード・データを保存するデータ項目の変数名

  • その他のオプション

XBARCODE文

帳票に出力されるバーコード・フィールドを定義します。

アプリケーションが表示ファイル・インターフェースを介して端末と通信する場合に使用されます。BARCODE文の機能を拡張した形です。定義内容はBARCODE文と同じです。

6. レコードの記述

端末で入力したデータはプレゼンテーション・サービス・プログラムを介してアプリケーションに転送されます。また、アプリケーションで処理されたデータは、プレゼンテーション・サービス・プログラムを介して外部表示形式に変換および出力されます。プレゼンテーション・サービス・プログラムとアプリケーションの間で送受信される内部データ形式を定義したものをレコードといいます。

以下は、レコードを記述するために使用する文です。

説明

RECORD文

レコード記述の開始を示します。レコードのタイプ(入力、出力、入出力)を区別します。

DATA文

データ項目について以下を定義します。

  • データ項目の名前

  • データ項目の用途

  • データ項目の編集属性

  • データ項目の長さ

  • 初期値

  • 入力データの妥当性チェック方式

  • 繰り返し回数

  • ページ指定

SDATA文

セット項目を構成するデータ項目を定義します。

GROUP文

アプリケーションと端末間の入出力を実行する単位を定義します。グループに属する可変データを指定します。

DIST文

画面の配置を定義します。

画面に対するオペレーターの応答データに応じて、次の画面を表示するか、アプリケーションにメッセージを転送します。画面の配置に影響を与える応答データのデータ項目を配置キーといいます。配置キーは、データ項目の一部になることもできます。

表示ファイル形式とメッセージ・ファイル形式では、DIST文の記述形式が異なりますが、機能はほぼ同じです。表示ファイル形式では、複数のDIST文を処理できます。つまり、複数の入力データ値によって画面を配置することができます。

GRECORD文

グラフ・レコードの開始を示し、グラフのタイプを記述します。グラフ・レコードを記述するために使用される文には、GRECORD文、PDATA文、UNIT文、GDATA文があります。

PDATA文

グラフ・プロット・データおよびグラフ・マスク・データの形式を定義します。

UNIT文

グラフ・プロット・データのグラフ・ユニットの名前と属性を定義します。

GDATA文

グラフ・テキスト・データまたはグラフ・リファイン・データを指定します。

データ項目を記述するときに、EDITオペランドにパターンを指定することができます。パターンの種類は、以下のとおりです。

  • PICTUREが9タイプの場合

    P01(999,999), P02(ZZZ,ZZ9), P03(9999999), P04(ZZZZZZ9), P28(ZZZZZZZ)
  • PICTUREがSタイプの場合

    P12(\\\\\\,\\\\9CR), P14(ZZZ,ZZ9-), P20(-ZZZ,ZZ9), P22(-ZZZZZZ9),
    P25(----,--9), P26(-------9), P29(99.99.99), P63(ZZZ9.Z9.Z9), P64(9999.99.99)

7. メッセージの記述

出力するメッセージをレコードのデータ項目に直接記述することもできますが、この場合、データ量の増加に加え、メッセージを変更する際、アプリケーションを修正して再ビルドしなければなりません。このような問題を解決するために、使用されるメッセージと、そのメッセージIDをフォーマット定義ソースで定義し、レコードのデータ項目にはメッセージIDのみ指定してメッセージを出力できるようにサポートします。これにより、メッセージを変更する際、アプリケーションを修正するのではなく、フォーマット定義ソースを修正してビルドします。また、データ量を減らすこともできます。

以下は、メッセージを記述するために使用する文です。

説明

MSG文

メッセージ・フィールドに表示するメッセージ本文を定義します。

8. バックグラウンドの記述

ディスプレイ端末のベクター表示機能を使用してバックグラウンドを表示します。ただし、ベクター表示機能をサポートしない端末では、バックグラウンドの定義が無視されます。ベクター表示機能は、図形専用コマンド(点と点をつなぐベクターのセットを利用したコマンド)を使用して図形を画面に表示するか、プリンターの帳票に印刷する機能です。

以下は、ディスプレイ装置のバックグラウンドを定義するために使用される文についての説明です。

説明

BACK文

バックグラウンドを表示するための定義の開始を示します。

SET文

DRAW文、CHAR文の前に記述し、線と文字の表示形式を設定します。

DRAW文

バックグラウンドに表示される図形を指定します。

CHAR文

バックグラウンドに表示される文字の位置と値を指定します。

REPEAT文

バックグラウンドに表示される図形および文字を繰り返して記述するときに使用します。

REPEAT文とREPEND文の間に使用できる制御文は、DRAW文とCHAR文のみです。SET文は指定できません。

REPEND文

図形および文字の繰り返し定義の終了を示します。

9. 補助制御文の記述

フォーマット、レコード、メッセージ、バックグラウンドなどの定義は、プレゼンテーション・サービス・プログラムで動的に使用される情報です。

プレゼンテーション・サービス・プログラムで動的に使用される情報ではなく、フォーマット定義ソースでフォーマット定義体を作成するときにのみ必要な静的情報を記述することもできますが、このような情報を記述する文を補助制御文といいます。フォーマット定義ソースで使用するマクロの定義文、フォーマット定義の終了を指定する文などが該当します。

以下は、補助制御文を記述するために使用する文です。

説明

EQU文

置換変数を定義してフォーマット定義ソースに使用された置換変数を定義された値に変更することができます。置換変数は、英文字(#、@、\を含む)で始まる2桁文字の英数字で指定します。画面形式のレイアウト記述部分は置換の対象から除外されます。

EQU文はFID文より前に指定される必要があります。

END文

フォーマット定義の終了を示します。