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

7.6.1 プリンタ装置の制御

【提供インタフェース】

  

【機能説明】

  プリンタの次の制御を行います。

  • 用紙の改ページ

  • 用紙の改行

  • 帳票処理の設定

  • 用紙の給紙

  • 用紙の排出

  • 矩形領域の出力範囲指定

  • 印刷のキャンセル

  • 段組みパーティションの改ブロック、フレームパーティションの改フレーム

  • XML入出力ファイル名指定(本バージョンでは指定できません)

  • 下端情報設定(COBOLのみ)

  用紙の改行、帳票処理の設定、用紙の給紙、および用紙の排出は多目的プリンタ機能です。詳細については多目的プリンタ機能を参照してください。

  矩形領域の出力範囲指定が有効となるのは、帳票定義体の形式が段組み伝票形式およびタックシール形式だけです。ただし、郵便番号は出力抑止の対象になりません。

  下端情報設定が有効となるのは、帳票定義体およびパーティション形式の画面帳票定義体です。

[形式]

PSINT PSFUNCTION ps_control_printer (
    PSFILE psfile,
    PSUSHORT mode,
    PSUSHORT detail,
    PSPVOID pExtension);

[パラメタ]

psfile

:

オープン処理で獲得した表示ファイル識別子を指定します。

mode

:

プリンタの制御方法を指定します。

PS_CP_NEWPAGE

:

用紙を改ページします。

PS_CP_NEWLINE

:

用紙を改行します。

PS_CP_MODE

:

帳票モードを指定します。デフォルトは連帳処理モードです。

PS_CP_LOAD

:

用紙の給紙方法を指定します。

PS_CP_UNLOAD

:

用紙の排紙方法を指定します。

PS_CP_PRCT

:

矩形領域の出力範囲を指定します。

PS_CP_PRINTCANCEL

:

印刷をキャンセルします。

PS_CP_BLOCK

:

段組みパーティションを改ブロック、または、フレームパーティションを改フレームします。

PS_CP_XMLFILENM

:

本バージョンでは指定できません。

detail

:

詳細情報を指定します。詳細情報はmodeで指定した値により異なります。値とその意味は以下のとおりです。

PS_CP_NEWPAGE

:

0を指定します。

PS_CP_NEWLINE

:

改行数を指定します。

PS_CP_MODE

:

帳票モードの詳細を指定します。

PS_CPMODE_1

:

自動単票処理モードを指定します。

PS_CPMODE_2

:

単票処理モードを指定します。

PS_CPMODE_3

:

元帳処理モードを指定します。

PS_CPMODE_RESET

:

モードを解除して、連帳処理モードになります。

PS_CP_LOAD

:

用紙の給紙方法の詳細を指定します。

PS_CPLOAD_MANUAL

:

手挿入口から単票を給紙します。

PS_CPLOAD_HOPPER

:

ホッパから単票を給紙します。

PS_CP_UNLOAD

:

用紙の排紙方法を指定します。

PS_CPUNLOAD_MANUAL

:

手挿入口から給紙している単票を排紙します。 PS_CPLOAD_HOPPERで給紙している場合は指定してはいけません。

PS_CPUNLOAD_STACKER1

:

給紙している単票をスタッカ1に排紙します。

PS_CPUNLOAD_STACKER2

:

給紙している単票をスタッカ2に排紙します。

PS_CP_PRCT

:

0を指定します。

PS_CP_PRINTCANCEL

:

0を指定します。

PS_CP_BLOCK

:

0を指定します。

PS_CP_XMLFILENM

:

本バージョンでは指定できません。

pExtension

:

modeがPS_CP_PRCTのとき有効で、範囲情報をさすポインタを設定します。それ以外は必ず0を指定します。

