ページの先頭行へ戻る
MeFt V11.0 ユーザーズガイド
FUJITSU Software

3.2.1 使い方

  ここでは、図 売上伝票の印刷例を例に、MeFtの基本機能について説明します。

図3.11 売り上げ伝票の印刷例

  売り上げ伝票印刷のプログラム例を示します。

#include <psdef.h>
#include "BILL.H"
print(){
    PSFILE    psfile;      /* 表示ファイル用識別子 */
    BILL      bill;        /* レコードデータ領域  */
    PSUSHORT  Error;       /* 通知コード格納領域  */
psfile = ps_open("prt1.env", PS_OPEN_PRT, &Error, 0);
ps_set_formatsize(psfile, "BILL", s_BILL);
~ レコードデータ領域へのデータ格納 ~
ps_write(psfile, PS_WRITE_NORMAL, "SCREEN", &bill,0);
ps_close(psfile, &Error);
}

~ 中略 ~
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT プリンタファイル ASSIGN TO GS-PRTFILE
ORGANIZATION IS SEQUENTIAL
ACCESS MODE IS SEQUENTIAL
SYMBOLIC DESTINATION IS "PRT"
FORMAT IS PRT-FORMAT
GROUP IS PRT-GROUP
PROCESSING MODE IS PRT-MODE
UNIT CONTROL IS PRT-CONTROL.
~ 中略 ~
DATA DIVISION.
FILE SECTION.
FD プリンタファイル.
    COPY BILL OF XMDLIB.
~ 中略 ~
PROCEDURE DIVISION.
    OPEN I-O プリンタファイル.
    INITIALIZE BILL.
    MOVE "BILL" TO PRT-FORMAT.
    MOVE " " TO PRT-MODE.
    MOVE "SCREEN" TO PRT-GROUP.
    WRITE BILL.
    CLOSE プリンタファイル.

利用者プログラムが定義体を使って印刷プログラムを作成するときは、MeFtの以下の機能を使用します。以降で、上記のプログラムを使用した帳票の出力方法を説明します。

    オープン

    出力

    入力

    クローズ

参照

  本マニュアルでは、COBOLの印刷機能は表示ファイル印刷機能について説明します。FORMAT句付き印刷ファイル機能については、NetCOBOLユーザーズガイドを参照してください。


3.2.1.1 オープン

  プリンタ装置への出力の開始宣言であり、プリンタ情報ファイルを指定します。プリンタ装置へ出力するには、ほかの機能の使用に先立ち、必ずオープンを行います。

psfile=ps_open("prt1.env", PS_OPEN_PRT, &Error, 0);

psfile

表示ファイル識別子

"prt1.env"

プリンタ情報ファイル名

PS_OPEN_PRT

プリンタ装置のオープン

Error

オープン異常終了時の通知コード格納領域

  オープンの正常処理時の復帰値(ここではpsfile)は表示ファイル識別子と呼び、以降のプリンタ装置への出力で装置を識別するために指定します。

注意

  利用者プログラムでオープンした表示ファイル識別子は必ずクローズしてください。クローズしないと内部資源が残り、システムが誤動作することがあります。


OPEN I-O プリンタファイル.

"プリンタファイル"の情報は、ファイル管理段落(FILE-CONTROL)で指定します。

[必須]

SELECT句

ファイル名("プリンタファイル")を指定します。

ASSIGN句

"GS-ファイル識別子"の形式で指定します。ここで指定したファイル識別子が、プリンタ情報ファイルのパス名を設定する環境変数名になります。

FORMAT句

帳票定義体を設定するためのデータ項目を指定します。

GROUP句

項目群名または項目名を設定するためのデータ項目を指定します。

[任意]

SYMBOLIC DESTINATION句

"PRT"を指定します。

FILE STATUS句

異常終了時の通知コード格納領域を指定します。異常が発生した場合、ここで指定した領域にエラー情報が返却されます。

PROCESSING MODE句

処理種別を設定するためのデータ項目を指定します。

UNIT CONTROL句

ユニット制御情報を設定するためのデータ項目を指定します。

OUTPUTまたはI-O指定のOPEN文を実行します。

注意

  利用者プログラムでオープンしたプリンタファイルは必ずクローズしてください。クローズしないと内部資源が残り、システムが誤動作することがあります。


3.2.1.2 出力

  定義体中の固定データ、利用者プログラムが用意したデータおよびオーバレイデータをプリンタ装置に出力を指示する機能です。

ポイント

  実際の印刷は出力またはクローズのどちらか、または両方で行われます。

注意

  クローズを実行しないで出力を行いつづけると、スプール領域が不足してシステムエラーが発生する場合があります。ある程度出力を行ったらクローズで印刷処理を実行してください。

ps_write(psfile, PS_WRITE_NORMAL, "SCREEN", &bill, 0);

psfile

表示ファイル識別子

