ここでは、この製品で提供されているサンプルプログラム-sample08-について説明します。
sample08では、I制御レコード、CHARACTER TYPE句およびPRINTING POSITION句を使用して、さまざまな指定を行うFORMAT句なし印刷ファイルのプログラムの例を示します。
FORMAT句なし印刷ファイルの使い方の詳細は、“NetCOBOL ユーザーズガイド”の“行単位のデータを印刷する方法”および“7.3 フォームオーバレイおよびFCBを使う方法”を参照してください。
概要
FORMAT句なし印刷ファイルを使用して帳票印刷を行う場合、主に利用される機能を想定し、以下の項目について印刷デモを行います。
FCBを利用した任意の行間隔(6/8LPI)で帳票印刷を行うことを想定し、I制御レコードによるFCB(LPI)の切り替えを行います。ソースプログラムには、CHARACTER TYPE句やPRINTING POSITION句を記述して、行間隔(LPI)や文字間隔(CPI)などの行・桁を意識して帳票の体裁を整えます。
以下の帳票印刷を行います。
A4用紙を横向きに使用し、1ページすべての行間隔を6LPIとした場合の帳票をイメージし、6LPI/10CPIフォーマットのスぺーシングチャート形式のフォームオーバレイと重畳印刷します。
A4用紙を横向きに使用し、1ページすべての行間隔を8LPIとした場合の帳票をイメージし、8LPI/10CPIフォーマットのスぺーシングチャート形式のフォームオーバレイと重畳印刷します。
I制御レコードを使用し、用紙サイズをA4/横向きからB4/横向きに変更し、これにあわせてFCBもA4/横向き用からB4/横向き用に変更します。
以下の各種文字属性の印字サンプルを印刷装置に出力します。
文字サイズ
1文字ずつ3ポ、7.2ポ、9ポ、12ポ、18ポ、24ポ、36ポ、50ポ、72ポ、100ポ、200ポ、300ポの文字サイズを印字します。
参考
ここでは、文字ピッチ指定を省略することにより、文字サイズに合わせた最適な文字ピッチをCOBOLランタイムシステムに自動算出させます。
文字ピッチ
文字ピッチ1CPIで1文字、2CPIで2文字、3CPIで3文字、5CPIで5文字、6CPIで6文字、7.5CPIで15文字、20CPIで20文字、24CPIで24文字指定します。
参考
ここでは、文字サイズ指定を省略することにより、文字ピッチに合わせた最適な文字サイズをCOBOLランタイムシステムに自動算出させます。
文字書体
ゴシック、ゴシック半角(文字形態半角)、明朝、明朝半角(文字形態半角)を10文字ずつ二回繰り返し印字します。
文字回転
縦書き(反時計回りに90度回転)、横書きを10文字ずつ繰り返し印字します。
文字形態
全角、半角、全角平体、半角平体、全角長体、半角長体、全角倍角、半角倍角の文字形態指定を9文字ずつ印刷します。
上記5つの文字属性を組み合わせた印刷を行います。
提供プログラム
sample8.cob(COBOLソースプログラム)
kol5/A4L6(フォームオーバレイパターン)
kol5/A4L8(フォームオーバレイパターン)
kol5/B4OV(フォームオーバレイパターン)
fcb/A4L6(FCB)
fcb/A4L8(FCB)
fcb/LPI6(FCB)
infofile/PRTINFO.UVPI(印刷情報ファイル)
sample8.sh(実行用のシェル)
Makefile(メイクファイル)
使用しているCOBOLの機能
印刷ファイル
小入出力機能
使用しているCOBOLの文
ADD文
CLOSE文
DISPLAY文
IF文
MOVE文
OPEN文
PERFORM文
STOP文
WRITE文
翻訳、リンク
サンプル格納ディレクトリが“/home/samples/sample08”であると仮定します。
$ cd /home/samples/sample08 $ COBPATH=/home/samples/sample08; export COBPATH $ make …
実行方法
以下に、sample8の実行例を示します。
$ cd /home/samples/sample08 $ COBPATH=/home/samples/sample08; export COBPATH $ ./sample8.sh uvpi
プログラムが終了すると、印刷装置にデータが出力されます。
環境変数COBPATHには、sample08の資源を格納したディレクトリを絶対パスで指定してください。
注意
SELinuxを有効にした環境でサンプルプログラムを実行する場合は、印刷資源(フォームオーバレイ、FCBファイル)の配置に注意が必要です。詳細は、“PrintWalker/LXE説明書(機能編) ”を参照してください。