抑止情報のレコードデータの構造体を以下に示します。
struct {
    unsigned char pt_head;          /* ヘッダ出力情報     */
    unsigned char pt_foot;          /* フッタ出力情報     */
    unsigned short pt_rsv02;         /* 保留               */
    unsigned long pt_rsv04[5];      /* 保留               */
    unsigned char pt_startbody[4];  /* 印刷開始ボディ番号 */
    unsigned char pt_endbody[4];    /* 印刷終了ボディ番号 */
    };

pt_head

:

ヘッダの出力について数値(バイナリ)で指定します。
0:出力
1:抑止

pt_foot

:

フッタの出力について数値(バイナリ)で指定します。
0:出力
1:抑止

pt_startbody

:

印刷開始ボディ番号を数値の文字列で指定します。
'0001'~'0999':印刷開始番号
'0000':指定解除

pt_endbody

:

印刷終了ボディ番号を数値の文字列で指定します。
'0001'~'0999':印刷終了番号
'0000':指定解除

印刷開始番号は印刷終了番号よりも小さい値を設定してください。そうでない場合、印刷開始番号と印刷終了番号に設定している値は指定解除として動作します。また、上記の指定範囲外の設定は無視されます。

[使用例]

定義体を帳票に印刷後、改ページさせます。

PSFILE psfile;
SAMPLE samp;
PSUSHORT Error;
psfile = ps_open("PRTFILE", PS_OPEN_PRT, &Error, 0);
ps_set_formatsize(psfile,"SAMPLE",s_SAMPLE);
~ レコードデータ領域 samp へのデータ設定 ~
ps_write(psfile,PS_WRITE_NORMAL,"@ALLF",&samp,0);
ps_control_printer(psfile,PS_CP_NEWPAGE,0,0);

矩形領域の出力範囲を指定します。

typedef struct tagOUTCTL {
    unsigned char   head;       /* ヘッダ出力情報 '0':出力、'1':抑止  */
    unsigned char   foot;       /* フッタ出力情報 '0':出力、'1':抑止  */
    unsigned short  rsv02;      /* 保留                           */
    unsigned long   rsv04[5];   /* 保留                           */
    unsigned char   sbody[4];   /* 明細開始ボディ番号 '0000':指定なし */
    unsigned char   ebody[4];   /* 明細終了ボディ番号 '0000':指定なし */
} OUTCTL;
OUTCTL      sOutctl;
memset( &sOutctl, 0x00, sizeof( OUTCTL ) );
sOutctl.head = 0;
sOutctl.foot = 1;
memcpy( sOutctl.sbody, "0002", 4 );
memcpy( sOutctl.ebody, "0004", 4 );
rtn = ps_control_printer( pFile, PS_CP_PRCT, 0, pOutctl );
[診断]

  正常終了時には0が返されます。エラー発生時には1または2が返されます。psfileの指定に誤りがある場合には2が、それ以外のエラーの場合には1が返されます。1が返した場合には通知コードの獲得通知コードを獲得してエラー原因を識別できます。

  処理中にオペレータがタスクリストからの終了を選択すると-1が返されます。その場合、利用者プログラムは必ず実行を終了してください。

[形式]

PROCESSING MODE句とUNIT CONTROL句に指定する。

[パラメタ]

PROCESSING MODE句

:

"CT"を指定します。

UNIT CONTROL句

:

プリンタの制御方法を指定します。

PAGE

:

用紙を改ページします。

LVP

:

用紙を改行します。詳細情報(UNIT CONTROL句の下2桁)に改行数を指定します。

AIN

:

自動単票処理モードを指定します。

BIN

:

単票処理モードを指定します。

INS

:

元帳処理モードを指定します。

RST

:

モードを解除して、連帳処理モードになります。

LMS

:

手挿入口から単票を給紙します。

LHP

:

ホッパから単票を給紙します。

UMS

:

手挿入口から給紙している単票を排紙します。 LHPでホッパから給紙している場合は指定してはいけません。

US1

:

給紙している単票をスタッカ1に排紙します。

US2

:

給紙している単票をスタッカ2に排紙します。