PS_WRITE_NORMAL

出力の種類の1つ

"SCREEN"

定義体中のすべての項目を構成する項目群名

bill

項目群名"SCREEN"を構成するレコードデータ領域

出力の直前の文、

ps_set_formatsize(psfile, "BILL", s_BILL);

は、表示ファイル識別子psfileに対して、帳票定義体"BILL"を使用することを宣言しています。


WRITE BILL.

プリンタ装置に出力するには、表示レコードを指定したWRITE文を使います。WRITE文を実行する前には、MOVE文で以下の情報を設定しておく必要があります。

MOVE "BILL" TO PRT-FORMAT.

FORMAT句に指定したデータ名に画面帳票定義体"BILL"を指定します。

MOVE " " TO PRT-MODE.

入出力処理の種類を"通常出力"として指定します。

MOVE "SCREEN" TO PRT-GROUP.

GROUP句に指定したデータ名に、定義体中のすべての項目を構成する項目群名"SCREEN"を指定します。


3.2.1.3 入力

  データを入力する機能です。この機能は、バーコード項目またはID項目のときだけ有効であり、給紙直後でだけ可能です。入力は、必ず、給紙直後に行わなければならないため、バーコード項目とID項目の入力を続けて行うことはできません。

  入力を行う場合は、PRTACS(印刷形態)で「多目的プリンタ機能を使っての印刷を行う」を設定する必要があります。ただし、PowerFORMで作成した帳票定義体での入力はできません。

  また、入力の種類には、通常入力しかありません。必ず、通常入力を指定します。

  入力したデータは、利用者プログラムに通知します。プリンタの入力は次のように行います。

ps_set_formatsize(psfile, "BILL", s_BILL);

ps_read(psfile, PS_READ_NORMAL,"IDMARK", &bill, 0);

psfile

表示ファイル識別子

PS_READ_NORMAL

通常入力

"IDMARK"

入力対象のIDの項目名

bill

項目群名"IDMARK"を含むレコードデータ領域

入力の直前の文、

ps_set_formatsize(psfile, "BILL", s_BILL);

は、表示ファイル識別子psfileに対して、画面帳票定義体"BILL"を使用することを宣言しています。

入力が完了すると、読み込んだIDのデータが利用者プログラム内のレコードデータ領域に通知されます。

使用例:
psfile=ps_open("print", PS_OPEN_PRT, &Error, 0);
ps_set_formatsize(psfile, "BILL", s_BILL);
ps_control_printer(psfile, PS_CP_MODE, PS_CPMODE_2, 0);
ps_control_printer(psfile, PS_CP_LOAD, PS_CPLOAD_HOPPER, 0);
ps_read(psfile, PS_READ_NORMAL,"IDMARK", &bill, 0);
ps_control_printer(psfile, PS_CP_UNLOAD, PS_CPUNLOAD_STACKER1, 0);
ps_close(psfile, &Error);

READ プリンタファイル.

プリンタ装置から入力するには、表示ファイルを指定したREAD文を使います。READ文を実行する前には、MOVE文で以下の情報を設定しておく必要があります。

MOVE "BILL" TO PRT-FORMAT.

FORMAT句に指定したデータ名に画面帳票定義体"BILL"を指定します。

MOVE " " TO PRT-MODE.

入力処理の種類を"通常入力"として指定します。

MOVE "IDMARK" TO PRT-GROUP.

GROUP句に指定したデータ名に、入力対象の項目"IDMARK"を指定します。

COBOLで入力を実行するには、I-O指定のOPEN文を実行してください。

入力が完了すると、読み込んだIDのデータが利用者プログラム内のレコードデータ領域に通知されます。

使用例:
MOVE "BILL" TO PRT-FORMAT.
MOVE "CT" TO PRT-MODE.
MOVE "BIN " TO UNIT-CONTROL.
WRITE BILL.    ← 帳票モードの設定(単票処理モード)
MOVE "CT" TO PRT-MODE.
MOVE "LHP " TO UNIT-CONTROL.
WRITE BILL.   ← 用紙の給紙
MOVE "  " TO PRT-MODE.
MOVE "IDMARK" TO PRT-GROUP.
READ プリンタファイル.     ← IDの入力
MOVE "CT" TO PRT-MODE.
MOVE "US1 " TO UNIT-CONTROL.
WRITE BILL.   ← 用紙の排出
MOVE "CT" TO PRT-MODE.
MOVE "RST " TO UNIT-CONTROL.
WRITE BILL.   ← 帳票モードの解除

3.2.1.4 クローズ

  プリンタ装置への出力の終了宣言であり、オープン以外のMeFtの機能が使用できなくなります。

  クローズの実行後、実際の印刷が始まることがあります。

ps_close(psfile, &Error);

psfile

表示ファイル識別子

Error

クローズ異常終了時の通知コード格納領域


CLOSE プリンタファイル.