PRCT

:

矩形領域の出力範囲を指定します。

CAN

:

印刷をキャンセルします。

BLCK

:

段組みパーティションを改ブロック、または、フレームパーティションを改フレームします。

XFIL

:

本バージョンでは指定できません。

ULMT

:

パーティションを配置および拡張可能な下端位置を設定します。COBOLのみ使用可能です。
詳細情報(UNIT CONTROL句の下2桁)に以下のいずれかを指定します。

PT

:

固定パーティション名を指定します。固定パーティションの開始位置まで出力可能となります。存在しないパーティション名や浮動パーティション名を指定した場合はMEFD_RC_FLD(24)エラーとなります。

LN

:

フリーフレーム形式以外の場合は帳票の先頭から、フリーフレーム形式の場合、フレームの先頭からの相対行位置を6桁以内の符号なし外部10進で指定します。6桁に満たない場合は空白またはNULL文字を設定してください。指定した行の直前までを出力可能な下端とします。横方向のフレームに定義されたパーティションの場合は指定できません。MEFD_RC_PARA(26)で復帰します。
帳票定義体やフレームのサイズを超える指定を行った場合もMEFD_RC_PARA(26)で復帰します。

DT

:

フリーフレーム形式以外の場合は帳票の先頭から、フリーフレーム形式の場合、フレームの先頭からの相対ドット位置(1/1440インチ)を6桁以内の符号なし外部10進で指定します。指定したドット位置までを出力可能な下端とします。6桁に満たない場合は空白またはNULL文字を設定してください。帳票定義体やフレームのサイズを超える指定を行った場合MEFD_RC_PARA(26)で復帰します。

RS

:

解除。
PT、LN,DTのいずれかにより設定された下端情報を解除します。
フリーフレーム形式以外の帳票定義体使用時は帳票定義体の縦幅がパーティション出力可能な下端となります。また、フリーフレーム形式の場合、出力方向が「縦」のフレームはフレームの縦幅、出力方向が「横」のフレームはフレームの横幅がそれぞれ出力可能な下端(右端)となります。

パーティションの出力を抑止する場合に使用するレコードを示します。

01

出力抑止レコード

03

ヘッダ出力情報

PIC X(1)

03

フッタ出力情報

PIC X(1)

03

FILLER

PIC X(22)

03

印刷開始ボディ番号

PIC X(4)

03

印刷終了ボディ番号

PIC X(4)

ヘッダ出力情報

ヘッダの出力について数値(バイナリ)で指定します。
0:出力
1:抑止

フッタ出力情報

フッタの出力について数値(バイナリ)で指定します。
0:出力
1:抑止

印刷開始ボディ番号

印刷開始ボディ番号を数値の文字列で指定します。
'0001'~'0999':印刷開始番号
'0000':指定解除

印刷終了ボディ番号

印刷終了ボディ番号を数値の文字列で指定します。
'0001'~'0999':印刷終了番号
'0000':指定解除

印刷開始番号は印刷終了番号よりも小さい値を設定してください。そうでない場合、印刷開始番号と印刷終了番号に設定している値は指定解除として動作します。また、上記の指定範囲外の設定は無視されます。

パーティションの出力可能な下端位置を指定する場合に使用するレコードを示します。

・UNIT CONTROL句の下2桁がPTの場合

固定パーティションの開始位置を出力可能な下端位置として指定します。

01

下端情報レコード

03

指定パーティション

PIC X(6)

03

FILLER

PIC X(2)

03

下端パーティション

PIC X(6)

03

FILLER

PIC X(2)

指定パーティション

出力可能な下端を指定するパーティションの名前を6文字以内で指定します。
6文字に満たない場合、空白またはNULL文字を設定してください。

下端パーティション

開始位置が下端となる固定パーティションの名前を6文字以内で指定します。
6文字に満たない場合、空白またはNULL文字を設定してください。

・UNIT CONTROL句の下2桁が'LN'または'DT'の場合

下端の位置を行で指定位置を出力可能な下端位置として指定します。

01

下端情報レコード

03

指定パーティション

PIC X(6)

03

FILLER

PIC X(2)

03

下端値

PIC 9(6)

03

FILLER

PIC X(2)

指定パーティション

出力可能な下端を指定するパーティションの名前を6文字以内で指定します。
6文字に満たない場合、空白またはNULL文字を設定してください。

下端値

下端の位置を6桁以内の外部10進数で指定します。6桁に満たない場合、空白またはNULL文字を設定してください。

・UNIT CONTROL句の下2桁が'RS'の場合

  PT,DT,RSのいずれかのレコードデータの形式で指定してください。指定パーティションのみ有効です。下端パーティションや下端値は指定しても無視されます。

[使用例]

定義体を帳票に印刷後、改ページさせます。

MOVE "SAMP" TO PRT-FORMAT.
MOVE "  " TO PRT-MODE.
MOVE "@ALLF" TO PRT-GROUP.
WRITE SAMP.
MOVE "CT" TO PRT-MODE.
MOVE "PAGE" TO UNIT-CONTROL.
WRITE SAMP.

矩形領域の出力範囲を指定します。

01  出力抑止レコード.
    03  ヘッダ出力情報           PIC X(01).
    03  フッタ出力情報           PIC X(01).
    03  FILLER                 PIC X(22).
    03  印刷開始ボディ番号        PIC X(04).
    03  印刷終了ボディ番号        PIC X(04).
* 出力抑止
MOVE  "CT"    TO  処理種別.
MOVE  "PRCT"  TO  制御情報.
MOVE  X"00"   TO  ヘッダ出力情報.
MOVE  X"01"   TO  フッタ出力情報.
MOVE  "0002"  TO  印刷開始ボディ番号.
MOVE  "0004"  TO  印刷終了ボディ番号.
WRITE  出力抑止レコード.

パーティションの配置および拡張可能な下端位置として固定パーティションを指定します。

01  下端情報レコード.
    03  指定パーティション    PIC  X(6).
    03  FILLER             PIC  X(2).
    03  下端パーティション    PIC  X(6).
    03  FILLER             PIC  X(2).
* 下端情報設定(下端パーティション指定)
MOVE   "CT"         TO  処理種別.
MOVE   "ULMT"       TO  制御情報.
MOVE   "PT"         TO  詳細情報.
MOVE   "DE"         TO  指定パーティション.
MOVE   "PF"         TO  下端パーティション.
WRITE  下端情報レコード.
* 下端パーティションとして"PF"を指定します。PFの直前までDEを出力可能となります。
  

パーティションの配置および拡張可能な下端位置として行位置を指定します。

01  下端情報レコード.
    03  指定パーティション    PIC  X(6).
    03  FILLER             PIC  X(2).
    03  下端値              PIC  9(6).
    03  FILLER             PIC  X(2).
* 下端情報設定(行位置指定)
MOVE   "CT"         TO  処理種別.
MOVE   "ULMT"       TO  制御情報.
MOVE   "LN"         TO  詳細情報.
MOVE   "DE"         TO  指定パーティション.
MOVE    51          TO  下端値.
WRITE  下端情報レコード.
* 下端値として51を指定します。50行目までDEを出力可能となります。
[診断]

  FILE STATUS句に通知コードが格納されます。

注意事項
  • 矩形領域の出力範囲指定が有効となる定義体はタックシール形式と段組み伝票形式です。それ以外の形式の定義体に対して指定した場合は無効です。

  • 矩形領域の出力範囲指定は対象となる定義体の出力よりも前に行ってください。

  • 矩形領域の出力範囲指定は指定解除を指定するまでの間に出力する定義体すべてに対して適応します。

  • 段組みパーティションの改ブロック指定を段組みパーティション形式以外で指定した場合は、用紙の改ページとして扱います。