画面・帳票サポートシステム

XMAP3 プログラミングガイド 帳票編

解説・手引・操作書

3020-7-593-A0

目　　次

前書き

変更内容

はじめに

1.　帳票機能の概要

1.1　XMAP3で作成できる帳票

1.2　XMAP3の帳票設計の概要

1.3　帳票設計の流れ

1.3.1　作成する帳票を決定する

1.3.2　帳票用紙を設計する

1.3.3　帳票のレイアウトを定義する

1.3.4　 APをコーディングする

1.4　作成する帳票の決定

1.4.1　印刷対象プリンタと定義時の指定との関係

1.4.2　印刷モード（GDI，PDLスルー，FAXC/SPOOL出力，PDFファイル出力）

1.4.3　使用できる機能の確認

1.4.4　使用するAPIの確定

1.5　XMAP3関連ファイルの関係

1.6　帳票を設計する前に

1.6.1　帳票設計の基本用語の説明

1.6.2　帳票定義前の確認

2.　帳票とは

2.1　マップ帳票で使用できる機能

2.1.1　けい線帳票（シリアルインパクトプリンタ）で使用できる機能

2.1.2　プレプリント帳票（シリアルインパクトプリンタ）で使用できる機能

2.1.3　網掛け帳票（ページプリンタ）で使用できる機能

2.1.4　グラフィック帳票（ページプリンタ）で使用できる機能

2.2　書式オーバレイで使用できる機能

3.　帳票用紙の設計

3.1　けい線帳票の用紙設計

3.1.1　けい線帳票の用紙設計の流れ

3.1.2　用紙サイズの決定

3.1.3　ます目サイズの決定

3.1.4　連続紙とカット紙で印刷できる行列数

3.1.5　印字領域とレイアウト領域の決定

3.1.6　定義パターンの決定

3.1.7　印刷動作の指定

3.1.8　用紙排出の指定

3.1.9　けい線帳票の印刷方法

3.1.10　シリアルインパクトプリンタの印字合わせ

3.1.11　印刷ドキュメント名の指定

3.2　プレプリント帳票の用紙設計

3.2.1　プレプリント帳票の用紙設計の流れ

3.2.2　用紙サイズの決定

3.2.3　ます目サイズの決定

3.2.4　印字領域とレイアウト領域の決定

3.2.5　定義パターンの決定

3.2.6　印刷動作の指定

3.2.7　用紙排出の指定

3.2.8　プレプリント帳票の印刷方法

3.2.9　下敷き機能の利用

3.2.10　印刷ドキュメント名の指定

3.3　網掛け帳票の用紙設計

3.3.1　網掛け帳票の用紙設計の流れ

3.3.2　用紙サイズの決定

3.3.3　ます目サイズの決定

3.3.4　印刷できる行数と列数

3.3.5　印字領域の決定

3.3.6　定義パターンの決定

3.3.7　印刷部数の指定

3.3.8　印刷ドキュメント名の指定

3.4　グラフィック帳票の用紙設計

3.4.1　グラフィック帳票の用紙設計の流れ

3.4.2　用紙サイズの決定

3.4.3　ます目サイズの決定

3.4.4　印刷できる行数と列数

3.4.5　印字領域の決定

3.4.6　定義パターンの決定

3.4.7　印刷部数の指定

3.4.8　印刷ドキュメント名の指定

3.4.9　下敷き機能の利用

3.5　書式オーバレイの用紙設計

3.5.1　書式オーバレイの用紙設計の流れ

3.5.2　出力する行データの決定

3.5.3　印刷様式（定義パターン）の決定

3.5.4　印字領域

3.5.5　ます目の設定

3.5.6　印刷ドキュメント名の指定

3.5.7　下敷き機能の利用

4.　帳票レイアウト

4.1　帳票のレイアウト手順

4.1.1　マップ帳票のレイアウト手順

4.1.2　書式オーバレイのレイアウト手順

4.1.3　定義パターンおよび部品の登録

4.2　帳票レイアウトを構成するオブジェクト

4.2.1　けい線（直線，斜め線）

4.2.2　矩形

4.2.3　円と円弧

4.2.4　固定フィールド

4.2.5　出力フィールド

4.2.6　予約フィールド

4.2.7　網掛け

4.2.8　出力OCRの設計

4.2.9　バーコードの設計

4.2.10　日付と時刻

4.2.11　フレーム

4.2.12　グラフィック

4.3　部品の利用

4.4　データ名の編集

4.4.1　データ名編集ダイアログの機能

4.4.2　データ名編集ダイアログでの操作と注意事項

4.5　用紙サイズ変更時の設計

4.5.1　連続紙からカット紙への移行

4.5.2　カット紙間の移行

4.6　オブジェクト同士の重なり

4.6.1　定義対象と重なり印刷の関係

4.6.2　オブジェクト同士が重なったときの印刷

4.7　カーソルキーでのオブジェクトの移動

4.8　テスト印刷

4.8.1　印刷先の保存

4.8.2　ドローの操作

4.8.3　印刷時の注意事項

5.　論理マップ生成規則とマッピング規則

5.1　論理マップとは

5.1.1　論理マップの構成

5.1.2　論理マップ生成規則で使用する用語

5.1.3　生成される標準のデータ名

5.1.4　ターゲットでの論理マップの違い

5.1.5　出力テキスト（フィールド）の使用目的とデータ型

5.1.6　ドローセットアップとの関係

5.2　固定部の論理マップ生成規則とマッピング規則

5.2.1　固定部の出力論理マップ生成規則とマッピング規則

5.3　可変部の論理マップ生成規則とマッピング規則

5.3.1　可変項目の出力論理マップ生成規則とマッピング規則

5.3.2　コピー枚数の論理マップ生成規則

5.3.3　印刷ドキュメント名の論理マップ生成規則とマッピング規則

5.3.4　埋字と桁寄せに関するマッピング規則（出力フィールド）

5.3.5　バーコードの論理マップ生成規則とマッピング規則

5.3.6　OCRの出力論理マップ生成規則とマッピング規則

5.3.7　出力グラフィックの論理マップ生成規則とマッピング規則

5.3.8　制御項目の論理マップ生成規則とマッピング規則

5.3.9　日付／時刻の論理マップ生成規則とマッピング規則

5.3.10　予約フィールドのマッピング規則

6.　帳票定義とコーディングの関連

6.1　帳票定義とAPのコーディング

6.1.1　APのインタフェース

6.1.2　APのコーディング

6.2　帳票のオブジェクト定義とAPのコーディング

6.2.1　出力フィールドの利用

6.2.2　数字編集項目の利用

6.2.3　出力OCRの利用

6.2.4　出力バーコードの定義とAPの関連

6.2.5　連結出力バーコードの定義とAPの関連

6.2.6　日付・時刻とAPの関連

6.2.7　文字属性の動的変更とAPの関連

6.2.8　けい線の動的変更とAPの関連

6.2.9　フレーム（明細行）の定義とAPの関連

6.2.10　出力グラフィックの利用

6.2.11　埋字と桁寄せ向きの利用

6.2.12　重ね印刷（ページプリンタ）

6.2.13　APでの印刷部数指定

6.2.14　印刷ドキュメント名指定

6.3　書式オーバレイ定義とAPのコーディング

6.3.1　APのインタフェース

6.4　書式オーバレイの行データのコーディング

6.4.1　行制御データの概要

6.4.2　行データの編集方法

6.4.3　文字編集

7.　マップ帳票でのAPのコーディング方法

7.1　マップ帳票用APでのXMAP3の使用方法

7.1.1　XMAP3での帳票出力の基本

7.1.2　AP間でオープンを引き継ぐ場合

7.1.3　スプール単位出力

7.1.4　AP分割時の注意

7.1.5　プログラムでの命令とXMAP3の関係

7.1.6　帳票出力時のXMAP3とAPの関係

7.2　COBOLでの印刷命令

7.2.1　コーディング前の準備

7.2.2　仮想端末の自動割当て

7.2.3　論理マップの取り込み方法

7.2.4　帳票印刷命令

7.2.5　COBOL開発マネージャを使用したコンパイルと実行のポイント

7.2.6　COBOL開発マネージャでのXMAP3の利用方法

7.3　C言語での印刷命令

7.3.1　仮想端末の自動割当て

7.3.2　論理マップの取り込み方法

7.3.3　帳票印刷命令

7.3.4　C言語固有のコーディング例

7.4　汎用APインタフェース

7.4.1　関数の機能概要

7.4.2　汎用関数を使用した場合のC言語での印刷方法

7.4.3　Visual BasicおよびAccessでの印刷方法

7.4.4　Delphiでの印刷方法

7.4.5　文字編集DLL

7.5　帳票のFAX出力

7.6　 OLTPサーバ構成での帳票印刷

7.6.1　COBOLでの帳票印刷命令

7.6.2　C言語での帳票印刷命令

8.　書式オーバレイでのAPのコーディング方法

8.1　書式を利用したAPでのXMAP3の使用方法

8.1.1　XMAP3での書式出力の基本

8.1.2　スプール単位出力

8.1.3　帳票出力時のXMAP3とAPの関係

8.2　COBOLでの印刷命令

8.2.1　プリンタ出力用ファイルの定義

8.2.2　印刷する書式の設定

8.2.3　行データの帳票印刷

8.2.4　COBOL開発マネージャを使用したコンパイルと実行のポイント

8.3　C言語での印刷命令

8.3.1　印刷する書式の設定

8.3.2　行データの帳票印刷

8.4　汎用APインタフェース

8.4.1　関数の機能概要

8.4.2　文字編集DLL

8.4.3　汎用APインタフェースを使用したコーディング例

8.5　書式オーバレイの簡易印刷

8.6　書式オーバレイのFAX出力

9.　標準パターンを使用したAPの作成

9.1　標準パターン

9.1.1　帳票のパターンとプログラムのパターン

9.1.2　COBOLエディタからのAPパターンの利用

9.1.3　C言語用パターンの利用方法

9.2　APパターンを使用した機能別の作成例

9.2.1　APパターンの一覧

9.2.2　GENREP01パターン（COBOL）を使用した同一帳票の複数枚印刷

9.2.3　GENREP01パターン（COBOL）を使用した複数種類の帳票印刷

9.2.4　GENREP01パターン（C言語）を使用した同一帳票の複数枚印刷

9.2.5　GENREP02パターン（COBOL）を使用した同一帳票の複数枚印刷

9.2.6　GENOVL01パターン（COBOL）を使用した複数枚印刷

9.2.7　GENOVL01パターン（C言語）を使用した同一帳票の複数枚印刷

9.2.8　MODATR02部品を使用したフィールド属性およびけい線属性の変更

9.3　ユーザAP例

9.3.1　APサンプルのコンパイルと実行手順

9.3.2　COBOLでのグラフィック帳票出力例（標準帳票例題）

9.3.3　C言語でのグラフィック帳票出力例（帳票入門例題）

9.3.4　COBOLによるけい線の動的変更例（表サイズ変更例題）

9.3.5　COBOLによるフィールド属性の動的変更例（文字強調変更例題）

9.3.6　COBOLによるフィールドの重ね印字例（重ね印刷例題）

9.3.7　日立運用管理システムJP1を使用した例

9.3.8　COBOLでの標準的な書式オーバレイ例（標準書式例題）

9.3.9　COBOLでのコントロールブレークを利用した例（ブレーク項目例題）

9.3.10　COBOLでのCSVファイルを利用した書式印刷例（CSVファイル印刷例題）

9.3.11　FAX印刷例

9.3.12　Visual Basicを使用した書式印刷例

9.3.13　Delphiを使用した書式印刷例

10.　チューニングとトラブルの対処方法

10.1　性能向上のポイント

10.1.1　定義時のポイント

10.1.2　 AP作成時のポイント

10.1.3　実行時のポイント

10.2　トラブルの対処方法

10.2.1　日立COBOL使用時のトラブル

10.2.2　書式オーバレイ使用時の注意事項

10.2.3　印刷実行の対処方法

付録

付録A　属性情報一覧

付録A.1　けい線帳票属性

付録A.2　プレプリント帳票属性

付録A.3　網掛け帳票の帳票属性

付録A.4　グラフィック帳票の帳票属性

付録A.5　書式オーバレイの帳票属性

付録A.6　フィールド・けい線系の属性情報

付録A.7　バーコードの属性情報

付録A.8　グラフィックの属性情報

付録A.9　日付・時刻の表示形式と格納形式

付録A.10　標準提供動的変更テーブル

付録B　 XMAP3で提供している定義パターン

付録B.1　けい線帳票およびプレプリント帳票の定義パターン

付録B.2　網掛け帳票の定義パターン

付録B.3　グラフィック帳票の定義パターン

付録B.4　書式オーバレイの定義パターン

付録B.5　XMAP3で提供しているプログラムパターン

付録C　日立以外のコンパイラを使用するときの注意

付録C.1　他社COBOLとの仕様比較

付録C.2　 C言語を使用するときの注意

付録C.3　 Visual Basic， Delphi， Accessを使用するときの注意

付録D　帳票定義と書式定義の制限値

付録D.1　帳票オブジェクトの制限値

付録D.2　グラフィックデータの使用条件

付録D.3　書式オーバレイの1ページデータ量の制限

付録E　リターンコードの詳細

付録E.1　リターンコード

付録F　OCR文字コード

付録F.1　XMAP3で規定しているOCR文字コード表

付録F.2　OCRを使用するときの注意

付録G　用語解説

索引

[他社商品名称に関する表示]

All Rights Reserved. Copyright (C) 2001, 2006, Hitachi, Ltd.

前書き

■ 対象製品

P-262B-5344　 XMAP3/NET Version 4　 04-10（適用OS：Windows 95，Windows 98，Windows Me，Windows NT 4.0，Windows 2000，Windows XP，Windows Server 2003，Windows Server 2003 x64）
P-262B-534U　 XMAP3/NET Version 4 Upgrade　 04-10（適用OS：Windows 95，Windows 98，Windows Me，Windows NT 4.0，Windows 2000，Windows XP，Windows Server 2003，Windows Server 2003 x64）
P-262B-5744 　 XMAP3/REPORT3 Version 4　 04-10（適用OS：Windows 95，Windows 98，Windows Me，Windows NT 4.0，Windows 2000，Windows XP，Windows Server 2003，Windows Server 2003 x64）
P-262B-574U　 XMAP3/REPORT3 Version 4 Upgrade　 04-10（適用OS：Windows 95，Windows 98，Windows Me，Windows NT 4.0，Windows 2000，Windows XP，Windows Server 2003，Windows Server 2003 x64）
P-262B-5C44　 XMAP3/Enterprise Edition Version 4　 04-10（適用OS：Windows 95，Windows 98，Windows Me，Windows NT 4.0，Windows 2000，Windows XP，Windows Server 2003，Windows Server 2003 x64）
P-262B-5C4U　 XMAP3/Enterprise Edition Version 4 Upgrade　 04-10（適用OS：Windows 95，Windows 98，Windows Me，Windows NT 4.0，Windows 2000，Windows XP，Windows Server 2003，Windows Server 2003 x64）
P-F262B-54442　 XMAP3 印刷拡張機能 Version 4　 04-10（適用OS：Windows 95，Windows 98，Windows Me，Windows NT Workstation 4.0，Windows 2000 Professional，Windows XP）
P-F262B-54443　 XMAP3 印刷拡張機能 Server Version 4　 04-10（適用OS：Windows NT Server 4.0，Windows 2000 Server，Windows 2000 Advanced Server，Windows 2000 Datacenter Server，Windows Server 2003，Windows Server 2003 x64）

これらの製品は，ISO9001およびTickITの認証を受けた品質マネジメントシステムで開発されました。

■ 輸出時の注意

本製品を輸出される場合には，外国為替および外国貿易法ならびに米国の輸出管理関連法規などの規制をご確認の上，必要な手続きをお取りください。
なお，ご不明な場合は，弊社担当営業にお問い合わせください。

■ 商標類

Acrobatは，Adobe Systems Incorporated（アドビシステムズ社）の商標です。
Adobeは，Adobe Systems Incorporated（アドビシステムズ社）の商標です。
AIXは，米国における米国International Business Machines Corp.の登録商標です。
BackOfficeは，米国Microsoft Corp.の登録商標です。
Delphiは，米国Borland International,Inc.の登録商標です。
ESC/Pは，セイコーエプソン（株）の商標です。
HP-UXは，米国Hewlett-Packard Companyのオペレーティングシステムの名称です。
Itaniumは，アメリカ合衆国および他の国におけるインテル コーポレーションまたはその子会社の登録商標です。
Java 及びすべてのJava関連の商標及びロゴは，米国及びその他の国における米国Sun Microsystems,Inc.の商標または登録商標です。
JFIFは，C-Cube Microsystems 社が規定したフォーマットの名称です。
LBP-B406Eは，キヤノン（株）の商品名称です。
Linuxは，Linus Torvaldsの米国およびその他の国における登録商標あるいは商標です。
LIPSは，キヤノン（株）が開発した言語仕様です。
LIPSII+は，キヤノン（株）が開発した言語仕様です。
LIPSIIIは，キヤノン（株）が開発した言語仕様です。
Micro Focus COBOLは，Micro Focus International Limited の商標です。
Microsoftは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Microsoft Accessは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Microsoft Excelは，米国Microsoft Corp.の商品名称です。
MS-DOSは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
OLEは，米国Microsoft Corp.が開発したソフトウェア名称です。
PA-RISCは，米国Hewlett-Packard Companyの商標です。
Red Hatは，米国およびその他の国でRed Hat,Inc. の登録商標若しくは商標です。
Solarisは，米国Sun Microsystems,Inc. の米国およびその他の国における商標または登録商標です。
TurboLinuxの名称及びロゴは，TurboLinux,Inc. の商標です。
UNIXは，X/Open Company Limited が独占的にライセンスしている米国ならびに他の国における登録商標です。
Visual Basicは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Visual C++は，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Windowsは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Windows NTは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Windows Serverは，米国およびその他の国における米国Microsoft Corp. の商標です。

■ 発行

2001年 4月（第1版） 3020-7-593
2006年 9月（第11版） 3020-7-593-A0

■ 著作権

All Rights Reserved. Copyright (C) 2001, 2006, Hitachi, Ltd.

変更内容

変更内容（3020-7-593-A0）　XMAP3 Version 4　04-10

追加・変更内容 | 変更個所
Windows Server 2003 R2，Windows Server 2003 R2 x64に対応した。 | －

単なる誤字・脱字などはお断りなく訂正しました。

変更内容（3020-7-593-90）　XMAP3 Version 4　04-09

追加・変更内容

XMAP3 印刷拡張機能をサポートして，書体属性のフォントを，印刷拡張セットアップで指定したフォントに変更できるようにした。

使用目的が「日本語」のデータ型に「漢字（XX）」を追加した。

変更内容（3020-7-593-80）　XMAP3 Version 4　04-08

追加・変更内容

Windows Server 2003 x64に対応した。

けい線帳票およびプレプリント帳票の連続紙での印刷時に，改ページ動作をプリンタに任せる機能を追加した。

EAN-128バーコードのスタート／ストップキャラクタの印字幅を調整できるようにした。

書式オーバレイ印刷ユティリティコマンドで指定するテキストファイルの行データの上限値の説明を追加した。

書式オーバレイインタフェースの行データの上限値の説明を追加した。

変更内容（3020-7-593-70）　XMAP3 Version 4　04-07

追加・変更内容

EAN-128バーコードの印字幅を調整できるようにした。

はじめに

このマニュアルは，次に示すプログラムプロダクトの機能および使用方法について説明したものです。

P-262B-5344　XMAP3/NET Version 4

P-262B-534U　XMAP3/NET Version 4 Upgrade

P-262B-5744 　XMAP3/REPORT3 Version 4

P-262B-574U　XMAP3/REPORT3 Version 4 Upgrade

P-262B-5C44　XMAP3/Enterprise Edition Version 4

P-262B-5C4U　XMAP3/Enterprise Edition Version 4 Upgrade

このマニュアルでは，上記プログラムプロダクトをXMAP3と表記しています。

対象読者

XMAP3を使用して帳票または書式を作成し，運用する方を対象としています。また，次のことを前提としています。

Windowsの基本操作を習得していること。

COBOL，C言語，またはJavaの知識を持っていること。

マニュアルの構成

このマニュアルは，次に示す章と付録から構成されています。

第1章　帳票機能の概要

XMAP3での帳票作成の概要，および帳票作成の流れについて説明しています。

第2章　帳票とは

XMAP3で作成できる帳票について説明しています。

第3章　帳票用紙の設計

使用する帳票の用紙サイズ，帳票のます目サイズなどの設計について説明しています。

第4章　帳票レイアウト

帳票レイアウトの手順と，帳票定義時に配置する各オブジェクトの詳細について説明しています。

第5章　論理マップ生成規則とマッピング規則

帳票レイアウトを保存したときに生成される論理マップと，マッピング規則の関係について説明しています。

第6章　帳票定義とコーディングの関連

帳票の定義，論理マップ，およびAPとの関連について説明しています。

第7章　マップ帳票でのAPのコーディング方法

生成したマップを使用してAPを作成する方法について説明しています。

第8章　書式オーバレイでのAPのコーディング方法

書式オーバレイでのAPを作成する方法について説明しています。

第9章　標準パターンを使用したAPの作成

XMAP3が用意している帳票の定義サンプルと，APのパターンを組み合わせてCOBOLソースプログラムを作成する方法について説明しています。

第10章　チューニングとトラブルの対処方法

実行時の性能向上のポイントや，トラブル発生時の対処方法について説明しています。

付録A　属性情報一覧

付録B　XMAP3で提供している定義パターン

付録C　日立以外のコンパイラを使用するときの注意

付録D　帳票定義と書式定義の制限値

付録E　リターンコードの詳細

付録F　OCR文字コード

付録G　用語解説

マニュアル体系図

XMAP3のマニュアル体系を次に示します。

関連マニュアル

このマニュアルに関連するマニュアルを次に示します。

画面・帳票サポートシステム XMAP3 開発・実行ガイド（3020-7-591）

画面・帳票サポートシステム XMAP3 入門（3020-7-592）

画面・帳票サポートシステム XMAP3 プログラミングガイド 画面編（3020-7-594）

画面・帳票サポートシステム XMAP3 メインフレーム連携ガイド（3020-7-595）

画面・帳票サポートシステム XMAP3/Web（3020-7-596）

画面・帳票サポートシステム XMAP3/Web for Cosminexus（3020-7-597）

画面・帳票サポートシステム XMAP3 Server（3000-7-508）

COBOL85 言語（3020-3-782）

COBOL85 操作ガイド（3020-3-851）※1

COBOL85 ユーザーズガイド（3020-3-852）

COBOL85 操作ガイド（3020-3-873）

COBOL2002 操作ガイド（3020-3-D41）

COBOL2002 ユーザーズガイド（3020-3-D42）

COBOL2002 言語 標準仕様編（3020-3-D44）

COBOL2002 言語 拡張仕様編（3020-3-D45）

Windows NT FAXコネクション Version3.0 ユーザーズガイド（3020-3-740）

OpenTP1 Version 5 分散トランザクション処理機能 OpenTP1 プロトコル TP1/NET/XMAP3編（3000-3-375）※2

OpenTP1 Version 6 分散トランザクション処理機能 OpenTP1 プロトコル TP1/NET/XMAP3編（3000-3-965）※2

注※1

COBOL85 Version 5.0の場合にお読みください。

注※2

このマニュアルの本文では，OpenTP1関連マニュアルのタイトルにある「バージョン表記」を省略しています。省略した表記を次に示します。

マニュアル名
このマニュアルでの表記

「OpenTP1 Version 5 分散トランザクション処理機能 OpenTP1 プロトコル TP1/NET/XMAP3編」
「OpenTP1 Version 6 分散トランザクション処理機能 OpenTP1 プロトコル TP1/NET/XMAP3編」
「OpenTP1 プロトコル TP1/NET/XMAP3編」

このマニュアルでの表記

このマニュアルでは各製品を次のように表記しています。

製品名
略称

AIX 5L V5.1
AIX

AIX 5L V5.2

AIX 5L V5.3

COBOL2002 Net Client Suite
COBOL2002
日立COBOL

COBOL2002 Net Developer

COBOL2002 Net Server Suite

COBOL85 Server Version 6
COBOL85

COBOL85 Server Version 7

COBOL85 Version 5.0

COBOL85 Version 6

COBOL85 Version 7

COBOL85 Version 7 for Server OS - Client Use

HP-UX 10.20
HP-UX

HP-UX 11

HP-UX 11i

HP-UX 11i V2（IPF）

HP-UX 11i V2（PA-RISC）

Java(TM)
Java

Microsoft Access(R)
Access

Microsoft(R) Excel
Excel

Microsoft(R) Windows(R) 95 Operating System
Windows 95

Microsoft(R) Windows(R) 98 Operating System
Windows 98

Microsoft(R) Windows(R) Millennium Edition Operating System
Windows Me

Microsoft(R) Windows NT(R) Server Network Operating System Version 4.0
Windows NT Server 4.0
Windows NT
（またはWindows NT 4.0）

Microsoft(R) Windows NT(R) Server，Enterprise Edition 4.0

Microsoft(R) BackOffice(R) Small Business Server Version 4.0

Microsoft(R) Windows NT(R) Workstation Operating System Version 4.0
Windows NT
Workstation 4.0

Microsoft(R) Windows (R) 2000 Server Operating System
Windows 2000 Server
Windows 2000

Microsoft(R) Windows(R) 2000 Advanced Server Operating System
Windows 2000 Advanced Server

Microsoft(R) Windows(R) 2000 Datacenter Server Operating System
Windows 2000 Datacenter Server

Microsoft(R) Windows(R) 2000 Professional Operating System
Windows 2000
Professional

Microsoft(R) Windows(R) XP Professional Operating System
Windows XP
Professional
Windows XP

Microsoft(R) Windows(R) XP Home Edition Operating System
Windows XP
Home Edition

Microsoft(R) Windows Server(TM) 2003, Standard Edition 日本語版
Windows Server 2003

Microsoft(R) Windows Server(TM) 2003, Enterprise Edition 日本語版

Microsoft(R) Windows Server(TM) 2003 R2, Standard Edition 日本語版

Microsoft(R) Windows Server(TM) 2003 R2, Enterprise Edition 日本語版

Microsoft(R) Windows Server(TM) 2003, Standard x64 Edition 日本語版
Windows Server 2003 x64

Microsoft(R) Windows Server(TM) 2003, Enterprise x64 Edition 日本語版

Microsoft(R) Windows Server(TM) 2003 R2, Standard x64 Edition 日本語版

Microsoft(R) Windows Server(TM) 2003 R2, Enterprise x64 Edition 日本語版

MS-DOS(R) Version 5.0/V以降
MS-DOS

Solaris 7
Solaris

Solaris 8

Solaris 9

TP1/Message Control
TP1/MCF

TP1/NET/Library

TP1/NET/XMAP3

TurboLinux Server 日本語版 6.1
Linux

Red Hat Linux 6.2J

Microsoft(R) Visual Basic(R)
Visual Basic(またはVB)

Microsoft(R) Visual C++(R)
Visual C++

Microsoft(R) Visual C++(R) .NET 2002
Visual C++ .NET

Microsoft(R) Visual C++(R) .NET 2003

XMAP3/Enterprise Edition Version 4
XMAP3/Enterprise Edition

XMAP3/NET Version 4
XMAP3/NET

XMAP3 印刷拡張機能 Version 4
XMAP3 印刷拡張機能

XMAP3 印刷拡張機能 Server Version 4

Microsoft(R) Windows Server(TM) 2003 R2, Standard Edition 日本語版，Microsoft(R) Windows Server(TM) 2003 R2, Enterprise Edition 日本語版をWindows Server 2003 R2と表記します。Microsoft(R) Windows Server(TM) 2003 R2, Standard x64 Edition 日本語版，Microsoft(R) Windows Server(TM) 2003 R2, Enterprise x64 Edition 日本語版を，Windows Server 2003 R2 x64と表記します。

Windows 95，Windows 98，Windows Me，Windows NT，Windows 2000，Windows XP，Windows Server 2003，およびWindows Server 2003 x64に機能差がない場合，Windowsと表記します。

AIX，HP-UX，Solaris，およびLinuxで機能差がない場合，WSと表記します。

COBOL85 Server Version 6およびCOBOL85 Version 6を合わせて，COBOL85 Version 6と表記します。

COBOL85 Server Version 7，COBOL85 Version 7，およびCOBOL85 Version 7 for Server OS - Client Useを合わせて，COBOL85 Version 7と表記します。

このマニュアルで使用する略語

このマニュアルでは，次に示す用語を略して表現しています。

略称 | 正式名称
AP | Application Program
API | Application Programming Interface
C/Sシステム | Client/Server System
CPU | Central Processing Unit
CSV | Comma Separated Value
CUI | Character User Interface
DCT | Digital Capture Technology
DLL | Dynamic Linking Library
EUC | Extended UNIX Code
GDI | Graphical Device Interface
GUI | Graphical User Interface
IPF | Itanium(R) Processor Family
JFIF | JPEG File Interchange Format
JIS | Japanese Industrial Standard
JPEG | Joint Photographic Experts Group
LAN | Local Area Network
LBP | Laser Beam Printer
LIPS | LBP Image Processing System
OCR | Optical Character Reader
OLE | Object Linking and Embedding
OLTP | Online Transaction Processing
OS | Operating System
PC | Personal Computer
PDF | Portable Document Format
PDL | Page Description Language
RAM | Random Access Memory
TCP/IP | Transmission Control Protocol/Internet Protocol
WAN | Wide Area Network
WS | Workstation

このマニュアルで使用する記号

このマニュアルで使用する記号を次のように定義しています。

記号
意味

［　　］
メニュータイトル，メニュー項目，ボタン，キー，およびアイコンの名称を示す。
例：［ファイル］メニュー
　　［OK］ボタン
　　［Enter］キー など

［　　］+［　　］
+の前のキーを押したまま，後ろのキーを押すことを示す。
例：［Shift］+［A］キー
　　［Shift］キーを押したまま［A］キーを押すことを示す。

［　　］－［　　］
例：［ファイル］－［開く］
　　［ファイル］メニューから［開く］コマンドを選択することを示す。

△
半角の空白を入れること，またはスペースキーを指定された数だけ押すことを示す。
（例）＊XP△：＊XPの後ろに空白一つを入れることを示す。

〔　〕
この記号で囲まれている項目は，省略してもよいことを示す。

図中で使用する記号

このマニュアルの図中で使用する記号を次のように定義します。

オンラインヘルプの紹介

XMAP3では，オンラインヘルプ（以降，ヘルプと呼びます）を提供しています。ヘルプでは，詳細な操作手順，トラブルの対処方法，用語，ダイアログやウィンドウの項目の説明などを参照できます。

常用漢字以外の漢字の使用について

このマニュアルでは，常用漢字を使用することを基本としていますが，次の用語については，常用漢字以外の漢字を使用しています。

宛先（あてさき）　　個所（かしょ）　　矩形（くけい）　　桁（けた）　　毎（ごと）　　揃える（そろえる）　　貼り付け（はりつけ）　　汎用（はんよう）　　必須（ひっす）

KB（キロバイト）などの単位表記について

1KB（キロバイト），1MB（メガバイト），1GB（ギガバイト），1TB（テラバイト）は，それぞれ1,024バイト，1,024²バイト，1,024³バイト，1,024⁴バイトです。

1.　帳票機能の概要

この章では，XMAP3で作成できる帳票と書式，およびそれらを作成する前に知っておかなければならない事項について説明します。

＜この章の構成＞

1.1　XMAP3で作成できる帳票

1.2　XMAP3の帳票設計の概要

1.3　帳票設計の流れ

1.4　作成する帳票の決定

1.5　XMAP3関連ファイルの関係

1.6　帳票を設計する前に

1.1　XMAP3で作成できる帳票

XMAP3で作成できる帳票には，シリアルインパクトプリンタ用とページプリンタ用の2種類に大きく分けられます。シリアルインパクトプリンタ用として作成できる帳票には，けい線帳票（カット紙／連続紙），およびプレプリント帳票（カット紙／連続紙）があります。また，ページプリンタ用として作成できる帳票には，網掛け帳票，グラフィック帳票，および書式オーバレイがあります。

なお，特に区別する必要がない場合，けい線帳票，プレプリント帳票，網掛け帳票，およびグラフィック帳票をまとめてマップ帳票と呼びます。

XMAP3で作成できる帳票の特長を次の表に示します。

表1-1　帳票の特長

プリンタの種類
帳票の種別
特長

シリアルインパクトプリンタ用
マップ帳票
けい線帳票
文字とけい線の印字ができます。
配置は，行列単位で行います。

プレプリント帳票
文字だけを印字します。
行列にとらわれない，プレプリント紙への自由な配置（ミリまたはドット単位）ができます。

ページプリンタ用
網掛け帳票
けい線帳票に加え，網掛けが使用できます（ただし，OCRは使用できません）。
配置は，行列単位で行います。
プリンタ以外にPDFファイルへも出力できます。

グラフィック帳票
網掛け帳票に加え，円，円弧，斜め線，バーコード，OCR，イメージデータ，カラー文字などの印刷ができます。
行列にとらわれないで，自由に配置できます。
プリンタ以外にPDFファイルへも出力できます。

書式オーバレイ※
固定部分（書式）は，グラフィック帳票と同じオブジェクトが配置できます。可変部分には，APからの行データが，オーバレイされて印刷されます。
プリンタ以外にPDFファイルへも出力できます。

注※

書式オーバレイはOLTPサーバ構成，XMAP3/Web，およびXMAP3/Web for Cosminexusの環境では利用できません。

1.2　XMAP3の帳票設計の概要

XMAP3では，帳票のレイアウト（定義）とAPの処理を分離したマッピング方法を採用しています。このため，帳票を設計する際には，帳票のレイアウト定義とコーディング作業とを分離できます。帳票の定義とAPとを独立させることで，プログラムを効率良く作成できます。

＜この節の構成＞

(1)　マップ帳票の場合

(2)　書式オーバレイの場合

(1)　マップ帳票の場合

帳票を定義すると登録集原文が「論理マップ」として生成されます。XMAP3で生成された論理マップを，APでCOPY文で取り込んで使用すれば，効率良くAPを開発できます。データ名をあらかじめ決めておくことで，レイアウト定義で配置したオブジェクトの位置を意識することなく，APをコーディングできます。

マップ帳票のレイアウト定義とAPの関係を次の図に示します。

図1-1　マップ帳票のレイアウト定義とAPの関係

(2)　書式オーバレイの場合

APで行データファイルを指定すれば，行データに定義した書式がオーバレイ印刷されます。書式レイアウト定義時に行制御データや書式イメージファイルが出力されるため，レイアウト定義の情報を意識することなく，APをコーディングできます。

書式オーバレイのレイアウト定義とAPの関係を次の図に示します。

図1-2　書式オーバレイのレイアウト定義とAPの関係

1.3　帳票設計の流れ

XMAP3では，次のような流れで帳票を設計します。

作成する帳票を決定する

帳票用紙を設計する

帳票のレイアウトを定義する

APをコーディングする

それぞれの手順の概要を次に示します。

＜この節の構成＞

1.3.1　作成する帳票を決定する

1.3.2　帳票用紙を設計する

1.3.3　帳票のレイアウトを定義する

1.3.4　 APをコーディングする

1.3.1　作成する帳票を決定する

XMAP3を使用して帳票を作成する場合，「帳票のスタイルは何か」，「使用するプリンタは何か」，「使用するAPIは何か」を検討し，作成する帳票（定義対象）をあらかじめ決めておく必要があります。作成する帳票の決定のしかたについては，「1.4　作成する帳票の決定」を参照してください。

使用するプリンタとXMAP3で作成する帳票との関連を次の表に示します。

表1-2　XMAP3で作成する帳票と使用するプリンタとの関連

プリンタハードウェア
APインタフェース
（API）
XMAP3での定義対象

インパクトプリンタ

シリアルインパクトプ
リンタ

ドットプリンタ

ラインプリンタ

インサータ付プリンタ

（180dpiのプリンタを想定）
ページ単位での出力
シリアルインパクトプリンタ

けい線帳票（連続紙またはカット紙）

プレプリント帳票（連続紙またはカット紙）

ノンインパクトプリンタ

ページプリンタ

レーザビームプリンタ

（240dpi以上のプリンタを想定）
ページ単位での出力
ページプリンタ

網掛け帳票

グラフィック帳票

行単位での出力
ページプリンタ

書式オーバレイ

1.3.2　帳票用紙を設計する

作成する帳票の用紙サイズ，帳票に配置する文字の大きさ，帳票の印字領域などを設計します。

帳票用紙の設計については，「3.　帳票用紙の設計」を参照してください。

1.3.3　帳票のレイアウトを定義する

帳票用紙の設計で決定した帳票の仕様を基に，ドロー機能を使用して帳票のレイアウトを定義します。レイアウト定義後，保存をすると，帳票の定義情報を格納したファイル（マップ定義ファイル）が生成されます。

帳票のレイアウトについては，「4.　帳票レイアウト」を参照してください。

1.3.4　 APをコーディングする

レイアウト定義で作成された定義ファイルを使用して，APを作成します。マップ帳票については，COBOLやC言語用の論理マップが生成されるため，AP開発言語はCOBOLやC言語が中心になります。また，XMAP3では言語に依存しないマッピング関数も用意しているので，Visual BasicやDelphiも利用できます。

マップ帳票のAPを作成する場合と，書式オーバレイのAPを作成する場合に参照する章を次に示します。

マップ帳票の場合 | 書式オーバレイの場合
6.　帳票定義とコーディングの関連
7.　マップ帳票でのAPのコーディング方法 | 8.　書式オーバレイでのAPのコーディング方法
9.　標準パターンを使用したAPの作成

XMAP3/Web for Cosminexusを使用してCosminexus上で実行する場合

XMAP3で開発した画面・帳票は，XMAP3/Web for Cosminexusを使用して，Cosminexus上で実行することもできます。この場合，AP開発言語には，JavaまたはCOBOLが使用できます。XMAP3/Web for Cosminexusを使用したAPの作成については，マニュアル「XMAP3/Web for Cosminexus」を参照してください。

Javaの場合，Java言語用ツールを使用して動的変更テーブルおよび論理マップをXMLファイルに変換する必要があります。Java言語用ツールの使用方法については，マニュアル「XMAP3 開発・実行ガイド」を参照してください。

なお，XMAP3/Web for Cosminexusの環境では，書式オーバレイは利用できません。

1.4　作成する帳票の決定

作成する帳票を決める場合，「使用するプリンタは何か」，「印刷モードは何か」などを考慮した上で，作成する帳票を選ぶ必要があります（定義対象の選択）。ここでは，定義対象を選択するときの手順を説明します。

APから見た印刷対象プリンタは何か

シリアルインパクトプリンタへの印刷か

ページプリンタへの印刷か

ページプリンタ／シリアルインパクトプリンタ共用か
APから，シリアルインパクトプリンタに印刷したり，ページプリンタに印刷したりする使い方を共用といいます。ファクシミリ（以降，FAX）への出力は，この扱いになります。

プレプリントへの印刷か
プレプリント紙を使用する場合は，シリアルインパクトの扱いになります。

詳細は，「1.4.1　印刷対象プリンタと定義時の指定との関係」を参照してください。

印刷モードは何か

GDIによるWindowsプリンタ印刷か
スプールデータ形式：EMF

PDLスルーによる特定のプリンタへの印刷か
スプールデータ形式：RAW

詳細は，「1.4.2　印刷モード（GDI，PDLスルー，FAXC/SPOOL出力，PDFファイル出力）」を参照してください。

使用できる機能の確認

文字サイズ，けい線，バーコードなど

詳細は，「1.4.3　使用できる機能の確認」を参照してください。

使用するAPIとAPの記述言語の確定

ページ単位か行単位か

詳細は，「1.4.4　使用するAPIの確定」を参照してください。

＜この節の構成＞

1.4.1　印刷対象プリンタと定義時の指定との関係

1.4.2　印刷モード（GDI，PDLスルー，FAXC/SPOOL出力，PDFファイル出力）

1.4.3　使用できる機能の確認

1.4.4　使用するAPIの確定

1.4.1　印刷対象プリンタと定義時の指定との関係

印刷対象プリンタと定義時の指定との関係を次の表に示します。

表1-3　印刷対象プリンタと定義時の指定との関係

印刷するプリンタハードウェア
印刷対象用紙
AP言語
ドローで指定する定義対象

COBOL
C
VB，Delphi，
Accessなど
Java

シリアルインパクトプリンタ※¹
180dpi
汎用用紙
○
○
○※4
○
けい線帳票（連続紙／カット紙）
プレプリント帳票（連続紙／カット紙）

プレプリント用紙
○
○
○※4
○

ページプリンタ※²
240／300，480／600dpiなど
汎用用紙
○
○
○※4
○
網掛け帳票，グラフィック帳票

○
○
○
×
書式オーバレイ

インクジェットプリンタ※³
360dpiなど
汎用用紙
○
○
○※4
○
網掛け帳票，グラフィック帳票

○
○
○
×
書式オーバレイ

（凡例）

○：使用できる。

×：使用できない。

注※1

シリアルインパクトプリンタは，ドットプリンタ，インパクトプリンタ，ラインプリンタともいいます。

注※2

ページプリンタは，レーザビームプリンタともいいます。

注※3

インクジェットプリンタは，バブルジェットプリンタともいいます。

注※4

論理マップは，APとともにコーディングが必要です。

ドローで指定する定義対象は，XMAP3の新規作成ダイアログで指定します。新規作成ダイアログを次に示します。

1.4.2　印刷モード（GDI，PDLスルー，FAXC/SPOOL出力，PDFファイル出力）

印刷モードには，GDIモード，PDLスルーモード，FAXC/SPOOL出力モード，およびPDFファイル出力モードがあります。使用する印刷モードによって，使用条件が変わります。

GDIモード
WindowsがAPに提供する機能で，シリアルインパクトプリンタ，ページプリンタ共用に使用できる印刷モードです。

PDLスルーモード
PDLスルーモードには，LIPSとESC/Pがあります。LIPSはページプリンタ専用の印刷モードです。ESC/Pはシリアルインパクトプリンタ専用のモードになります。

FAXC/SPOOL出力モード
FAXC/SPOOLと連携してFAX出力する場合の専用の印刷モードです。なお，一般のFAX通信プログラムを使用する場合は，GDIモードとなります。

PDFファイル出力モード
PDFファイルに出力する場合の印刷モードです。ページプリンタ用の帳票および書式オーバレイで使用できます。

＜この項の構成＞

(1)　印刷モード選択のポイント

(2)　印刷モードの設定

(1)　印刷モード選択のポイント

FAXC/SPOOL，PDFファイル出力を除いて，プリンタへ帳票を印刷するときの印刷モードは通常，GDIモードを使用することをお勧めしますが，次の条件のときは，PDLスルーモードを使用してください。

印刷性能を重視したい，またはPC側のCPUの負荷を軽くしたい。

日立拡張プリンタマネージャと連携して，エラーリカバリしたい。

プリンタのフォントを利用したい。

連続紙で改ページ制御をしたい。

排紙方向を決めたい（日立インサータ付プリンタの場合）。

プリンタへ帳票を印刷するときの印刷モードの選択基準と詳細を次の表に示します。

表1-4　印刷モードの選択基準（シリアルインパクトプリンタ）

項目
GDI
PDL

LIPS
ESC/P

運用面
○
－
△
使用するプリンタが限定されます

性能／リカバリ
△
データ量が多くなります
－
○

印刷仕様
○
Windowsのフォントを使用するためプリンタに関係なく一定です
－
△
ハードウェアのフォントに依存します

FAX印刷
○※
－
×

（凡例）

○：使用できる。

△：一部使用できない。

×：使用できない。

－：該当しない。

注※

FAXC/SPOOLを使用しないで，一般のFAX通信プログラムでFAXを出力する場合に使用できます。

表1-5　印刷モードの選択基準（ページプリンタ）

項目
GDI
PDL

LIPS
ESC/P

運用面
○
△
使用するプリンタが限定されます
－

性能／リカバリ
△
データ量が多くなります
○
－

印刷仕様
○
Windowsのフォントを使用するためプリンタに関係なく一定です
△
ハードウェアのフォントに依存します
－

FAX印刷
○※
×
－

（凡例）

○：使用できる。

△：一部使用できない。

×：使用できない。

－：該当しない。

注※

FAXC/SPOOLを使用しないで，一般のFAX通信プログラムでFAXを出力する場合に使用できます。

表1-6　印刷モードの選択基準（運用面）

項目
GDI
PDL

LIPS
ESC/P

LIPS，ESC/P以外のプリンタ
○
×
×

シリアルインパクト／ページ共通の印刷※1
○
×
×

日立製インサータプリンタでの用紙の吸入／排出制御※2
×
－
○

連続紙への改ページ制御
×
－
○

連続紙へのベタ打ち
○
－
○

マージン指定／印刷領域
○
ドロー定義に従います
○
ドロー定義に従います
○
ドロー定義に従います

カラー印刷
○
×
×

給紙トレイ制御※3
○
×
×

（凡例）

○：使用できる。

×：使用できない。

－：該当しない。

注※1

両PDLをサポートしているプリンタは除きます。

注※2

プリンタドライバによって用紙が制御されるため，用紙サイズや吸入制御，および排紙制御で注意が必要になります。

注※3

XMAP3 印刷拡張機能がインストールされている実行環境で利用できます。

表1-7　印刷モードの選択基準（性能／リカバリ）

項目
GDI
PDL

LIPS
ESC/P

日立拡張プリンタマネージャによるエラーリカバリ
×
○
○

日立JP1/Network Printing Systemによるエラーリカバリ
○
×
×

両面印刷／縮小印刷
○
プリンタドライバの設定に従います
×
×

スプール上のデータ量／CPU負荷
×
多くなります
○
PDL表現によって少なくなります
○
PDL表現によって少なくなります

（凡例）

○：使用できる。

×：使用できない。

表1-8　印刷モードの選択基準（印刷仕様）

項目 | GDI | PDL
LIPS | ESC/P
けい線 | Windowsスタイル | プリンタ依存 | イメージデータでの印刷
矩形のラウンドコーナ | Windowsスタイル | プリンタ依存 | イメージデータでの印刷
網掛け | Windowsスタイル | プリンタ依存 | －
フォント 内字 | Windowsスタイル※1 | プリンタ依存（内蔵フォント） | プリンタ依存（内蔵フォント）
フォント 外字 | Windowsスタイル | Windowsスタイル | Windowsスタイル
文字サイズ | Windowsスタイル | プリンタ依存 | －
書体 | Windowsスタイル | プリンタ依存 | －
文字の強調 | Windowsスタイル | プリンタ依存 | －
グラフィック | Windowsスタイル | プリンタ依存 | －
バーコード | イメージデータによる印刷※2 | イメージデータによる印刷※2 | イメージデータによる印刷※2
OCR | イメージデータによる印刷※2 | イメージデータによる印刷※2 | イメージデータによる印刷※2

（凡例）

－：該当しない。

注※1

プリンタドライバの設定によっては，プリンタ内蔵フォントに置き換えられて使用されます。

XMAP3 印刷拡張機能をインストールすると，標準／明朝／ゴシックの書体に対する出力時のフォントを，任意のフォントに変更できます。

注※2

イメージデータでの印刷とは，XMAP3が持っているドットパターンでの印刷になります。

(2)　印刷モードの設定

印刷モードは，「表示・印刷セットアップ」の「プリンタ」タブで設定します。印刷モードの設定の詳細については，マニュアル「XMAP3 開発・実行ガイド」を参照してください。

1.4.3　使用できる機能の確認

XMAP3では，定義対象ごとに使用できる機能が変わります。これから作成する帳票で使用する機能を考慮してから定義対象を選んでください。定義対象と使用できる機能を次の表に示します。

表1-9　けい線帳票（シリアルインパクト）で使用できる機能

機能
連続紙
カット紙
備考

ESC/P
GDI
ESC/P
GDI

用紙制御

用紙サイズ
－
－
－
－
A4／B4（縦横）

マージン設定
－
－
－
－
なし

行間隔（LPI）
○
○
○
○
6／8LPI

改ページ動作
○
×
－
－
印刷前／印刷後／しない

用紙の排出方向
－
－
○
×
前方／後方／しない

印刷部数（コピー枚数）
－
－
－
－
なし

印刷ドキュメント名
○
○
○
○
259文字以内

文字印刷

文字サイズ
7
－
－
－
－
なし

9（相当）
○
○
○
○

文字の拡大
標準
○
○
○
○

平体
○
○
○
○

長体
○
○
○
○

倍角
○
○
○
○

文字の間隔
ポイント指定
○
○
○
○
0～7ポイント

CPI指定
○
○
○
○
10／12／15CPI

テキスト揃え
中央
○
○
○
○
なし

左
○
○
○
○

右
○
○
○
○

均等
○
○
○
○

外字
○
○
○
○

書体
明朝相当
（標準）
○
○※1
○
○※1

オブジェクト

固定フィールド
○
○
○
○
日本語，英数

出力フィールド
○
○
○
○
日本語，英数，数字

予約フィールド※²
○
○
○
○
なし

フレーム
縦繰り返し
○
○
○
○

横繰り返し
○
○
○
○

表けい線の枠
見出しあり
○
○
○
○

見出しなし
○
○
○
○

けい線の繰り返し
縦
○
○
○
○
自動間隔

横
○
○
○
○
1行／2行／自動間隔

けい線の種類
実線
○
○
○
○
なし

破線
○
○
○
○

けい線の太さ
細線
○
○
○
○

中線
○
○
○
○

太線
－
－
－
－

極太線
－
－
－
－

けい線の配置方法
○
○
○
○
上／下

矩形
○
○
○
○
なし

出力OCR
○
○
○
○

オブジェクトの重なり
－
－
－
－

オブジェクト配置の単位

ます目
○
○
○
○
なし

（凡例）

○：機能有効。

×：機能無効。

－：該当しない。

注※1

XMAP3 印刷拡張機能をインストールすると，標準（明朝相当）の書体に対する出力時のフォントを，任意のフォントに変更できます。

注※2

XMAP3/NET，またはXMAP3/Enterprise Editionの場合に使用できます。予約フィールドを定義した帳票は，OLTPサーバ構成の環境で使用できます。

表1-10　プレプリント帳票（シリアルインパクト）で使用できる機能

機能
連続紙
カット紙
備考

ESC/P
GDI
ESC/P
GDI

用紙制御

用紙サイズ
－
－
－
－
A4／B4（縦横）

マージン設定
－
－
－
－
なし

行間隔（LPI）
○
○
○
○
6／8LPIまたはミリ，ドット単位の自由配置

改ページ動作
○
×
－
－
印刷前／印刷後／しない

用紙の排出方向
－
－
○
×
前方／後方／しない

印刷部数（コピー枚数）
－
－
－
－
なし

印刷ドキュメント名
○
○
○
○
259文字以内

文字印刷

文字サイズ
7
－
－
－
－
なし

9（相当）
○
○
○
○

文字の間隔
ポイント指定
○
○
○
○
0～7ポイント

CPI指定
○
○
○
○
10／12／15CPI

外字
○
○
○
○
なし

書体
明朝相当
（標準）
○
○※1
○
○※1

オブジェクト

出力フィールド
○
○
○
○
日本語，英数，数字

予約フィールド※²
○
○
○
○
なし

出力時刻／出力日付フィールド
○
○
○
○

フレーム
縦繰り返し
○
○
○
○

横繰り返し
○
○
○
○

出力バーコード
CODE39
○
○
○
○

JAN8
○
○
○
○

JAN13
○
○
○
○

NW7
○
○
○
○

ITF(6)
○
○
○
○

ITF(14)
○
○
○
○

ITF(16)
○
○
○
○

カスタマ
－
－
－
－

出力OCR
○
○
○
○

オブジェクトの重なり
○
○
○
○

オブジェクト配置の単位

ます目
○
○
○
○
なし

ドット
○
○
○
○

mm
○
○
○
○

25.4mm
○
○
○
○
参考値：1インチ

（凡例）

○：機能有効。

×：機能無効。

－：該当しない。

注※1

XMAP3 印刷拡張機能をインストールすると，標準（明朝相当）の書体に対する出力時のフォントを，任意のフォントに変更できます。

注※2

XMAP3/NET，またはXMAP3/Enterprise Editionの場合に使用できます。予約フィールドを定義した帳票は，OLTPサーバ構成の環境で使用できます。

表1-11　網掛け帳票・グラフィック帳票（ページプリンタ）で使用できる機能

機能
網掛け帳票
グラフィック
帳票
備考

LIPS
GDI
PDF
LIPS
GDI
PDF

用紙印刷

用紙サイズ
○
○
○
○
○
○
A5／A4／A3／B5／B4
（縦横）フリー

マージン設定
○
○
○
○
○
○
0～50.0mm

行間隔（LPI）
3／4／6／8LPI
○
○
○
○
○
○
なし

10／12LPI
－
－
－
○
○
○

自由な設定
－
－
－
○
○
○

改ページ動作
－
－
－
－
－
－

用紙の排出方向
－
－
－
－
－
－

印刷部数（コピー枚数）※1
○
○
×
○
○
×
1～32枚

印刷ドキュメント名
○
○
○
○
○
○
259文字以内

文字印刷

文字サイズ
5
－
－
－
○
○
○
なし

7
○
○
○
○
○
○

9
○
○
○
○
○
○

12
－
－
－
○
○
○

14
－
－
－
○
○
○
フィールド単位だけ

文字の拡大
標準
○
○
○
○
○
○
なし

平体
○
○
○
○
○
○

長体
○
○
○
○
○
○

倍角
○
○
○
○
○
○

文字の間隔
ポイント指定
○
○
○
○
○
○
0～7ポイント

CPI指定
○
○
○
○
○
○
10／12／15CPI

テキスト揃え
中央
○
○
○
○
○
○
なし

左
○
○
○
○
○
○

右
○
○
○
○
○
○

均等
○
○
○
○
○
○

外字
○
○
○
○
○
○

書体
標準
○
○※²
○※²
○
○※²
○※²

明朝
－
－
－
○
○※²
○※²

ゴシック
－
－
－
○
○※²
○※²

文字の強調
太字
－
－
－
○
○
○

斜体
－
－
－
○
○
○

太字＆斜体
－
－
－
○
○
○

文字色※3
8色
－
－
－
×
○
○

オブジェクト

固定フィールド
○
○
○
○
○
○
英数／日本語

出力フィールド
○
○
○
○
○
○
数字／英数／日本語

予約フィールド※⁴
○
○
○
○
○
○
なし

出力日付／出力時刻フィールド
－
－
－
○
○
○

フレーム
縦繰り返し
○
○
○
○
○
○

横繰り返し
○
○
○
○
○
○

デリミタ線
－
－
－
○
○
○

表けい線の枠
見出しあり
○
○
○
○
○
○

見出しなし
○
○
○
○
○
○

けい線の繰り
返し
縦
○
○
○
○
○
○
自動間隔

横
○
○
○
○
○
○
1行／2行／自動間隔

けい線の種類
実線
○
○
○
○
○
○
なし

破線
○
○
○
○
○
○

点線
－
－
－
○
○
○

二重線
－
－
－
○
○
○

一点鎖線
－
－
－
○
○
○

二点鎖線
－
－
－
○
○
○

けい線の太さ
細線
○
○
○
○
○
○

中線
○
○
○
○
○
○

太線
○
○
○
○
○
○

極太線
○
○
○
○
○
○

斜めけい線
－
－
－
○
○
○

けい線の配置方法
○
○
○
○
○
○
上／中央／下

矩形
○
○
○
○
○
○
なし

ラウンドコーナ
半径（大）
－
－
－
○
○
○

半径（標準）
○
○
○
○
○
○

半径（小）
－
－
－
○
○
○

円
実線
－
－
－
○
○
○

点線
－
－
－
○
○
○

円弧
実線
－
－
－
○
○
○
角度　大／中／小

点線
－
－
－
○
○
○
角度　大／中／小

網掛け
パターン
○
○※⁵
○※⁵
○※⁶
○※⁵※⁶
○※⁵※⁶
濃い網掛け
中間網掛け
薄い網掛け

ラウンドコーナ
○
○
○
○
○
○

1行間隔配置
○
○
○
○
○
○

出力／固定バーコード※7
CODE39
－
－
－
○
○
○
なし

JAN8
－
－
－
○
○
○

JAN13
－
－
－
○
○
○

NW7
－
－
－
○
○
○

ITF(6)
－
－
－
○
○
○

ITF(14)
－
－
－
○
○
○

ITF(16)
－
－
－
○
○
○

カスタマ
－
－
－
○
○
○

連結出力バーコード
EAN-128
－
－
－
○
○
○

固定グラフィック
－
－
－
○
○
○

出力グラフィック
－
－
－
○
○
○

出力OCR
－
－
－
○
○
○

オブジェクトの重なり
○
○
○
○
○
○

オブジェクトの配置

ます目（行列のこと）
○
○
○
○
○
○
なし

ドット
－
－
－
○
○
○

mm
－
－
－
○
○
○

（凡例）

○：機能有効。

×：機能無効。

－：該当しない。

注※1

PDFファイル出力時には，印刷部数（コピー部数）は常に1枚固定となり，指定値は無効になります。

注※2

XMAP3 印刷拡張機能をインストールすると，標準／明朝／ゴシックの書体に対する出力時のフォントを，任意のフォントに変更できます。

注※3

文字色はグラフィック帳票のオブジェクトにだけ設定できます。また，オブジェクトに設定した文字色を印刷するには，GDIモードまたはPDFファイル出力モードを利用します（LIPSモードは使用できません）。文字色の設定ができるオブジェクトは，固定フィールド，出力フィールド，出力日付／時刻フィールド，予約フィールド，および出力OCRです。

注※4

XMAP3/NET，またはXMAP3/Enterprise Editionの場合に使用できます。予約フィールドを定義した帳票は，OLTPサーバ構成の環境で使用できます。

注※5

使用するプリンタのプリンタドライバの仕様によって，期待どおりの印刷結果が得られない場合があります。印刷する場合（PDFファイル出力時はAcrobat Readerなどのビューアから印刷する場合）には，まずテスト印刷をして，運用上に問題がないことを確認することをお勧めします。なお，テスト印刷については，「4.8　テスト印刷」またはマニュアル「XMAP3 開発・実行ガイド」を参照してください。

注※6

グラフィック帳票の場合，極薄網掛け，薄い網掛け，標準網掛け，濃い網掛け，極濃網掛け，薄い格子，標準格子，薄い右下，標準右下，薄い左下，標準左下，薄い縦線，標準縦線，薄い横線，および標準横線の網掛けが設定できます。

注※7

固定バーコードはグラフィック帳票の場合だけ設定できます。

表1-12　書式オーバレイ（ページプリンタ）で使用できる機能

機能
オーバレイ
（書式）
オーバレイ
（行データ）

備考

LIPS
GDI
PDF
LIPS
GDI
PDF

用紙制御

用紙サイズ
○
○
○
－
－
－
A5／A4／A3／B5／B4
（縦横）フリー

マージン設定
○
○
○
－
－
－
0～50.0mm

行間隔（LPI）
○
○
○
－
－
－
3／4／6／8／10／12LPI，
自由な設定

改ページ動作
－
－
－
－
－
－
なし

用紙の排出方向
－
－
－
－
－
－

印刷部数（コピー枚数）
－
－
－
－
－
－
1～32枚

印刷ドキュメント名
○
○
○
－
－
－
259文字以内

文字印刷

文字サイズ
5
○
○
○
○
○
○
なし

7
○
○
○
○
○
○

9
○
○
○
○
○
○

12
○
○
○
○
○
○

14
○
○
○
－
－
－
固定フィールドの場合，個別に設定できる

文字の拡大
標準
○
○
○
○
○
○
なし

平体
○
○
○
○
○
○

長体
○
○
○
－
－
－

倍角
○
○
○
－
－
－

文字の間隔
ポイント指定
－
－
－
○
○
○
0～7ポイント

CPI指定
－
－
－
－
－
－
10／12／15CPI

外字
○
○
○
○
○
○
なし

書体
標準
○
○※¹
○※¹
○
○※¹
○※¹

明朝
○
○※¹
○※¹
○
○※¹
○※¹

ゴシック
○
○※¹
○※¹
○
○※¹
○※¹

OCR
－
－
－
○
○
○

文字の強調
太字
○
○
○
－
－
－

斜体
○
○
○
－
－
－

太字＆斜体
○
○
○
－
－
－

オブジェクト

固定フィールド
○
○
○
－
－
－
英数／日本語

表けい線の枠
見出しあり
○
○
○
－
－
－
なし

見出しなし
○
○
○
－
－
－

けい線の繰り
返し
縦
○
○
○
－
－
－
自動間隔

横
○
○
○
－
－
－
1行／2行／自動間隔

けい線の種類
実線
○
○
○
－
－
－
なし

破線
○
○
○
－
－
－

点線
○
○
○
－
－
－

二重線
○
○
○
－
－
－

一点鎖線
○
○
○
－
－
－

二点鎖線
○
○
○
－
－
－

けい線の太さ
細線
○
○
○
－
－
－

中線
○
○
○
－
－
－

太線
○
○
○
－
－
－

極太線
○
○
○
－
－
－

斜めけい線
○
○
○
－
－
－

矩形
○
○
○
－
－
－

ラウンド
コーナ
半径（大）
○
○
○
－
－
－

半径（標準）
○
○
○
－
－
－

半径（小）
○
○
○
－
－
－

円
実線
○
○
○
－
－
－

点線
○
○
○
－
－
－

円弧
実線
○
○
○
－
－
－
角度　大／中／小

点線
○
○
○
－
－
－
角度　大／中／小

網掛け※²
パターン
○
○※3
○※3
－
－
－
なし

ラウンドコーナ
○
○
○
－
－
－

1行間隔配置
○
○
○
－
－
－

固定グラフィック
○
○
○
－
－
－

オブジェクトの重なり
○
○
○
－
－
－

オブジェクトの配置

ます目（行列のこと）
○
○
○
－
－
－
なし

ドット
○
○
○
－
－
－

mm
○
○
○
－
－
－

（凡例）

○：機能有効。

－：該当しない。

注※1

XMAP3 印刷拡張機能をインストールすると，標準／明朝／ゴシックの書体に対する出力時のフォントを，任意のフォントに変更できます。なお，OCR文字フォントは変更できません。

注※2

極薄網掛け，薄い網掛け，標準網掛け，濃い網掛け，極濃網掛け，薄い格子，標準格子，薄い右下，標準右下，薄い左下，標準左下，薄い縦線，標準縦線，薄い横線，および標準横線の網掛けが設定できます。

注※3

使用するプリンタのプリンタドライバの仕様によって，期待どおりの印刷結果が得られない場合があります。印刷する場合（PDFファイル出力時はAcrobat Readerなどのビューアから印刷する場合）には，まずテスト印刷をして，運用上に問題がないことを確認することをお勧めします。なお，テスト印刷については，「4.8　テスト印刷」またはマニュアル「XMAP3 開発・実行ガイド」を参照してください。

1.4.4　使用するAPIの確定

使用するAPIは，XMAP3の「定義対象」によって，マップ帳票ではページ単位，書式オーバレイでは行単位またはファイル単位のインタフェースになります。なお，ファイル単位の書式オーバレイについては，APとは直接インタフェースを持ちません。テキストファイルから自動的にデータを読み取って書式をオーバレイ印刷します。

＜この項の構成＞

(1)　ページ単位

(2)　行単位

(3)　ファイル単位

(4)　使用できるAPI

(1)　ページ単位

帳票にユーザが出力するフィールドもあわせて指定します。APからは，項目（フィールド）単位のデータを1ページ分まとめて送信（SEND）します。けい線や項目とのずれが出ないのが特長です。

また，グラフィック帳票を使用したときは，動的変更機能によって文字の属性（強調表示のために，網掛けやゴシックにするなど）を変更したり，けい線の属性（引いたり，引かなかったり，または種類の変更など）を変更したりできます。

(2)　行単位

行単位のユーザデータに書式をオーバレイ（重ねて印刷）します。行データと書式のけい線などがうまく合うように，ユーザ側で行データにスペースを入れて印刷文字の列位置を調整する必要があります。

(3)　ファイル単位

テキストファイルを入力し，書式を重ねて印刷します。

AP言語とはインタフェースを持たないため，テキストファイルが作成できるものであれば，AP言語は何でもかまいません。

XMAP3　書式オーバレイ印刷ユティリティに書式の名前であるマップ名を指定すれば，テキストファイルを入力し，書式オーバレイして印刷します。詳細は，「8.5　書式オーバレイの簡易印刷」を参照してください。

(4)　使用できるAPI

XMAP3の定義対象ごとに使用できるAPIを次の表に示します。

表1-13　定義対象ごとに使用できるAPI

定義対象（XMAP3）
AP言語
使用できるAPI

COBOL
C
VB，Delphi，
Accessなど
Java
※1
ページ
単位
行単位
ファイル
単位

けい線帳票（カット紙）
○
○
○※2
○
○
－
－

けい線帳票（連続紙）
○
○
○※2
○
○
－
－

グラフィック帳票
○
○
○※2
○
○
－
－

書式オーバレイ
○
○
○
×
－
○
○

（その他）各言語の行印刷
○
○
○
×
×
○
○

（凡例）

○：使用できる。

×：使用できない。

－：該当なし。

注※1

Javaを利用できるのは，XMAP3/Web for Cosminexusを使用して，Cosminexus上で実行する場合です。

注※2

論理マップはAPと合わせてユーザ責任でコーディングする必要があります。

1.5　XMAP3関連ファイルの関係

ドローで使用するファイルとXMAP3の機能の関連を次の図に示します。また，ドローで使用するファイルとその説明も次の表に示します。また，XMAP3で使用するファイルと機能の関連については，マニュアル「XMAP3 開発・実行ガイド」を参照してください。

図1-3　XMAP3で使用するファイルとXMAP3の機能の関連

表1-14　XMAP3で使用するファイルとその説明

ファイル名
内容
拡張子
種別

1.ドローセットアップファイル
ドローセットアップで設定した結果を格納
－
共通

2.マップ定義ファイル
帳票定義のソースを格納
.imp
マップ
帳票

2.書式定義ファイル
書式オーバレイのソースを格納
.ifm
書式

3.論理マップファイル
出力論理マップファイル
.cbl
.h
マップ
帳票

4.物理マップファイル
物理マップファイル
.pmp
マップ
帳票

5.行制御データ書式イメージファイル
オーバレイに対応する行制御情報を格納
.pci
書式

5.書式イメージファイル
書式オーバレイを定義した物理情報を格納
.fmp
書式

6.表示・印刷環境ファイル
帳票出力に関連する属性（高度な設定）情報を格納
－
共通

7.プリンタ構成ファイル
Windowsで設定されたプリンタに関連する印刷モードやオプションなどの環境情報を格納
－
共通

8.動的変更テーブル
ドローセットアップで設定した修飾名のテーブルを格納
.cbl
.h
マップ
帳票

9.FAX宛先ファイル
FAXC/SPOOL連携でのFAX出力でFAXの宛先情報を格納（AP実行時に動的に変更する場合）
－
共通

（凡例）

－：任意。

1.6　帳票を設計する前に

ここでは，XMAP3の帳票設計で使用する用語や，帳票を定義する前に確認する項目について説明します。

＜この節の構成＞

1.6.1　帳票設計の基本用語の説明

1.6.2　帳票定義前の確認

1.6.1　帳票設計の基本用語の説明

XMAP3の帳票設計でよく使用する用語について説明します。

＜この項の構成＞

(1)　用紙設計に関する用語

(2)　レイアウト領域の設定に関する用語

(1)　用紙設計に関する用語

用紙設計に関する用語を説明します。

用紙の種類
A4やB5など一枚の紙になっているカット紙と，各ページの境がミシン目になってつながっている連続紙があります。カット紙は，ページプリンタおよびシリアルインパクトプリンタ両方で利用できます。連続紙は，シリアルインパクトプリンタでだけ使用できます。

先頭印刷位置
プリンタで決まっている，最初の文字を左上に印刷できる位置です。印刷できる基準点は，この位置です。

マージン
ページプリンタで，用紙に穴などを開けることを想定して設定しておく余白のことです。用紙の左上を基点にしてマージンを設定し，レイアウト開始位置をずらせます。ユーザが設定するマージンを，単にマージンまたはソフトマージンといいます。これに対し，プリンタドライバおよびプリンタ装置ごとに，ハードマージンと呼ばれるハード機構上，印刷できない領域があります。このハードマージンの値よりも小さいマージンを設定すると，ハードマージンが有効になるので，注意してください。
なお，ハードマージンは，GDI使用時にはプリンタドライバが持つ値となり，PDLスルー使用時にはプリンタ装置が持つ値となります。また，PDFファイル出力時には，ハードマージンがないため，指定したマージン値がそのまま有効になります。

オフセット
シリアルインパクトプリンタで，用紙に穴などを開けることを想定して設定しておく余白（ソフトウェア的に設ける）のことです。ハードマージンを基点としてレイアウト開始位置をずらせます。XMAP3では，1ます目から，レイアウト領域の範囲内でオフセット値を指定できます。

印字領域
ハードウェアまたはドライバに依存し，用紙上に印刷できる矩形領域（ハードウェアマージンを除いた領域）です。ページプリンタの場合，用紙の左上（マージンで設定した開始位置）から用紙の右下（ハードマージンで設定した終了位置）までの矩形を示します。
レイアウト領域がこの印字領域よりも大きい場合，はみ出した部分は印刷されないことがあります。帳票定義時には，用紙サイズとマージンおよびオフセットの関係を考慮して，印字領域からはみ出さないようにレイアウト領域を設定する必要があります。

レイアウト領域
ドローを使用してオブジェクトを配置する領域です。オフセットとユーザが設定したマージン値（ソフトマージン）を除いた領域になります。

(2)　レイアウト領域の設定に関する用語

グリッド
ドローのレイアウト領域に表示される点線です。レイアウト領域にオブジェクトを配置する位置を決める基準になります。
基準には，ます目単位とスケール単位があります。

スケール単位（書式オーバレイ，グラフィック帳票，およびプレプリント帳票に有効）
行や列に関係なく，オブジェクトを自由に配置するための単位です。mm，ドット，およびます目があります。

ます目単位
ます目は，行列単位ともいいます。ある行のある列を一つのます目といい，そのます目は，CPIとLPIなどの矩形を1ますとします。そのため，ドローでは，このます目を（LPI×CPI）の組み合わせで指定します。ます目単位は，キャラクタベースで配置するときに使用します。

LPI（Line Per Inch）
LPIは，ます目の高さ（行間隔）です。XMAP3で「ます目の設定」を「自由な設定」にした場合，けい線帳票は6または8LPIから，網掛け帳票は3，4，6，8LPIの中から選びます。また，グラフィック帳票と書式オーバレイは，3，4，6，8，10，12LPIの中から選びます。
例えば，8LPIは25.4mm（1インチ）当たりが8行になります。

CPI（Character Per Inch）
CPIは，ます目の幅です。CPIを指定すると，自動的に文字サイズと文字間隔が決まります。
例えば，10CPIと設定すると，25.4mm（1インチ）当たりに10文字格納するための文字サイズおよび文字間隔が設定されます。
また，10，12，15CPI以外に，文字サイズと文字間隔を組み合わせて，1ますの幅を決定できます。

基準文字サイズ
ます，またはスケール単位を使用したときに関係なく，レイアウト領域に配置する文字サイズのデフォルト値を基準文字サイズといいます。

1.6.2　帳票定義前の確認

帳票を定義する前に確認する項目について説明します。

＜この項の構成＞

(1)　ハードウェア依存およびドライバ依存の定義確認

(2)　レイアウト定義前の決定事項

(3)　レイアウト定義画面での注意

(1)　ハードウェア依存およびドライバ依存の定義確認

ハードウェアやドライバに依存する設定は，実際の定義を始める前に確認しておくことをお勧めします。次に確認する項目を示します。

使用できる用紙

印刷品質の確認

印刷できる行数，列数の確認

連続紙の場合，改ページの位置合わせ

バーコードやOCRの場合，実際に印刷してリーダで入力できるかどうかの確認

けい線や網掛けの濃さの確認

プリンタドライバやプリンタハードウェアの制限と仕様

カラープリンタを使用する場合，実際に印字される文字色の確認

(2)　レイアウト定義前の決定事項

レイアウトを定義する前に次のことを決めておいてください。

ファイルで保管することを考えたマージン設定

用紙サイズ

マージン値やオフセット値

穴開け位置

見やすさ

基準ます目（ページ当たりの行列数）

けい線，網掛け，文字サイズなどの基準

コピーやFAXとの関連

印刷した結果をコピーやFAXで送信しても印刷の品質上問題ないか

網掛けやけい線の見やすさ

(3)　レイアウト定義画面での注意

ドローのレイアウト定義画面の表示は，印刷される内容をシミュレートしているため，実際に印刷される帳票と異なる場合があります。詳細については，マニュアル「XMAP3 開発・実行ガイド」を参照してください。

2.　帳票とは

この章では，XMAP3でどのような帳票を作成できるのか，また帳票ではどのような機能が使用できるのかについて説明します。

＜この章の構成＞

2.1　マップ帳票で使用できる機能

2.2　書式オーバレイで使用できる機能

2.1　マップ帳票で使用できる機能

けい線帳票，プレプリント帳票，網掛け帳票，およびグラフィック帳票ごとに使用できる機能について説明します。

XMAP3では，マップを使用して帳票出力を実現しています。マップには，帳票の各オブジェクトの位置などを格納した物理マップと，帳票の可変情報を設定するAP中のデータ領域である論理マップがあります。この物理マップと論理マップを利用して帳票を出力します。

XMAP3での帳票出力の概要を次の図に示します。

図2-1　XMAP3での帳票出力の概要

＜この節の構成＞

2.1.1　けい線帳票（シリアルインパクトプリンタ）で使用できる機能

2.1.2　プレプリント帳票（シリアルインパクトプリンタ）で使用できる機能

2.1.3　網掛け帳票（ページプリンタ）で使用できる機能

2.1.4　グラフィック帳票（ページプリンタ）で使用できる機能

2.1.1　けい線帳票（シリアルインパクトプリンタ）で使用できる機能

シリアルインパクトプリンタのけい線帳票で作成した帳票例と，けい線帳票の機能内容を次に示します。

図2-2　けい線帳票で作成した帳票の例

表2-1　けい線帳票の機能内容

項目
機能内容

用紙種類
カット紙，連続紙

グリッドサイズ
最大255列×127行

文字サイズ
9ポイント相当

文字の拡大
全角／半角，標準／平体／長体／倍角

書体※¹
標準（明朝相当）

テキスト揃え
中央／左／右／均等

行の間隔
6LPI／8LPI

文字の間隔
0～7ポイント

基準ます目
10CPI/6LPI／12CPI/6LPI／15CPI/6LPI／15CPI/8LPI／自由な設定

オブジェクト
固定フィールド（日本語／英数）

出力フィールド（日本語／英数／数字）

予約フィールド※²

フレーム（縦繰り返し／横繰り返し）

表けい線の枠（見出しあり／見出しなし）

けい線の繰り返し：縦（自動間隔），横（1行／2行／自動間隔）

けい線（線種：実線／破線，線幅：細線／中線，
縦けい線の位置：上／下）

矩形（線種：実線／破線，線幅：細線／中線）

出力OCR

論理マップ
ピクチャ編集

その他
排出方向※3，改ページ制御※4

注※1

XMAP3 印刷拡張機能をインストールすると，印刷拡張セットアップを使って，標準（明朝相当）の書体に対する出力時のフォントを，任意のフォントに変更できます。

注※2

XMAP3/NET，またはXMAP3/Enterprise Editionの場合に使用できます。予約フィールドを定義した帳票は，OLTPサーバ構成の環境で使用できます。

注※3

日立製のインサータ付きプリンタの場合だけ指定できます。

注※4

連続紙での改ページ制御は，ESC/P対応のプリンタだけです。

2.1.2　プレプリント帳票（シリアルインパクトプリンタ）で使用できる機能

シリアルインパクトプリンタのプレプリント帳票で作成したバーコード入りラベルの印刷例と，プレプリント帳票の機能内容を次に示します。

図2-3　プレプリント帳票で作成したバーコード入りラベルの印刷例

表2-2　プレプリント帳票の機能内容

項目 | 機能内容
用紙種類 | カット紙，連続紙
グリッドサイズ | 最大255列×127行
文字サイズ | 9ポイント相当
書体※¹ | 標準（明朝相当）
文字の間隔 | 0～7ポイント
基準ます目 | 10CPI/6LPI／12CPI/6LPI／15CPI/6LPI
オブジェクト | 出力フィールド（日本語）
出力フィールド（英数）
出力フィールド（数字）
予約フィールド※²
出力日付／出力時刻フィールド
フレーム（縦繰り返し／横繰り返し）
出力バーコード（JAN8，JAN13，CODE39，ITF(6)，ITF(14)，ITF(16)，NW-7）
出力OCR
論理マップ | ピクチャ編集
その他 | 排出方向※3，改ページ制御※4

注※1

XMAP3 印刷拡張機能をインストールすると，印刷拡張セットアップを使って，標準（明朝相当）の書体に対する出力時のフォントを，任意のフォントに変更できます。

注※2

XMAP3/NET，またはXMAP3/Enterprise Editionの場合に使用できます。予約フィールドを定義した帳票は，OLTPサーバ構成の環境で使用できます。

注※3

日立製のインサータ付きプリンタの場合だけ指定できます。

注※4

連続紙での改ページ制御は，ESC/P対応のプリンタだけです。

2.1.3　網掛け帳票（ページプリンタ）で使用できる機能

ページプリンタの網掛け帳票で作成した帳票の例と，網掛け帳票の機能内容を次に示します。

図2-4　網掛け帳票で作成した帳票の例

表2-3　網掛け帳票の機能内容

項目 | 機能内容
用紙サイズ | A5／A4／A3／B5／B4／フリー，用紙向き（縦／横）
グリッドサイズ | 最大255列×127行
文字サイズ | 7／9ポイント※1
マージン | 範囲：0～50.0mm※2
文字の拡大 | 全角／半角，標準／平体／長体／倍角
書体※³／強調 | 標準（明朝相当）
基準ます目 | 10CPI/6LPI／12CPI/6LPI／15CPI/8LPI／自由な設定
行の間隔 | 3／4／6／8LPI
文字の間隔 | 0～7ポイント
オブジェクト | 固定フィールド（日本語／英数）
出力フィールド（日本語／英数／数字）
予約フィールド※⁴
フレーム（縦繰り返し／横繰り返し）
表けい線の枠（見出しあり／見出しなし）
けい線の繰り返し：縦（自動間隔），横（1行／2行／自動間隔）
けい線（縦，横，線種：実線／破線，線幅：細線／中線／太線／極太線）
矩形（ラウンドコーナあり／なし，線種：実線／破線，線幅：細線／中線／太線／極太線）
網掛け（ラウンドコーナあり／なし，網掛けの繰り返し，枠あり／なし，網掛け：薄い網掛け／中間の網掛け／濃い網掛け）
論理マップ | ピクチャ編集
その他 | マルチコピー

注※1

標準の文字サイズは基準ます目（10，12CPIの場合：9ポイント，15CPIの場合：7ポイント）によって変わります。

注※2

プリンタのハードマージンより小さい値を指定した場合，ハードマージンが仮定されます。ただし，PDFファイル出力時には，ハードマージンがないため，指定したマージン値がそのまま有効になります。

注※3

XMAP3 印刷拡張機能をインストールすると，印刷拡張セットアップを使って，標準（明朝相当）の書体に対する出力時のフォントを，任意のフォントに変更できます。

注※4

XMAP3/NET，またはXMAP3/Enterprise Editionの場合に使用できます。予約フィールドを定義した帳票は，OLTPサーバ構成の環境で使用できます。

2.1.4　グラフィック帳票（ページプリンタ）で使用できる機能

ページプリンタのグラフィック帳票で作成した帳票の例と，グラフィック帳票の機能内容を次に示します。

図2-5　グラフィック帳票で作成した帳票の例

表2-4　グラフィック帳票の機能内容

項目
機能内容

用紙サイズ
A5／A4／A3／B5／B4／フリー，用紙向き（縦／横）

グリッドサイズ
最大255列×127行

文字サイズ
5／7／9／12／14ポイント※1

マージン
範囲：0～50.0mm※2

文字の拡大
全角／半角，標準／平体／長体／倍角

書体※³／強調
標準，明朝，ゴシック／太字，斜体，太字＆斜体

基準ます目
10CPI/6LPI／12CPI/6LPI／15CPI/6LPI／15CPI/8LPI／自由な設定

行の間隔
3／4／6／8／10／12LPI

文字の間隔
0～7ポイント

文字色※⁴
黒／白／赤／緑／青／紫／空／黄

オブジェクト
固定フィールド（日本語／英数）

出力フィールド（日本語／英数／数字）

予約フィールド※⁵

出力日付／出力時刻フィールド

フレーム（縦繰り返し／横繰り返し）

デリミタ線

表けい線の枠（見出しあり／見出しなし）

けい線の繰り返し：縦（自動間隔），横（1行／2行／自動間隔）

けい線（縦，横，斜線，線種：実線／破線／点線／一点鎖線／二点鎖線／二重線，線幅：細線／中線／太線／極太線）

矩形（ラウンドコーナ（大／標準／小）あり，線種：実線／破線／点線／一点鎖線／二点鎖線／二重線，線幅：細線／中線／太線／極太線）

円（線種：実線／破線／点線／一点鎖線／二点鎖線／二重線，
線幅：細線／中線／太線／極太線，網掛け）

円弧（角度：大／中／小，線種：実線／破線／点線／一点鎖線／二点鎖線／二重線※⁶，線幅：細線／中線／太線／極太線）

網掛け（ラウンドコーナあり／なし，網掛けの繰り返し，枠あり／なし，斜けい線，網掛け：極薄網掛け／薄い網掛け／標準網掛け／濃い網掛け／極濃網掛け／薄い格子／標準格子／薄い右下／標準右下／薄い左下／標準左下／薄い縦線／標準縦線／薄い横線／標準横線）

出力／固定バーコード（JAN8，JAN13，CODE39，ITF(6)，ITF(14)，ITF(16)，NW-7，カスタマ）

連結出力バーコード（EAN-128）

固定／出力グラフィック※⁷

出力OCR

論理マップ
ピクチャ編集

その他
マルチコピー，動的変更（表示属性／けい線）

注※1

標準の文字サイズは基準ます目（10，12CPIの場合：9ポイント，15CPIの場合：7ポイント）によって変わります。

注※2

プリンタのハードマージンより小さい値を指定した場合，ハードマージンが仮定されます。ただし，PDFファイル出力時には，ハードマージンがないため，指定したマージン値がそのまま有効になります。

注※3

XMAP3 印刷拡張機能をインストールすると，印刷拡張セットアップを使って，標準／明朝／ゴシックの書体に対する出力時のフォントを，それぞれ任意のフォントに変更できます。

注※4

文字色を設定できるオブジェクトは，固定フィールド，出力フィールド，出力日付／時刻フィールド，予約フィールド，および出力OCRです。また，文字色を設定した場合，次のことに注意してください。

・カラー文字は，GDIモードのカラープリンタを使用した場合，またはPDFファイル出力した場合に有効になります。GDIモードのモノクロプリンタを使用した場合，黒以外のカラー文字はプリンタドライバの仕様に従って印字されるため，期待どおりの結果とならない場合があります。なお，LIPSの場合は，文字色は黒で固定となります。

・バーコード中のデータ文字は，カラー文字の対象外となります。

・カラー文字は，PCに接続したプリンタだけで印刷できます。

注※5

XMAP3/NET，またはXMAP3/Enterprise Editionの場合に使用できます。予約フィールドを定義した帳票は，OLTPサーバ構成の環境で使用できます。

注※6

二重線の場合は，線幅は固定となり，線の太さは設定できません。

注※7

カラーグラフィックのカラー印刷は，印刷モードをGDIにしてカラープリンタに出力するとき，またはPDFファイル出力のときにできます。

2.2　書式オーバレイで使用できる機能

＜この節の構成＞

(1)　書式オーバレイとは

(2)　書式オーバレイで作成できる機能

(1)　書式オーバレイとは

書式オーバレイは，定型帳票から書式（固定の文字列，けい線など）を分離し，印刷時にAPからの行データを重ね合わせる帳票印刷の方式（ソフトオーバレイ方式）を採っています。メインフレームでの出力では，書式をプリンタに登録し，プリンタ上でオーバレイをしますが，PC版のXMAP3の書式オーバレイでの出力は，次の図に示すように，PC上でオーバレイをするソフトオーバレイ方式です。

ただし，OLTPサーバ構成の環境では書式オーバレイを使用できません。

図2-6　書式オーバレイ出力方式

書式イメージファイル

書式をオーバレイする部分の制御データファイルです。オーバレイするけい線や固定フィールドなどから成ります。この制御データは，XMAP3の実行支援が参照するものです。

行制御データファイル

ユーザ行データをどのような行間隔と文字間隔で印字するかを制御するデータファイルです。実行時，XMAP3の実行支援が参照します。行間隔や文字間隔は，XMAP3ドローで書式とあわせて定義します。

(2)　書式オーバレイで作成できる機能

XMAP3では，けい線，文字の拡大，網掛け，矩形などを用いた帳票を作成できます。

書式オーバレイで作成した帳票の例と，書式の機能内容および行データの制御情報の内容を次に示します。

図2-7　書式オーバレイで作成した帳票の例

表2-5　書式の機能内容

項目
機能内容

用紙サイズ
A3／A4／A5／B4／B5

用紙の向き
縦長，横長

文字サイズ
5／7／9／12／14ポイント

文字の拡大
全角／半角，標準／平体／長体／倍角

マージン
範囲：0～50.0mm※¹

書体※²／強調
標準，明朝，ゴシック／太字，斜体，太字＆斜体

基準ます目
10CPI/6LPI／12CPI/6LPI／15CPI/6LPI／15CPI/8LPI／自由な設定

行の間隔
3／4／6／8／10／12LPI

文字の間隔
0～7ポイント

オブジェクト
固定フィールド（日本語／英数）

表けい線の枠（見出しあり／見出しなし）

けい線の繰り返し：縦（自動間隔），横（1行／2行／自動間隔）

けい線（縦，横，斜線，線種：実線／破線／点線／一点鎖線／二点鎖線／二重線，線幅：細線／中線／太線／極太線）

矩形（ラウンドコーナ（大／標準／小）あり，線種：実線／破線／点線／一点鎖線／二点鎖線／二重線，線幅：細線／中線／太線／極太線）

円（線種：実線／破線／点線／一点鎖線／二点鎖線／二重線，
線幅：細線／中線／太線／極太線，網掛け）

円弧（角度：大／中／小，線種：実線／破線／点線／一点鎖線／二点鎖線／二重線，線幅：細線／中線／太線／極太線）

網掛け（ラウンドコーナあり／なし，網掛けの繰り返し，枠あり／なし，斜けい線，網掛け：極薄網掛け／薄網掛け／標準網掛け／濃い網掛け／極濃い網掛け／薄い格子／標準格子／薄い右下／標準右下／薄い左下／標準左下／薄い縦線／標準縦線／薄い横線／標準横線）

固定グラフィック※³

注※1

プリンタのハードマージンより小さい値を指定した場合，ハードマージンが仮定されます。ただし，PDFファイル出力時には，ハードマージンがないため，指定したマージン値がそのまま有効になります。

注※2

XMAP3 印刷拡張機能をインストールすると，印刷拡張セットアップを使って，標準／明朝／ゴシックの書体に対する出力時のフォントを，それぞれ任意のフォントに変更できます。

注※3

カラーグラフィックのカラー印刷は，印刷モードをGDIにしてカラープリンタに出力するとき，またはPDFファイル出力のときにできます。

表2-6　行データの制御情報の内容

項目 | 機能内容
文字サイズ | 5／7／9／12ポイント
文字の拡大 | 標準，平体
書体※¹ | 標準，明朝，ゴシック，OCR
基準ます目※² | 10CPI/6LPI／12CPI/6LPI／15CPI/6LPI／15CPI/8LPI／自由な設定
文字の間隔 | 0～7ポイント
行の間隔 | 3／4／6／8／10／12LPI
チャネルスキップ | CSP（改行しない），C01（改ページする）

注※1

XMAP3 印刷拡張機能をインストールすると，印刷拡張セットアップを使って，標準／明朝／ゴシックの書体に対する出力時のフォントを，それぞれ任意のフォントに変更できます。OCR文字のフォントは変更できません。

注※2

書式定義（ドロー）の指定に従います。

3.　帳票用紙の設計

この章では，けい線帳票，プレプリント帳票，網掛け帳票，グラフィック帳票，および書式オーバレイの用紙設計について説明します。

＜この章の構成＞

3.1　けい線帳票の用紙設計

3.2　プレプリント帳票の用紙設計

3.3　網掛け帳票の用紙設計

3.4　グラフィック帳票の用紙設計

3.5　書式オーバレイの用紙設計

3.1　けい線帳票の用紙設計

この節では，けい線帳票（シリアルインパクトプリンタ）で使用する用紙の設計について説明します。

＜この節の構成＞

3.1.1　けい線帳票の用紙設計の流れ

3.1.2　用紙サイズの決定

3.1.3　ます目サイズの決定

3.1.4　連続紙とカット紙で印刷できる行列数

3.1.5　印字領域とレイアウト領域の決定

3.1.6　定義パターンの決定

3.1.7　印刷動作の指定

3.1.8　用紙排出の指定

3.1.9　けい線帳票の印刷方法

3.1.10　シリアルインパクトプリンタの印字合わせ

3.1.11　印刷ドキュメント名の指定

3.1.1　けい線帳票の用紙設計の流れ

180dpiのシリアルインパクトプリンタ用のけい線帳票です。けい線帳票の場合，用紙サイズとます目の組み合わせを，XMAP3が定義パターンとして用意しています。新規作成ダイアログから定義パターンを選択し，けい線帳票をレイアウトするだけでけい線帳票を設計できます。なお，XMAP3で用意している定義パターンについては，「付録B　XMAP3で提供している定義パターン」を参照してください。

帳票用紙の設計では，けい線帳票の用紙サイズや帳票上に配置する文字サイズ・文字間隔などを決定します。

けい線帳票の用紙設計の流れを次の図に示します。

図3-1　けい線帳票の用紙設計の流れ

3.1.2　用紙サイズの決定

けい線帳票の用紙のサイズを設計します。ここでは，けい線帳票で使用できる用紙の仕様を示します。

＜この項の構成＞

(1)　連続紙で使用できる用紙サイズ

(2)　カット紙で使用できる用紙サイズ

(1)　連続紙で使用できる用紙サイズ

けい線帳票の連続紙で使用できる主な用紙サイズ（縦サイズおよび横サイズ）を，次の表に示します。なお，表中の値は，ESC/Pスルーを使用し，オフセットを0にしたときの値です。自由な用紙（フリー）の場合については省略しています。

表3-1　けい線帳票の連続紙で使用できる用紙サイズ（縦サイズ）

縦サイズ | 印刷できる領域
304.8mm（12インチ） | 2,160ドット | 304.8mm | 2,160ドット
279.4mm（11インチ） | 1,980ドット | 279.4mm | 1,980ドット
254.0mm（10インチ） | 1,800ドット | 254.0mm | 1,800ドット
228.6mm（9インチ） | 1,620ドット | 228.6mm | 1,620ドット
177.8mm（7インチ） | 1,260ドット | 177.8mm | 1,260ドット
152.4mm（6インチ） | 1,080ドット | 152.4mm | 1,080ドット
127.0mm（5インチ） | 900ドット | 127.0mm | 900ドット
139.7mm（5　1/2インチ） | 990ドット | 139.7mm | 990ドット
143.8mm（5　2/3インチ） | 1,020ドット | 143.8mm | 1,020ドット
101.6mm（4インチ） | 720ドット | 101.6mm | 720ドット
114.3mm（4　1/2インチ） | 810ドット | 114.3mm | 810ドット
88.9mm（3　1/2インチ） | 630ドット | 88.9mm | 630ドット
93.0mm（3　2/3インチ） | 660ドット | 93.0mm | 660ドット

表3-2　けい線帳票の連続紙で使用できる用紙サイズ（横サイズ）

横サイズ | 印刷できる領域
381.0mm（15インチ） | 2,700ドット | 355.6mm | 2,340ドット
279.4mm（11インチ） | 1,980ドット | 254.0mm | 1,800ドット
254.0mm（10インチ） | 1,800ドット | 228.6mm | 1,620ドット
203.2mm（8インチ） | 1,440ドット | 177.8mm | 1,260ドット
127.0mm（5インチ） | 900ドット | 101.6mm | 720ドット

ドロー，プリンタドライバおよび表示・印刷セットアップの関係を次の表に示します。

表3-3　ドロー，プリンタドライバおよび表示・印刷セットアップの関係（連続紙）

表示・印刷
セットアップ
内容
ドローの設定
Windows上プリンタ
（プリンタドライバ）の設定

Windows対応
GDIシリアルイン
パクトプリンタ
マージン
－
プリンタドライバの設定値

ページ長
無効
プリンタドライバの設定値

改ページ制御
無効
無効

ESC/P準拠
日立ESC/Pインサ
ータプリンタ
マージン
－
無効

ページ長
有効
無効

改ページ制御
有効
無効

（凡例）

－：該当しない。

(2)　カット紙で使用できる用紙サイズ

けい線帳票のカット紙で使用できる主な用紙サイズを次の表に示します。なお，表中の値は，オフセットを0にしたときの値です。

表3-4　けい線帳票のカット紙で使用できる用紙サイズ〈180dpiで計算した値〉

用紙サイズ
用紙サイズ
印刷できる領域

mm
ドット
mm
ドット

A4（縦×横）
210×297
1,488×2,104
183×287
1,296×2,033

A5（縦×横）
148×210
1,048×1,488
121×200
857×1,417

B4（縦×横）
257×364
1,821×2,579
230×354
1,629×2,508

B5（縦×横）
182×257
1,289×1,821
155×247
1,098×1,750

フリー（自由な用紙）
最大
最大
最大
最大
32,765×32,765

注

けい線帳票では，用紙サイズ指定による給紙は制御できません。そのため，用紙サイズに関係なく印刷できます。はがき，ラベル紙，1枚ずつ切り取った連続紙もカット紙扱いとなります。このときは「フリー」指定となります。

ドロー，プリンタドライバおよび表示・印刷セットアップの関係を次の表に示します。

表3-5　ドロー，プリンタドライバおよび表示・印刷セットアップの関係（カット紙）

表示・印刷
セットアップ
内容
ドローの設定
Windows上プリンタ
（プリンタドライバ）の設定

Windows対応
GDIシリアルインパクトプリンタ
マージン
－
プリンタドライバの設定値

用紙サイズ
－
プリンタドライバの設定値

排出先
無効
プリンタドライバの設定値

ESC/P準拠
日立ESC/Pインサータプリンタ
マージン
－
無効

用紙サイズ
－
無効

排出先
有効
無効

（凡例）

－：該当しない。

3.1.3　ます目サイズの決定

帳票のます目サイズ，文字の大きさなどを設計します。

＜この項の構成＞

(1)　ます目の設定

(2)　文字の大きさ

(3)　基準ます目

(1)　ます目の設定

ます目は，文字サイズと文字間隔（CPI）/行間隔（LPI）の組み合わせで決まります。

けい線帳票（連続紙／カット紙）では，次のます目が設定できます。なお，CPIとは，25.4mm（1インチ）当たり何文字印刷（10～15文字）できるかを表す，文字間隔の単位です。また，LPIとは，25.4mm（1インチ）当たり何行印刷（6～8行）できるかを表す，行間隔の単位です。けい線帳票では，文字サイズは9ポイント相当で固定になります。

10CPI/6LPI

12CPI/6LPI

15CPI/6LPI

15CPI/8LPI

上記ます目のほか，「自由な設定」で，次に示す条件の組み合わせも設定できます。

行間隔：6，8LPI

文字間隔：0～7ポイント

(a)　行間隔

行間隔（LPI）には，6LPIと8LPIがあります。行間隔ごとのドット数は次の表のとおりです。

表3-6　行間隔ごとのドット数（180dpiの場合）

行間隔 | ドット数
6LPI | 30.0
8LPI | 22.5※

注※

印刷時には，22ドットと23ドットを組み合わせて補正します。

(b)　文字の間隔

ます目の設定を自由にした場合，文字の間隔は，0～7ポイントの範囲で設定できます。文字の間隔ごとのドット数を次の表に示します。

表3-7　文字の間隔ごとのドット数

文字の間隔
半角－半角の文字
（ドット数）
全角－全角の文字
（ドット数）
半角－全角の文字
（ドット数）

0ポイント
0
0
0

1ポイント
1
2
2

2ポイント
3
6
5

3ポイント
4
8
6

4ポイント
6
12
9

5ポイント
7
14
11

6ポイント
9
18
14

7ポイント
10
20
15

(2)　文字の大きさ

けい線帳票では，文字を拡大できます。拡大には，倍角，平体，長体の三つを指定できます。標準の文字の大きさは，9ポイント相当になります。

拡大を指定すると，印刷できる文字数が次のように変わります。なお，ここでの説明は半角文字を仮定しています。全角文字の場合は，説明に示されているます目の値が2倍になります。

倍角：1文字につき，縦横方向に2ます分の領域を占有します。

平体：1文字につき，横方向に2ます分の領域を占有します。

長体：1文字につき，縦方向に2ます分の領域を占有します。

文字の拡大による文字の大きさを次の表に示します。

表3-8　文字の拡大（180dpiの場合）

文字の拡大
半角文字の大きさ
（縦×横（ドット数））
全角文字の大きさ
（縦×横（ドット数））

標準
24×12
24×24

倍角
48×24
48×48

平体
24×24
24×48

長体
48×12
48×24

(3)　基準ます目

文字やけい線などを配置する上での基準として，半角文字で1文字分の領域（基準ます目）のサイズが設定されます。また，行の先頭文字が半角の場合と全角の場合では，行への文字の割り付け位置が異なります。行の先頭文字が半角の場合および全角の場合での割り付け位置と基準ます目の構成を次の図に示します。

図3-2　行への文字の割り付けと基準ます目の構成

基準ます目は，帳票属性で指定した「ます目設定」，「行の間隔」，および「文字の間隔」で決まります。

3.1.4　連続紙とカット紙で印刷できる行列数

行間隔および文字間隔によって印刷できる行列数について説明します。なお，印刷できる最大行数および列数は，Windows 95でのプリンタドライバVP-1000を使用しているときの参考値です。OSやプリンタドライバによって数値が異なる場合があります。

＜この項の構成＞

(1)　連続紙の場合

(2)　カット紙の場合

(1)　連続紙の場合

印刷できる行数
行間隔（6LPIまたは8LPI）別に，連続紙プリンタで印刷できる最大行数を次の表に示します。

表3-9　連続紙の印刷できる最大行数

縦サイズ | 最大行数
6LPIの場合 | 8LPIの場合
304.8mm（12インチ） | 72 | 96
279.4mm（11インチ） | 66 | 88
254.0mm（10インチ） | 60 | 80
228.6mm（9インチ） | 54 | 72
177.8mm（7インチ） | 42 | 56
152.4mm（6インチ） | 36 | 48
127.0mm（5インチ） | 30 | 40
139.7mm（5　1/2インチ） | 33 | 44
143.8mm（5　2/3※インチ） | 34 | －
101.6mm（4インチ） | 24 | 32
114.3mm（4　1/2インチ） | 27 | 36
88.9mm（3　1/2インチ） | 21 | 28
93.0mm（3　2/3※インチ） | 22 | －

（凡例）

－：該当しない。

注※

8LPIではn/3単位の長さのものは印刷ずれが発生します。

印刷できる列数
文字間隔（CPIまたはポイント）別に，連続紙プリンタで印刷できる最大列数を次の表に示します。表中の値は文字サイズが9ポイント相当になっています。

表3-10　各文字間隔（CPI）別の印刷できる最大列数（半角）

用紙横幅

文字間隔

10CPI
12CPI
15CPI

381.0mm（15インチ）
136
163
204

279.4mm（11インチ）
100
120
150

254.0mm（10インチ）
90
108
135

表3-11　文字間隔（ポイント）別の印刷できる最大列数（半角）

用紙横幅
文字間隔

0ポイ
ント
1ポイ
ント
2ポイ
ント
3ポイ
ント
4ポイ
ント
5ポイ
ント
6ポイ
ント
7ポイ
ント

381.0mm（15インチ）
204
188
163
153
136
128
116
111

279.4mm（11インチ）
150
138
120
112
100
94
85
81

254.0mm（10インチ）
135
124
108
101
90
85
77
73

(2)　カット紙の場合

カット紙を使用する場合，プリンタにセットした用紙サイズによって，印刷できる行数および列数が変わります。

印刷できる行数
各用紙サイズと行間隔（6LPIまたは8LPI）別に，印刷できる最大行数を次の表に示します。なお，表中の値は次の設定が前提となります。

用紙サイズはWindows 95でのプリンタドライバVP-1000の標準設定値です。
OSやプリンタドライバによって，数値が異なる場合があります。

表3-12　用紙サイズ別の最大印刷行数（6LPI）

用紙サイズ | 用紙向き | 1ページ当たりの最大印刷行数
A4 | 縦 | 64
横 | 44
A5 | 縦 | 44
横 | 29
B4 | 縦 | 80
横 | 55
B5 | 縦 | 55
横 | 37

表3-13　用紙サイズ別の最大印刷行数（8LPI）

用紙サイズ | 用紙向き | 1ページ当たりの最大印刷行数
A4 | 縦 | 86
横 | 59
A5 | 縦 | 59
横 | 39
B4 | 縦 | 107
横 | 74
B5 | 縦 | 74
横 | 50

印刷できる列数
各用紙サイズと文字間隔（CPIまたはポイント）別に，印刷できる最大列数を次の表に示します。なお，表中の値は次の設定が前提となります。

用紙サイズはWindows 95でのプリンタドライバVP-1000の標準設定値です。
OSやプリンタドライバによって，数値が異なる場合があります。

文字サイズは9ポイント相当で固定です。

表3-14　各用紙サイズと文字間隔（CPI）別の印刷できる最大列数（半角）

用紙サイズ

文字間隔（CPI）

10CPI
12CPI
15CPI

A4
縦
80
96
120

横
114
137
171

A5
縦
55
67
83

横
80
96
120

B4
縦
98
118
148

横
136
163
204

B5
縦
69
83
103

横
98
118
148

各用紙サイズと文字間隔（ポイント）別の印刷できる最大列数を次の表に示します。なお，表中の値は次の設定が前提となります。

用紙サイズはWindows 95でのプリンタドライバVP-1000の標準設定値です。
OSやプリンタドライバによって，数値が異なる場合があります。

文字サイズは9ポイント相当で固定

表3-15　各用紙サイズと文字間隔（ポイント）別の印刷できる最大列数（半角）

文字間隔
ポイント
（ドット数）
各文字間隔での1行当たりの最大列数

0
（0）
1
（2）
2
（3）
3
（5）
4
（6）
5
（8）
6
（9）
7
（11）

用
紙
サ
イ
ズ
A4
縦
120
111
96
90
80
76
68
65

横
171
158
137
128
114
108
98
93

A5
縦
83
77
67
62
55
52
47
45

横
120
111
96
90
80
76
68
65

B4
縦
148
136
118
111
98
93
84
80

横
204
188
163
153
136
128
116
111

B5
縦
103
95
83
77
69
65
59
56

横
148
136
118
111
98
93
84
80

3.1.5　印字領域とレイアウト領域の決定

＜この項の構成＞

(1)　印字領域とレイアウト領域との関係（連続紙）

(2)　印字領域とレイアウト領域との関係（カット紙）

(1)　印字領域とレイアウト領域との関係（連続紙）

図3-3　印字領域（連続紙の場合）

注意

けい線帳票属性（連続紙）ダイアログで印刷開始位置とレイアウト領域のサイズを設定できます。このとき，印刷開始位置は「上オフセット／左オフセット（印字領域からの位置）」の項目で，レイアウト領域のサイズは「縦／横（行／列）」の項目で設定します。

1ページの長さは，ベタ打ちするかまたは用紙のミシン目単位で帳票を印刷するかで設定方法が異なります。運用別の設定方法については，「3.1.9　けい線帳票の印刷方法」を参照してください。

連続紙プリンタを使用する場合，1ページ当たりのページ行数は，表示・印刷セットアップの指定に従います。印字領域を含めて1ページ全体に印刷できる最大行数は127行です。

C/S構成の場合，実行時のページ先頭行はXMAP3印刷サービスが起動されて最初の印刷要求が出されたときの印刷ヘッドの位置となります。このとき，表示・印刷セットアップで設定した1ページ当たりの行数は，APが終了するかプリンタがクローズされるまで引き継がれます。

スタンドアロン構成の場合，実行時のページ先頭行はAPが起動されたときの印刷ヘッドの位置となります。このとき，表示・印刷セットアップで設定した1ページ当たりの行数は，APが終了するまで引き継がれます。

表示・印刷セットアップについては，マニュアル「XMAP3 開発・実行ガイド」を参照してください。

(2)　印字領域とレイアウト領域との関係（カット紙）

図3-4　印字領域（カット紙）

注意

けい線帳票属性ダイアログ（カット紙）で印刷開始位置とレイアウト領域のサイズを設定できます。このとき，印刷開始位置は「上オフセット／左オフセット（印字領域からの位置）」の項目で，レイアウト領域のサイズは「縦／横」の項目で設定します。

3.1.6　定義パターンの決定

定義パターンとは，標準的なレイアウト領域のサイズやパターンがあらかじめ設定されている，レイアウト定義の基本フォーマットです。

ここでは，決定した用紙サイズおよびます目サイズを基にして，レイアウト定義で使用する定義パターンを決定します。XMAP3では，汎用的な定義パターンを提供しているので，決定した用紙サイズおよびます目サイズから定義パターンを選択します。XMAP3で提供している定義パターンについては，「付録B　XMAP3で提供している定義パターン」を参照してください。

なお，定義パターンはユーザが作成することもできます。定義パターンを作成する場合は，マニュアル「XMAP3 開発・実行ガイド」を参照してください。

3.1.7　印刷動作の指定

EPSON ESC/P J84コマンドに準拠したプリンタで連続紙を印刷する場合，改ページのタイミングを指定できます。連続紙帳票をミシン目単位で印刷したい場合，けい線帳票属性（連続紙）ダイアログで，「印刷前改ページ」または「印刷後改ページ」を指定します。ベタ打ちをする場合，「改ページしない」を指定します。また，表示・印刷セットアップの高度な設定：プリンタダイアログで，改ページの動作をXMAP3が制御するか，プリンタに任せるかを指定できます。XMAP3で使用するプリンタをXMAP3以外のアプリケーションでも使用する場合，改ページの動作をXMAP3が制御する設定にすると，印刷の開始位置がページの先頭にならないことがあります。XMAP3で使用するプリンタをXMAP3以外のアプリケーションでも使用する場合は，改ページの動作をプリンタに任せる設定にすることをお勧めします。

印刷モードがESC/Pスルーで，改ページの動作をXMAP3が制御する設定にしている場合，改ページ量はXMAP3ドローを使用した帳票定義時のレイアウト領域，および表示・印刷環境ファイルの設定で決まります。詳細は，「3.1.9(1)　連続紙へのベタ打ち」および「3.1.9(2)　ミシン目単位での改ページ」を参照してください。印刷モードがGDIの場合，改ページ量はプリンタドライバで設定した用紙サイズの値となります。

＜この項の構成＞

(1)　印刷前の改ページ

(2)　印刷後の改ページ

(3)　改ページしない

(1)　印刷前の改ページ

帳票に印刷する前に改ページして，次のページ先頭にプリンタの印刷ヘッドを位置づけたあとに印刷します。表示・印刷セットアップで，改ページの動作をXMAP3が制御する設定にしている場合，帳票の2ページ目以降の印刷で有効になります。改ページの動作をプリンタに任せる設定にした場合，使用するプリンタの設定に従って改ページが実行されます。なお，2ページ目以降で改ページをする際に，前ページの印刷が最終行で終わっていて，これから印刷を開始するページの先頭にプリンタの印刷ヘッドがすでに位置づいている場合，改ページはしません。

印刷前の改ページを指定した例を次に示します。

(2)　印刷後の改ページ

帳票に印刷したあとに改ページして，印刷が終わった位置からそのページの最後の行まで，空白行を印刷しないで改ページします。なお，前ページの印刷が最終行で終わっていて，これから印刷を開始するページの先頭にプリンタの印刷ヘッドがすでに位置づいている場合，改ページはしません。

印刷後の改ページを指定した例を次に示します。

(3)　改ページしない

印刷終了後，改ページ動作をしません。APでの処理が終了した時点での位置で，印刷ヘッドは停止します。

3.1.8　用紙排出の指定

日立製のシリアルプリンタ（水平インサータ付き）でカット紙を使用する場合，用紙の排出方法を指定できます。用紙排出の指定は，表示・印刷セットアップで「日立製インサータプリンタ」を選択したときだけ有効です。

印刷モードがGDIの場合，用紙はホッパ側に排出されます。排出方法を指定すると，用紙を吸入した側（ホッパ側）に排出するか，吸入側とは反対側（スタッカ側）に排出するか，または印刷を終了した位置で停止して用紙排出をしないかを指定できます。排出方法は，けい線帳票属性（カット紙）ダイアログの「排出先」に指定します。

排出先の指定と実際に排出される方向を次に示します。

「排出先」 | 用紙が排出される方向
排出方向1 | スタッカ側
排出方向2 | ホッパ側
排出しない | 用紙を排出しない

注

出力データが設定した用紙をはみ出る場合，用紙はスタッカ側に排出されます。

3.1.9　けい線帳票の印刷方法

例題に沿って，連続紙を使用した印刷制御と帳票定義との関連について説明します。

＜この項の構成＞

(1)　連続紙へのベタ打ち

(2)　ミシン目単位での改ページ

(1)　連続紙へのベタ打ち

連続紙に対して帳票の間隔を空けないで，データをベタ打ちで出力します。用紙のミシン目とは関係なく，帳票が印刷されます。なお，プリンタに印刷モードとしてGDIを使用しているときは，連続紙へのベタ打ちはできません。

(a)　帳票定義の概要

帳票定義前に，表示・印刷セットアップダイアログで，標準の印刷ページ長（POPAGE）が0になっていることを確認しておきます。

また，ドローを使用して，次のように定義します。

新規作成ダイアログで，定義対象の選択に［シリアルインパクト　けい線帳票（連続紙）］を指定します。

けい線帳票属性（連続紙）ダイアログで，印刷動作に「改ページしない」を指定します。

帳票定義ウィンドウで，出力フィールドを配置し，属性を定義します。

表示・印刷セットアップダイアログについては，マニュアル「XMAP3 開発・実行ガイド」を参照してください。

(2)　ミシン目単位での改ページ

連続紙に対して，ドローで定義した印字領域が実際の用紙のページ（ミシン目からミシン目）より短いとき，表示・印刷セットアップでページ長を指定する必要があります。このとき，帳票の印刷は，常にミシン目の先頭から数えて開始されます。なお，改ページの動作は，XMAP3が制御する設定とプリンタに任せる設定から選択できます。改ページの動作をプリンタに任せる設定にした場合，実際の改ページ量はプリンタに依存します。

(a)　帳票定義の概要（改ページの動作をXMAP3が制御する設定の場合）

帳票定義前に，表示・印刷セットアップダイアログで，改ページの動作をXMAP3が制御する設定にしておきます。また，表示・印刷セットアップダイアログで，連続紙のミシン目の間隔を，1ページの長さとして設定しておきます。ミシン目の間隔が279.4mm（11インチ）の場合，印刷ページ長（POPAGE）×印刷行ピッチ（POLNPC）が279.4mm（11インチ）になるように指定します。

改ページの動作，印刷ページ長および印刷行ピッチの指定例を次に説明します。

（指定例）

表示・印刷セットアップダイアログのプリンタタブで［高度な設定...］を選択し，高度な設定：プリンタダイアログの改ページの動作で，「XMAP3が制御する」を指定します。

高度な設定：プリンタダイアログの印刷ページ長（POPAGE）に66を指定します。

表示・印刷環境ファイルの印刷行ピッチ（POLNPC）に6LPIを指定します。

この指定によって，66 × 4.23mm（1/6インチ） ≒ 279.4mm（11インチ）となり，ミシン目の間隔を279.4mm（11インチ）に設定できます。なお，8LPIのときは，印刷ページ長の行数が偶数になるように，指定してください。

表示・印刷セットアップダイアログについては，マニュアル「XMAP3 開発・実行ガイド」を参照してください。

また，ドローを使用して，次のように定義します。

新規作成ダイアログで，定義対象の選択に［シリアルインパクトプリンタ　けい線帳票（連続紙）］を指定します。

けい線帳票属性（連続紙）ダイアログで，印刷動作に「印刷後改ページ」を指定します。

帳票定義ウィンドウで出力フィールドを配置し，属性を定義します。

(b)　帳票定義の概要（改ページの動作をプリンタに任せる設定の場合）

帳票定義前に，表示・印刷セットアップダイアログで，改ページの動作をプリンタに任せる設定にしておきます。

改ページの動作の設定方法を次に説明します。

（設定方法）

表示・印刷セットアップダイアログのプリンタタブで［高度な設定...］を選択し，高度な設定：プリンタダイアログの改ページの動作で，［プリンタにまかせる］を指定します。

高度な設定：プリンタダイアログの印刷ページ長（POPAGE）を指定します。また，表示・印刷環境ファイルの印刷行ピッチ（POLNPC）を指定します。このとき，印刷ページ長（POPAGE）×印刷行ピッチ（POLNPC）の値が帳票レイアウト長より大きくなるように指定します。

(c)　注意事項

印刷領域が，表示・印刷セットアップで指定した用紙の長さと同じ場合，印刷動作に「印刷後改ページ」を指定しても改ページされません。次のページの先頭に位置づけられます。

3.1.10　シリアルインパクトプリンタの印字合わせ

シリアルインパクトプリンタは，ハードウェアの機構的な制約で，正しく印字されないことがあります。そのため，あらかじめテスト印刷してから帳票を設計します。

次に，シリアルインパクトプリンタの印字合わせの手順を説明します。

マニュアルまたはヘルプで，用紙サイズの行／列数を確認する。

ドローを起動し，実際に予定の行／列の文字を並べてみる。

プリンタを設定する。
表示・印刷セットアップダイアログでプリンタの環境を設定します。表示・印刷セットアップダイアログについては，マニュアル「XMAP3 開発・実行ガイド」を参照してください。

ドローのテスト印刷などを使用して実際に印刷する。
最初の文字の印字位置を確認し，この位置をドローのレイアウト領域と合わせます。

印字を確認して不具合があった場合，ます数を変更する。
ます数の変更は，けい線帳票属性ダイアログでレイアウト領域の行または列数のます数を変更します。

再度，手順の2からやり直す。

3.1.11　印刷ドキュメント名の指定

印刷ドキュメント名を指定すると，帳票印刷時，Windowsのプリンタスプーラに任意のドキュメント名で印刷データを登録できます。なお，印刷ドキュメント名は，帳票定義時または業務実行時に指定できます。業務実行時の条件によって印刷ドキュメント名が変わる場合は，業務実行時にAPから指定することをお勧めします。

印刷ドキュメント名は，帳票属性ダイアログの［印刷ドキュメント名...］ボタンをクリックして表示される印刷ドキュメント名ダイアログで指定します。

印刷ドキュメント名ダイアログを次に示します。

＜この項の構成＞

(1)　帳票定義時に指定する場合（印刷ドキュメント名）

(2)　業務実行時に指定する場合（印刷ドキュメント名指定項目）

(1)　帳票定義時に指定する場合（印刷ドキュメント名）

印刷ドキュメント名を帳票定義時に指定する場合は，印刷ドキュメント名ダイアログの「印刷ドキュメント名」に指定します。

(2)　業務実行時に指定する場合（印刷ドキュメント名指定項目）

印刷ドキュメント名をAPから指定するには，印刷ドキュメント名ダイアログの［印刷ドキュメント名をAPで変更する］チェックボタンを選択状態にしてください。

ただし，データ名，桁，データ長の値を変更する場合は，ドローセットアップで「けい線／プレプリント帳票」を選択し，印刷ドキュメント名動的変更のデータ名の設定を変更する必要があります。

詳しくは，マニュアル「XMAP3 開発・実行ガイド」を参照してください。

3.2　プレプリント帳票の用紙設計

この節では，プレプリント帳票（シリアルインパクトプリンタ）の用紙の設計について説明します。

＜この節の構成＞

3.2.1　プレプリント帳票の用紙設計の流れ

3.2.2　用紙サイズの決定

3.2.3　ます目サイズの決定

3.2.4　印字領域とレイアウト領域の決定

3.2.5　定義パターンの決定

3.2.6　印刷動作の指定

3.2.7　用紙排出の指定

3.2.8　プレプリント帳票の印刷方法

3.2.9　下敷き機能の利用

3.2.10　印刷ドキュメント名の指定

3.2.1　プレプリント帳票の用紙設計の流れ

180dpiのシリアルインパクトプリンタ用のプレプリント帳票です。プレプリント帳票の場合，用紙サイズとます目の組み合わせを，XMAP3が定義パターンとして用意しています。新規作成ダイアログから定義パターンを選択し，プレプリント帳票をレイアウトするだけでプレプリント帳票を設計できます。なお，XMAP3で用意している定義パターンについては，「付録B　XMAP3で提供している定義パターン」を参照してください。

帳票の用紙設計では，プレプリント帳票の用紙サイズや帳票上に配置する文字サイズ・文字間隔などを決定します。

プレプリント帳票の用紙設計の流れを次の図に示します。

図3-5　プレプリント帳票の用紙設計の流れ

3.2.2　用紙サイズの決定

プレプリント帳票で使用する用紙の仕様について説明します。

＜この項の構成＞

(1)　連続紙で使用できる用紙サイズ

(2)　カット紙で使用できる用紙サイズ

(1)　連続紙で使用できる用紙サイズ

プレプリント帳票の連続紙で使用できる主な用紙サイズ（縦サイズまたは横サイズ）を次の表に示します。なお，表中の値は，ESC/Pスルーを使用し，オフセットを0にしたときの値です。自由な用紙（フリー）の場合については省略しています。

表3-16　プレプリント帳票の連続紙で使用できる用紙サイズ（縦サイズ）

縦サイズ | 印刷できる領域
304.8mm（12インチ） | 2,160ドット | 304.8mm | 2,160ドット
279.4mm（11インチ） | 1,980ドット | 279.4mm | 1,980ドット
254.0mm（10インチ） | 1,800ドット | 254.0mm | 1,800ドット
228.6mm（9インチ） | 1,620ドット | 228.6mm | 1,620ドット
177.8mm（7インチ） | 1,260ドット | 177.8mm | 1,260ドット
152.4mm（6インチ） | 1,080ドット | 152.4mm | 1,080ドット
127.0mm（5インチ） | 900ドット | 127.0mm | 900ドット
139.7mm（5　1/2インチ） | 990ドット | 139.7mm | 990ドット
143.8mm（5　2/3インチ） | 1,020ドット | 143.8mm | 1,020ドット
101.6mm（4インチ） | 720ドット | 101.6mm | 720ドット
114.3mm（4　1/2インチ） | 810ドット | 114.3mm | 810ドット
88.9mm（3　1/2インチ） | 630ドット | 88.9mm | 630ドット
93.0mm（3　2/3インチ） | 660ドット | 93.0mm | 660ドット

表3-17　プレプリント帳票の連続紙で使用できる用紙サイズ（横サイズ）

横サイズ | 印刷できる領域
381.0mm（15インチ） | 2,700ドット | 355.6mm | 2,340ドット
279.4mm（11インチ） | 1,980ドット | 254.0mm | 1,800ドット
254.0mm（10インチ） | 1,800ドット | 228.6mm | 1,620ドット
203.2mm（8インチ） | 1,440ドット | 177.8mm | 1,260ドット
127.0mm（5インチ） | 900ドット | 101.6mm | 720ドット

ドロー，プリンタドライバおよび表示・印刷セットアップの関係を次の表に示します。

表3-18　ドロー，プリンタドライバおよび表示・印刷セットアップの関係（連続紙）

表示・印刷
セットアップ
内容
ドローの設定
Windows上プリンタ
（プリンタドライバ）の設定

Windows対応
GDIシリアルイン
パクトプリンタ
マージン
－
プリンタドライバの設定値

ページ長
無効
プリンタドライバの設定値

改ページ制御
無効
無効

ESC/P準拠
日立ESC/Pインサ
ータプリンタ
マージン
－
無効

ページ長
有効
無効

改ページ制御
有効
無効

（凡例）

－：該当しない。

(2)　カット紙で使用できる用紙サイズ

プレプリント帳票のカット紙で使用できる主な用紙サイズを次の表に示します。なお，表中の値は，オフセットを0にしたときの値です。

表3-19　プレプリント帳票のカット紙で使用できる用紙サイズ〈180dpiで計算した値〉

用紙サイズ
用紙サイズ
印刷できる領域

mm
ドット
mm
ドット

A4（縦×横）
210×297
1,488×2,104
183×287
1,296×2,033

A5（縦×横）
148×210
1,048×1,488
121×200
857×1,417

B4（縦×横）
257×364
1,821×2,579
230×354
1,629×2,508

B5（縦×横）
182×257
1,289×1,821
155×247
1,098×1,750

フリー
（自由な用紙）
最大
最大
最大
最大
32,765×32,765

注

プレプリント帳票では，用紙サイズ指定による給紙は制御できません。そのため，用紙サイズに関係なく印刷できます。はがき，ラベル紙，1枚ずつ切り取った連続紙もカット紙扱いとなります。このときは「フリー」指定となります。

ドロー，プリンタドライバおよび表示・印刷セットアップの関係を次の表に示します。

表3-20　ドロー，プリンタドライバおよび表示・印刷セットアップの関係（カット紙）

表示・印刷
セットアップ
内容
ドローの設定
Windows上プリンタ
（プリンタドライバ）の設定

Windows対応
GDIシリアルインパクトプリンタ
マージン
－
プリンタドライバの設定値

用紙サイズ
－
プリンタドライバの設定値

排出先
無効
プリンタドライバの設定値

ESC/P準拠
日立ESC/Pインサータプリンタ
マージン
－
無効

用紙サイズ
－
無効

排出先
有効
無効

（凡例）

－：該当しない。

3.2.3　ます目サイズの決定

＜この項の構成＞

(1)　ます目の設定

(2)　基準ます目

(1)　ます目の設定

ます目は，文字サイズと文字間隔（CPI）/行間隔（LPI）の組み合わせで決まります。

プレプリント帳票（連続紙／カット紙）では，次のます目が設定できます。なお，CPIとは25.4mm（1インチ）当たり何文字印刷（10～15文字）できる文字間隔かを表します。また，LPIとは25.4mm（1インチ）当たり何行印刷（6～8行）できる行間隔かを表します。プレプリント帳票では，文字サイズは9ポイント相当で固定になります。

10CPI/6LPI

12CPI/6LPI

15CPI/6LPI

行間隔については「3.1.3(1)(a)　行間隔」を参照してください。連続紙とカット紙で印刷できる行列数については，「3.1.4　連続紙とカット紙で印刷できる行列数」を参照してください。

(2)　基準ます目

文字やけい線などを配置する上での基準として，半角文字で1文字分の領域（基準ます目）のサイズが設定されます。また，行の先頭文字が半角の場合と全角の場合では，行への文字の割り付け位置が異なります。行の先頭文字が半角の場合および全角の場合での割り付け位置と基準ます目の構成を次の図に示します。

図3-6　行への文字の割り付けと基準ます目の構成

基準ます目は，帳票属性で指定した「ます目設定」で決まります。

3.2.4　印字領域とレイアウト領域の決定

＜この項の構成＞

(1)　印字領域とレイアウト領域との関係（連続紙）

(2)　印字領域とレイアウト領域との関係（カット紙）

(1)　印字領域とレイアウト領域との関係（連続紙）

図3-7　印字領域（連続紙の場合）

注意

プレプリント帳票属性（連続紙）ダイアログで印刷開始位置とレイアウト領域のサイズを設定できます。このとき，印刷開始位置は「上オフセット／左オフセット（印字領域からの位置）」の項目で，レイアウト領域のサイズは「縦／横（行／列）」の項目で設定します。

1ページの長さは，ベタ打ちするか，または用紙のミシン目単位で帳票を印刷するかで設定方法が異なります。運用別の設定方法については，「3.2.8　プレプリント帳票の印刷方法」を参照してください。

連続紙プリンタを使用する場合，1ページ当たりのページ行数は，表示・印刷セットアップの指定に従います。印刷最大行数は127行です。

C/Sシステム構成の場合，実行時のページ先頭行はXMAP3印刷サービスが起動されて最初の印刷要求が出されたときの印刷ヘッドの位置となります。このとき，表示・印刷セットアップで設定した1ページ当たりの行数は，APが終了するかプリンタがクローズされるまで引き継がれます。

スタンドアロン構成の場合，実行時のページ先頭行はAPが起動されたときの印刷ヘッドの位置となります。このとき，表示・印刷セットアップで設定した1ページ当たりの行数は，APが終了するまで引き継がれます。

表示・印刷セットアップについては，マニュアル「XMAP3 開発・実行ガイド」を参照してください。

(2)　印字領域とレイアウト領域との関係（カット紙）

図3-8　印字領域（カット紙）

注意

プレプリント帳票属性（カット紙）ダイアログで印刷開始位置とレイアウト領域のサイズを設定できます。このとき，印刷開始位置は「上オフセット／左オフセット（印字領域からの位置）」の項目で，レイアウト領域のサイズは「縦／横」の項目で設定します。

3.2.5　定義パターンの決定

定義パターンとは，標準的なレイアウト領域のサイズやパターンがあらかじめ設定されている，レイアウト定義の基本フォーマットです。

ここでは，決定した用紙サイズおよびます目サイズを基にして，レイアウト定義で使用する定義パターンを決定します。XMAP3では，汎用的な定義パターンを提供しているので，決定した用紙サイズおよびます目サイズから定義パターンを選択します。XMAP3で提供している定義パターンについては，「付録B　XMAP3で提供している定義パターン」を参照してください。

なお，定義パターンはユーザが作成することもできます。定義パターンを作成する場合は，マニュアル「XMAP3 開発・実行ガイド」を参照してください。

3.2.6　印刷動作の指定

EPSON ESC/P J84コマンドに準拠したプリンタで連続紙を使用して印刷する場合，改ページのタイミングを指定できます。連続紙帳票をミシン目単位で印刷したい場合，プレプリント帳票属性（連続紙）ダイアログで「印刷前改ページ」または「印刷後改ページ」を指定します。ベタ打ちをする場合，「改ページしない」を指定します。また，表示・印刷セットアップの高度な設定：プリンタダイアログで，改ページの動作をXMAP3が制御するか，プリンタに任せるかを指定できます。XMAP3で使用するプリンタをXMAP3以外のアプリケーションでも使用する場合，改ページの動作をXMAP3が制御する設定にすると，印刷の開始位置がページの先頭にならないことがあります。XMAP3で使用するプリンタをXMAP3以外のアプリケーションでも使用する場合は，改ページの動作をプリンタに任せる設定にすることをお勧めします。

印刷モードがESC/Pスルーで，改ページの動作をXMAP3が制御する設定にしている場合，改ページ量はXMAP3ドローを使用した帳票定義時のレイアウト領域，および表示・印刷環境ファイルの設定で決まります。詳細は，「3.2.8(1)　連続紙へのベタ打ち」および「3.2.8(2)　ミシン目単位での改ページ」を参照してください。印刷モードがGDIの場合，改ページ量はプリンタドライバで設定した用紙サイズの値となります。

＜この項の構成＞

(1)　印刷前の改ページ

(2)　印刷後の改ページ

(3)　改ページしない

(1)　印刷前の改ページ

帳票に印刷する前に改ページして，次のページ先頭にプリンタの印刷ヘッドを位置づけたあとに印刷します。表示・印刷セットアップで，改ページの動作をXMAP3が制御する設定にしている場合，帳票の2ページ目以降の印刷で有効になります。改ページの動作をプリンタに任せる設定にした場合，使用するプリンタの設定に従って改ページが実行されます。なお，2ページ目以降で改ページをする際に，前ページの印刷が最終行で終わっていて，これから印刷を開始するページの先頭にプリンタの印刷ヘッドがすでに位置づいている場合，改ページはしません。

印刷前の改ページを指定した例を次に示します。

(2)　印刷後の改ページ

帳票に印刷したあとに改ページして，印刷が終わった位置からそのページの最後の行まで，空白行を印刷しないで改ページします。なお，前ページの印刷が最終行で終わっていて，これから印刷を開始するページの先頭にプリンタの印刷ヘッドがすでに位置づいている場合，改ページはしません。

印刷後の改ページを指定した例を次に示します。

(3)　改ページしない

印刷終了後，改ページ動作をしません。APでの処理が終了した時点での位置で，印刷ヘッドは停止します。

3.2.7　用紙排出の指定

日立製のシリアルプリンタ（水平インサータ付き）でカット紙を使用する場合，用紙の排出方法を指定できます。用紙排出の指定は，表示・印刷セットアップで「日立製インサータプリンタ」を選択したときだけ有効です。

印刷モードがGDIの場合，用紙はホッパ側に排出されます。排出方法を指定すると，用紙を吸入した側（ホッパ側）に排出するか，吸入側とは反対側（スタッカ側）に排出するか，または印刷を終了した位置で停止して用紙排出をしないかを指定できます。排出方法は，プレプリント帳票属性（カット紙）ダイアログの「排出先」に指定します。

排出先の指定と実際に排出される方向を次に示します。

「排出先」 | 用紙が排出される方向
排出方向1 | スタッカ側
排出方向2 | ホッパ側
排出しない | 用紙を排出しない

注

出力データが設定した用紙をはみ出る場合，用紙はスタッカ側に排出されます。

3.2.8　プレプリント帳票の印刷方法

例題に沿って，連続紙を使用した印刷制御と帳票定義との関連について説明します。

＜この項の構成＞

(1)　連続紙へのベタ打ち

(2)　ミシン目単位での改ページ

(1)　連続紙へのベタ打ち

連続紙に対して帳票の間隔を空けないで，データをベタ打ちで出力します。用紙のミシン目とは関係なく，帳票が印刷されます。なお，プリンタに印刷モードとしてGDIを使用しているときは，連続紙へのベタ打ちはできません。

(a)　帳票定義の概要

帳票定義前に，表示・印刷セットアップダイアログで，印刷ページ長を0に設定しておきます。

また，ドローを使用して，次のように定義します。

新規作成ダイアログで，定義対象の選択に［シリアルインパクト　プレプリント帳票（連続紙）］を指定します。

プレプリント帳票属性（連続紙）ダイアログで，印刷動作に「改ページしない」を指定します。

帳票定義ウィンドウで，出力フィールドを配置し，属性を定義します。

表示・印刷セットアップダイアログについては，マニュアル「XMAP3 開発・実行ガイド」を参照してください。

(2)　ミシン目単位での改ページ

連続紙に対して，ドローで定義した印字領域が実際の用紙のページ（ミシン目からミシン目）より短いとき，表示・印刷セットアップでページ長を指定する必要があります。このとき，帳票の印刷は，常にミシン目の先頭から数えて開始されます。なお，改ページの動作は，XMAP3が制御する設定とプリンタに任せる設定から選択できます。改ページの動作をプリンタに任せる設定にした場合，実際の改ページ量はプリンタに依存します。

(a)　帳票定義の概要（改ページの動作をXMAP3が制御する設定の場合）

帳票定義前に，表示・印刷セットアップダイアログで，改ページの動作をXMAP3が制御する設定にしておきます。また，表示・印刷セットアップダイアログで連続紙のミシン目の間隔を，1ページの長さとして設定しておきます。ミシン目の間隔が279.4mm（11インチ）の場合，印刷ページ長（POPAGE）×印刷行ピッチ（POLNPC）が279.4mm（11インチ）になるように指定します。

改ページの動作，印刷ページ長および印刷行ピッチの指定例を次に説明します。

（指定例）

表示・印刷セットアップダイアログのプリンタタブで［高度な設定...］を選択し，高度な設定：プリンタダイアログの改ページの動作で，「XMAP3が制御する」を指定します。

高度な設定：プリンタダイアログの印刷ページ長（POPAGE）に66を指定します。

表示・印刷環境ファイルの印刷行ピッチ（POLNPC）に6LPIを指定します。

この指定によって，66 × 4.23mm（1/6インチ） ≒ 279.4mm（11インチ）となり，ミシン目の間隔を279.4mm（11インチ）に設定できます。なお，8LPIのときは，印刷ページ長の行数が偶数になるように，指定してください。

表示・印刷セットアップダイアログについては，マニュアル「XMAP3 開発・実行ガイド」を参照してください。

また，ドローを使用して，次のように定義します。

新規作成ダイアログで，定義対象の選択に［シリアルインパクトプリンタ　プレプリント帳票（連続紙）］を指定します。

プレプリント帳票属性（連続紙）ダイアログで，印刷動作に「印刷後改ページ」を指定します。

帳票定義ウィンドウで出力フィールドを配置し，属性を定義します。

(b)　帳票定義の概要（改ページの動作をプリンタに任せる設定の場合）

帳票定義前に，表示・印刷セットアップダイアログで，改ページの動作をプリンタに任せる設定にしておきます。

改ページの動作の設定方法を次に説明します。

（設定方法）

表示・印刷セットアップダイアログのプリンタタブで［高度な設定...］を選択し，高度な設定：プリンタダイアログの改ページの動作で，［プリンタにまかせる］を指定します。

高度な設定：プリンタダイアログの印刷ページ長（POPAGE）を指定します。また，表示・印刷環境ファイルの印刷行ピッチ（POLNPC）を指定します。このとき，印刷ページ長（POPAGE）×印刷行ピッチ（POLNPC）の値が帳票レイアウト長より大きくなるように指定します。

(c)　注意事項

印刷領域が，表示・印刷セットアップで指定した用紙長と同じ場合，印刷動作に「印刷後改ページ」を指定しても改ページされません。次のページの先頭に位置づけられます。

3.2.9　下敷き機能の利用

プレプリント帳票では，用紙のフォーマットイメージをレイアウト領域の背後に（下敷き）表示しながら帳票を定義できます。これを下敷き機能といいます。下敷き機能は，用紙上のけい線などに合わせてオブジェクトの位置を調整するときに使用します。下敷きは，レイアウト時の目安となるだけで，実際の帳票印刷の対象にはなりません。

下敷きとして表示するデータは，あらかじめプレプリント用紙をスキャナで読み取り，256色以下のビットマップファイル（.bmp）として用意しておきます。大きさの制限はありませんが，全体のリソースの上限に注意してください。

次に，下敷き機能を使用するときの操作手順を示します。

＜この項の構成＞

(1)　操作手順

(2)　注意事項

(1)　操作手順

プレプリント紙を使用して，実際にプリンタで先頭印刷文字を印字する。
先頭印刷文字は，位置合わせのために使用する印です。

イメージスキャナを使用して原寸大で入力し，ビットマップファイルを作成する。
描画ソフトなどで鮮明に入力されているか確認します。

作成したビットマップファイルをunderlayフォルダに格納する。
underlayフォルダは，XMAP3インストール先￥userフォルダの下にあります。
ユーザが任意のフォルダに格納しても，表示時に任意のフォルダを選択できます。

ドローの新規作成ダイアログから，「プレプリント帳票」を選択する。

［表示］－［下敷き設定］を選択する。
下敷き設定ダイアログが表示されます。

ファイルを選択し，サイズや色を変更する。

表示を確認する。
あらかじめ印字しておいた先頭印刷文字の印が，レイアウト領域の左上になるように，下敷きを移動します。
下敷きの移動は，［表示］－［下敷き移動］を選択します。

帳票のレイアウトを設定する。

(2)　注意事項

underlayフォルダは，XMAP3インストール先のuserフォルダの下にあります。

着色してある帳票は，スキャナで読み取れないことがあります。そのようなときは，スキャナソフトの設定値を変更して入力してください。XMAP3で入力できるビットマップファイルは，256色以下です。

読み取りサイズに合わせて，拡大または縮小するため，スキャナデータのサイズは大きくてかまいません。ただし，小さくするとドロー上で拡大することになるので，全体的に表示内容が粗くなります。

スキャナで読み取るときは，帳票の左端をスキャナの入力領域の左端に合わせてください。

読み取りに使用する用紙サイズとスキャナで読み取った用紙サイズが異なる場合は，下敷き設定ダイアログの「下敷きサイズ」にスキャナで読み取った用紙サイズを指定してください。

3.2.10　印刷ドキュメント名の指定

印刷ドキュメント名を指定すると，帳票印刷時，Windowsのプリンタスプーラに任意のドキュメント名で印刷データを登録できます。なお，印刷ドキュメント名は，帳票定義時または業務実行時に指定できます。業務実行時の条件によって印刷ドキュメント名が変わる場合は，業務実行時にAPから指定することをお勧めします。

印刷ドキュメント名は，帳票属性ダイアログの［印刷ドキュメント名...］ボタンをクリックして表示される印刷ドキュメント名ダイアログで指定します。

印刷ドキュメント名ダイアログを次に示します。

＜この項の構成＞

(1)　帳票定義時に指定する場合（印刷ドキュメント名）

(2)　業務実行時に指定する場合（印刷ドキュメント名指定項目）

(1)　帳票定義時に指定する場合（印刷ドキュメント名）

印刷ドキュメント名を帳票定義時に指定する場合は，印刷ドキュメント名ダイアログの「印刷ドキュメント名」に指定します。

(2)　業務実行時に指定する場合（印刷ドキュメント名指定項目）

印刷ドキュメント名をAPから指定するには，印刷ドキュメント名ダイアログの［印刷ドキュメント名をAPで変更する］チェックボタンを選択状態にしてください。

ただし，データ名，桁，データ長の値を変更する場合は，ドローセットアップで「けい線／プレプリント帳票」を選択し，印刷ドキュメント名動的変更のデータ名の設定を変更する必要があります。

詳しくは，マニュアル「XMAP3 開発・実行ガイド」を参照してください。

3.3　網掛け帳票の用紙設計

この節では，ページプリンタの網掛け帳票の用紙の扱いについて説明します。なお，手差し給紙をする場合については，マニュアル「XMAP3 開発・実行ガイド」を参照してください。

＜この節の構成＞

3.3.1　網掛け帳票の用紙設計の流れ

3.3.2　用紙サイズの決定

3.3.3　ます目サイズの決定

3.3.4　印刷できる行数と列数

3.3.5　印字領域の決定

3.3.6　定義パターンの決定

3.3.7　印刷部数の指定

3.3.8　印刷ドキュメント名の指定

3.3.1　網掛け帳票の用紙設計の流れ

240dpi／300dpiのページプリンタ用の網掛け帳票です。網掛け帳票の場合，用紙サイズとます目の組み合わせを，XMAP3が定義パターンとして用意しています。新規作成ダイアログから定義パターンを選択し，網掛け帳票をレイアウトするだけで網掛け帳票を設計できます。なお，XMAP3で用意している定義パターンについては，「付録B　XMAP3で提供している定義パターン」を参照してください。

帳票用紙の設計では，網掛け帳票の用紙サイズや帳票上に配置する文字サイズ・文字間隔などを決定します。

網掛け帳票の用紙設計の流れを次の図に示します。

図3-9　網掛け帳票の用紙設計の流れ

3.3.2　用紙サイズの決定

網掛け帳票の用紙のサイズを設計します。ここでは，網掛け帳票のページレイアウトで使用できる主な用紙サイズを次の表に示します。はがきなどに印刷する場合には，用紙サイズに「フリー」を指定します。なお，プリンタのdpiに関係なくドローのレイアウト領域では，240dpiのドットサイズを指定してください。

表3-21　用紙サイズ

用紙
サイズ
用紙サイズ（縦×横）
印刷できる領域（縦×横）

mm
ドット
mm
ドット

240dpi
300dpi
240dpi
300dpi

A4
210×297
1,984×
　2,806
2,480×
　3,507
199×286
1,883×
　2,705
2,350×
　3,377

A5
148×210
1,398×
　1,984
1,748×
　2,480
137×199
1,297×
　1,883
1,618×
　2,350

B4
257×364
2,428×
　3,439
3,035×
　4,299
246×353
2,327×
　3,338
2,905×
　4,169

B5
182×257
1,719×
　2,428
2,149×
　3,035
171×246
1,618×
　2,327
2,019×
　2,905

フリー
最大
最大
32,765×
　32,765
最大
32,765×
　32,765
最大
最大
32,765×
　32,765
最大
32,765×
　32,765

ドロー，プリンタドライバおよび表示・印刷セットアップとの関係を次の表に示します。

表3-22　ドロー，プリンタドライバおよび表示・印刷セットアップとの関係

表示・印刷
セットアップ
内容
ドローの設定
Windows上プリンタ
（プリンタドライバ）の設定

GDIページプリンタ
マージン
有効（プリンタドライバの設定値以上である場合）
有効（ドローの設定値が小さいとき）

用紙サイズ
有効
無効※

コピー部数
有効
有効

PDLスルー
マージン
有効（プリンタドライバの設定値以上である場合）
有効（ドローの設定値が小さいとき）

用紙サイズ
有効
無効※

コピー部数
有効
無効

PDFファイル出力
マージン
有効
－

用紙サイズ
有効
－

コピー部数
無効
－

（凡例）

－：該当しない。

注※

ドローで用紙サイズに「フリー」を指定した場合には，表示・印刷セットアップの値が優先されます。また，GDIページプリンタの場合，表示・印刷セットアップで「OS設定優先」に設定すると，プリンタドライバの設定が有効になります。

3.3.3　ます目サイズの決定

＜この項の構成＞

(1)　ます目の設定

(2)　文字の大きさ

(3)　基準ます目

(1)　ます目の設定

ます目は，文字サイズと文字間隔（CPI）/行間隔（LPI）の組み合わせで決まります。

ページプリンタでは，次のます目が設定できます。なお，CPIとは，25.4mm（1インチ）当たり何文字印刷（10～15文字）できるかを表す，文字間隔の単位です。また，LPIとは，25.4mm（1インチ）当たり何行印刷（6～8行）できるかを表す，行間隔の単位です。

10CPI/6LPI

12CPI/6LPI

15CPI/8LPI

上記ます目のほか，「自由な設定」で，次に示す条件の組み合わせも設定できます。

行間隔：3，4，6，8LPI

文字間隔：0～7ポイント

文字サイズ：7，9ポイント

(a)　行間隔

行間隔（LPI）は，3，4，6および8LPIがあります。行間隔ごとのドット数と算出方法の例を次に示します。なお，ドローのレイアウト定義上では，240dpiの値で配置されるので，位置やサイズを設計する場合は，240dpi値で算出してください。

算出例

「行間隔6LPI」のときの6行目のドット数（240dpi）

40ドット×6行＝240ドット

表3-23　行間隔ごとのドット数

行間隔 | 240dpi（ドット数） | 300dpi（ドット数）
3LPI | 80 | 100
4LPI | 60 | 75
6LPI | 40 | 50
8LPI | 30 | 37.5※

注※

印刷時には，37ドットと38ドットを組み合わせて補正します。

(b)　文字の間隔

ます目の設定を自由にした場合，文字の間隔は0～7ポイントの範囲で設定できます。文字間隔ごとのドット数と算出方法の例を次に示します。なお，ドローのレイアウト定義上では，240dpi換算で配置されるので，位置やサイズを設計する場合は，240dpiで算出してください。また，文字サイズについては，「3.3.3(2)　文字の大きさ」を参照してください。

算出例

「文字サイズ9ポイント，文字の間隔5ポイント」のます目サイズで5列目のドット数（240dpi）

(16ドット(横)＋8ドット)×5ます＝120ドット

「文字サイズ9ポイント，文字の間隔0」で全角5文字を配置したときのドット数（240dpi）

(32ドット(横)＋0ドット(全角から全角の文字))×5文字＝160ドット

表3-24　文字の間隔ごとのドット数（240dpi）

文字の間隔
半角－半角の文字
（ドット数）
全角－全角の文字
（ドット数）
半角－全角の文字
（ドット数）

0ポイント
0
0
0

1ポイント
2
4
3

2ポイント
3
6
5

3ポイント
5
10
8

4ポイント
6
12
9

5ポイント
8
16
12

6ポイント
9
18
14

7ポイント
11
22
17

表3-25　文字の間隔ごとのドット数（300dpi）

文字の間隔
半角－半角の文字
（ドット数）
全角－全角の文字
（ドット数）
半角－全角の文字
（ドット数）

0ポイント
0
0
0

1ポイント
2/3
5
3/4

2ポイント
3/4
7/8
4/5

3ポイント
6/7
12/13
9/10

4ポイント
7/8
15
12/13

5ポイント
10
20
15

6ポイント
12/13
22/23
18/19

7ポイント
13/14
27/28
19/20

注

表中に記述されているn/mは，nまたはmのドットの組み合わせで補正することを意味します。

(2)　文字の大きさ

ページプリンタでは，次に示す文字の編集ができます。また，値を変更すると印刷できる行列数が変わってきます。

(a)　文字サイズ（ポイント数）の変更

7または9ポイントのサイズから選べます。文字サイズ別の文字の大きさ（ドット数）と算出方法の例を次に示します。なお，ドローのレイアウト定義上では，240dpi換算で配置されるので，位置やサイズを設計する場合は，240dpiで算出してください。

算出例

「文字サイズ9ポイント，文字の間隔0」のます目サイズで5列目のドット数（240dpi）

(16ドット(横)＋0ドット)×5ます＝80ドット

「文字サイズ9ポイント，文字の間隔0」で全角5文字を配置したときのドット数（240dpi）

(32ドット(横)＋0ドット)×5文字＝160ドット

表3-26　文字サイズ別の文字の大きさ（ドット数）

文字サイズ
240dpi
300dpi

半角文字の大きさ（縦×横）
全角文字の大きさ（縦×横）
半角文字の大きさ（縦×横）
全角文字の大きさ（縦×横）

7ポイント
24×12
24×24
30×15
30×30

9ポイント
32×16
32×32
40×20
40×40

(b)　文字の拡大

網掛け帳票では文字を拡大できます。文字の拡大には，倍角，平体，および長体の三つを指定できます。拡大を指定すると印刷される文字の大きさも，次のように変わります。なお，ここでの説明は半角文字を仮定しています。全角文字の場合は，説明に示されているます目の値が2倍になります。

倍角：1文字につき，縦横方向に2ます分の領域を占有します。

平体：1文字につき，横方向に2ます分の領域を占有します。

長体：1文字につき，縦方向に2ます分の領域を占有します。

文字の拡大による文字の大きさ（ドット数）を次の表に示します。

表3-27　文字の拡大による文字の大きさ（ドット数：240dpi）

文字の拡大
7ポイント
9ポイント

半角文字
（縦×横）
全角文字
（縦×横）
半角文字
（縦×横）
全角文字
（縦×横）

標準
24×12
24×24
32×16
32×32

倍角
48×24
48×48
64×32
64×64

平体
24×24
24×48
32×32
32×64

長体
48×12
48×24
64×16
64×32

表3-28　文字の拡大による文字の大きさ（ドット数：300dpi）

文字の拡大
7ポイント
9ポイント

半角文字
（縦×横）
全角文字
（縦×横）
半角文字
（縦×横）
全角文字
（縦×横）

標準
30×15
30×30
40×20
40×40

倍角
60×30
60×60
80×40
80×80

平体
30×30
30×60
40×40
40×80

長体
60×15
60×30
80×20
80×40

(3)　基準ます目

文字やけい線などを配置する上での基準として，半角文字で1文字分の領域（基準ます目）のサイズが設定されます。また，行の先頭文字が半角の場合と全角の場合では，行への文字の割り付け位置が異なります。行の先頭文字が半角の場合および全角の場合での割り付け位置と基準ます目の構成を次の図に示します。

図3-10　行への文字の割り付けと基準ます目の構成

基準ます目は，帳票属性で指定した「ます目設定」，「行の間隔」，および「文字の間隔」で決まります。

3.3.4　印刷できる行数と列数

行間隔または文字間隔によって印刷できる行列数について説明します。なお，印刷できる最大行数および最大列数は，LIPSスルーを使用したときの参考値です。

＜この項の構成＞

(1)　印刷できる行数

(2)　印刷できる列数

(1)　印刷できる行数

各用紙サイズと行間隔別に，印刷できる最大行数を次の表に示します。

表3-29　用紙サイズ別の最大印刷行数（240／300dpi）

用紙サイズ
行間隔

3LPI
4LPI
6LPI
8LPI

A3
縦向き
47
63
95
127

横向き
33
44
66
88

A4
縦向き
33
44
66
88

横向き
23
30
46
61

A5
縦向き
23
30
46
61

横向き
15
21
31
42

B4
縦向き
41
55
82
110

横向き
28
38
57
76

B5
縦向き
28
38
57
76

横向き
19
26
39
52

注

この表の値は，マージンが9mmで，次に示す条件を設定したときの例です。プリンタによって多少の誤差があります。

240dpiの場合：プリンタはLBP-B406E　LIPS

300dpiの場合：プリンタはLBP-A309G2　LIPS

(2)　印刷できる列数

各用紙サイズとCPI別の最大印刷列数
各用紙サイズと文字間隔（CPI）別に，印刷できる最大列数を次の表に示します。

表3-30　用紙サイズと文字間隔（CPI）別の最大印刷列数（240／300dpi）

用紙サイズ
9ポイント文字の文字間隔（CPI）

10CPI
12CPI
15CPI

A3
縦
111
133
166

横
159
191
231

A4
縦
76
92
115

横
111
133
166

A5
縦
52
63
78

横
76
92
115

B4
縦
95
114
143

横
137
165
206

B5
縦
65
79
98

横
95
114
143

注

この表の値は，マージンが9mmで，次に示す条件を設定したときの例です。プリンタによって多少の誤差があります。

240dpiの場合：プリンタはLBP-B406E　LIPS

300dpiの場合：プリンタはLBP-A309G2　LIPS

各用紙サイズと文字間隔（ポイント）別の最大印刷列数
各用紙サイズと文字間隔（ポイント）別に，印刷できる最大列数（240／300dpi）を次の表に示します。

表3-31　用紙サイズと文字間隔（ポイント）別の最大印刷列数（240／300dpi）

ポイント数
（ドット数）
用紙サイズ
7ポイント文字
9ポイント文字

0
（0）
1
（2）
2
（3）
3
（5）
4
（6）
0
（0）
1
（2）
2
（3）
3
（5）
4
（6）

A3
縦
222
190
177
157
148
166
148
140
127
121

横
255
255
255
225
212
239
212
201
182
174

A4
縦
153
131
123
108
102
115
102
97
87
83

横
222
190
177
157
148
166
148
140
127
121

A5
縦
105
90
84
74
70
78
70
66
60
57

横
153
131
123
108
102
115
102
97
87
83

B4
縦
190
163
152
134
127
143
127
120
109
104

横
255
235
220
194
183
206
183
173
157
150

B5
縦
131
113
105
93
87
98
87
83
75
71

横
190
163
152
134
127
143
127
120
109
104

注

この表の値は，マージンが9mmで，次に示す条件を設定したときの例です（標準の文字サイズは9ポイントです）。プリンタによって多少の誤差があります。

240dpiの場合：プリンタはLBP-B406E　LIPS

300dpiの場合：プリンタはLBP-A309G2　LIPS

3.3.5　印字領域の決定

帳票を用紙上に印刷する領域（印字領域）の大きさと位置を指定します。ます目サイズの大きさを決めると，用紙に印刷できる行列数が決まります。

印字領域は，用紙上の印刷できる領域内に配置します。ただし，プリンタの機種によって印刷位置が異なるので，用紙の先頭からの印刷はできません※。

注※

PDFファイル出力の場合は先頭からの出力ができます。

印字できる領域を次の図に示します。

図3-11　印字領域

3.3.6　定義パターンの決定

定義パターンとは，標準的なレイアウト領域のサイズやパターンがあらかじめ設定されている，レイアウト定義の基本フォーマットです。

ここでは，決定した用紙サイズおよびます目サイズを基にして，レイアウト定義で使用する定義パターンを決定します。XMAP3では，汎用的な定義パターンを提供しているので，決定した用紙サイズおよびます目サイズから定義パターンを選択します。XMAP3で提供している定義パターンについては，「付録B　XMAP3で提供している定義パターン」を参照してください。

なお，定義パターンはユーザが作成することもできます。定義パターンを作成する場合は，マニュアル「XMAP3 開発・実行ガイド」を参照してください。

3.3.7　印刷部数の指定

印刷部数を指定すると，同じ帳票を一度の出力要求で複数枚印刷できます。印刷部数指定でのコピーは，最大32枚できます。なお，印刷部数は帳票定義時，または業務実行時に指定できます。一方，業務実行時に条件によって出力枚数が変わる場合はAPで指定することをお勧めします。

なお，PDFファイルへ出力する場合，印刷部数の指定は無効となり，常に1枚が仮定されます。

＜この項の構成＞

(1)　帳票定義時に指定する場合（印刷部数）

(2)　業務実行時に指定する場合（印刷部数指定項目）

(1)　帳票定義時に指定する場合（印刷部数）

コピーする枚数を帳票定義時に指定する場合は，網掛け帳票属性ダイアログの「印刷部数」に指定します。印刷部数は「1～32」の範囲で設定できます。

(2)　業務実行時に指定する場合（印刷部数指定項目）

印刷部数を制御するには，網掛け帳票属性ダイアログの［印刷部数をAPで変更する］チェックボタンを選択状態にしてください。ただし，データ名を変更する場合は，ドローセットアップで「網掛け／グラフィック帳票」を選択し，コピー枚数動的変更のデータ名の設定を変更する必要があります。詳しくは，マニュアル「XMAP3 開発・実行ガイド」を参照してください。

3.3.8　印刷ドキュメント名の指定

印刷ドキュメント名を指定すると，帳票印刷時，Windowsのプリンタスプーラに任意のドキュメント名で印刷データを登録できます。なお，印刷ドキュメント名は，帳票定義時または業務実行時に指定できます。業務実行時の条件によって印刷ドキュメント名が変わる場合は，業務実行時にAPから指定することをお勧めします。

印刷ドキュメント名は，帳票属性ダイアログの［印刷ドキュメント名...］ボタンをクリックして表示される印刷ドキュメント名ダイアログで指定します。

印刷ドキュメント名ダイアログを次に示します。

＜この項の構成＞

(1)　帳票定義時に指定する場合（印刷ドキュメント名）

(2)　業務実行時に指定する場合（印刷ドキュメント名指定項目）

(1)　帳票定義時に指定する場合（印刷ドキュメント名）

印刷ドキュメント名を帳票定義時に指定する場合は，印刷ドキュメント名ダイアログの「印刷ドキュメント名」に指定します。

(2)　業務実行時に指定する場合（印刷ドキュメント名指定項目）

印刷ドキュメント名をAPから指定するには，印刷ドキュメント名ダイアログの［印刷ドキュメント名をAPで変更する］チェックボタンを選択状態にしてください。

ただし，データ名，桁，データ長の値を変更する場合は，ドローセットアップで「網掛け／グラフィック帳票」を選択し，印刷ドキュメント名動的変更のデータ名の設定を変更する必要があります。

詳しくは，マニュアル「XMAP3 開発・実行ガイド」を参照してください。

3.4　グラフィック帳票の用紙設計

この節では，ページプリンタのグラフィック帳票の用紙の設計について説明します。なお，手差し給紙をする場合については，マニュアル「XMAP3 開発・実行ガイド」を参照してください。

＜この節の構成＞

3.4.1　グラフィック帳票の用紙設計の流れ

3.4.2　用紙サイズの決定

3.4.3　ます目サイズの決定

3.4.4　印刷できる行数と列数

3.4.5　印字領域の決定

3.4.6　定義パターンの決定

3.4.7　印刷部数の指定

3.4.8　印刷ドキュメント名の指定

3.4.9　下敷き機能の利用

3.4.1　グラフィック帳票の用紙設計の流れ

240dpi／300dpiのページプリンタ用のグラフィック帳票です。グラフィック帳票の場合，用紙サイズとます目の組み合わせを，XMAP3が定義パターンとして用意しています。新規作成ダイアログから定義パターンを選択し，グラフィック帳票をレイアウトするだけでグラフィック帳票を設計できます。なお，XMAP3で用意している定義パターンについては，「付録B　XMAP3で提供している定義パターン」を参照してください。

帳票用紙の設計では，グラフィック帳票の用紙サイズや帳票上に配置する文字サイズ・文字間隔などを決定します。

グラフィック帳票の用紙設計の流れを次の図に示します。

図3-12　グラフィック帳票の用紙設計の流れ

3.4.2　用紙サイズの決定

グラフィック帳票のページレイアウトで使用できる主な用紙サイズを次の表に示します。はがきなどに印刷する場合には，用紙サイズに「フリー」を指定します。なお，プリンタのdpiに関係なく，ドローのレイアウト領域には，240dpiのドットサイズで指定してください。

表3-32　用紙サイズ

用紙
サイズ
用紙サイズ（縦×横）
印刷できる領域（縦×横）

mm
ドット
mm
ドット

240dpi
300dpi
240dpi
300dpi

A4
210×297
1,984×
　2,806
2,480×
　3,507
199×286
1,883×
　2,705
2,350×
　3,377

A5
148×210
1,398×
　1,984
1,748×
　2,480
137×199
1,297×
　1,883
1,618×
　2,350

B4
257×364
2,428×
　3,439
3,035×
　4,299
246×353
2,327×
　3,338
2,905×
　4,169

B5
182×257
1,719×
　2,428
2,149×
　3,035
171×246
1,618×
　2,327
2,019×
　2,905

フリー
最大
最大
32,765×
　32,765
最大
32,765×
　32,765
最大
最大
32,765×
　32,765
最大
32,765×
　32,765

ドロー，プリンタドライバおよび表示・印刷セットアップの関係を次の表に示します。

表3-33　ドロー，プリンタドライバおよび表示・印刷セットアップの関係

表示・印刷
セットアップ
内容
ドローの設定
Windows上プリンタ
（プリンタドライバ）の設定

GDIページプリンタ
マージン
有効（プリンタドライバの設定値以上である場合）
有効（ドローの設定値が小さいとき）

用紙サイズ
有効
無効※

コピー部数
有効
有効

PDLスルー
マージン
有効（プリンタドライバの設定値以上である場合）
有効（ドローの設定値が小さいとき）

用紙サイズ
有効
無効※

コピー部数
有効
無効

PDFファイル出力
マージン
有効
－

用紙サイズ
有効
－

コピー部数
無効
－

（凡例）

－：該当しない。

注※

ドローで用紙サイズに「フリー」を指定した場合には，表示・印刷セットアップの値が優先されます。また，GDIページプリンタの場合，表示・印刷セットアップで「OS設定優先」に設定すると，プリンタドライバの設定が有効になります。

3.4.3　ます目サイズの決定

帳票のます目サイズ，文字の大きさなどを設計します。

＜この項の構成＞

(1)　ます目の設定

(2)　文字の大きさ

(3)　基準ます目

(1)　ます目の設定

ます目は，文字サイズと文字間隔（CPI）/行間隔（LPI）の組み合わせで決まります。

グラフィック帳票では，次のます目が設定できます。なお，CPIとは25.4mm（1インチ）当たり何文字印刷（10～15文字）できる文字間隔かを表します。また，LPIとは25.4mm（1インチ）当たり何行印刷（6～8行）できる行間隔かを表します。

10CPI/6LPI

12CPI/6LPI

15CPI/6LPI

15CPI/8LPI

上記ます目のほか，「自由な設定」で，次に示す条件の組み合わせも設定できます。

行間隔：3，4，6，8，10，12LPI

文字間隔：0～7ポイント

文字サイズ：5，7，9，12，14ポイント

(a)　行間隔

行間隔（LPI）には，3，4，6，8，10，および12LPIがあります。行間隔ごとのドット数と算出方法の例を次に示します。なお，ドローのレイアウト定義上では，240dpiの値で配置されるので，位置やサイズを設計する場合は，240dpi値で算出してください。

算出例

「行間隔6LPI」のときの6行目のドット数（240dpi）

40ドット×6行＝240ドット

表3-34　行間隔ごとのドット数

行間隔 | 240dpi（ドット数） | 300dpi（ドット数）
3LPI | 80 | 100
4LPI | 60 | 75
6LPI | 40 | 50
8LPI | 30 | 37.5※
10LPI | 24 | 30
12LPI | 20 | 25

注※

印刷時には，37ドットと38ドットを組み合わせて補正します。

(b)　文字の間隔

ます目の設定を自由にした場合，文字の間隔は，0～7ポイントの範囲で設定できます。文字間隔ごとのドット数と算出方法の例を次に示します。なお，ドローのレイアウト定義上では，240dpi換算で配置されるので，位置やサイズを設計する場合は，240dpiで算出してください。

算出例

「文字サイズ9ポイント，文字の間隔5ポイント」のます目サイズで5列目のドット数（240dpi）

(16ドット(横)＋8ドット)×5ます＝120ドット

「文字サイズ9ポイント，文字の間隔0」で全角5文字を配置したときのドット数（240dpi）

(32ドット(横)＋0ドット(全角から全角の文字))×5文字＝160ドット

表3-35　文字間隔ごとのドット数（240dpi）

文字の間隔
半角－半角の文字
（ドット数）
全角－全角の文字
（ドット数）
半角－全角の文字
（ドット数）

0ポイント
0
0
0

1ポイント
2
4
3

2ポイント
3
6
5

3ポイント
5
10
8

4ポイント
6
12
9

5ポイント
8
16
12

6ポイント
9
18
14

7ポイント
11
22
17

表3-36　文字間隔ごとのドット数（300dpi）

文字の間隔
半角－半角の文字
（ドット数）
全角－全角の文字
（ドット数）
半角－全角の文字
（ドット数）

0ポイント
0
0
0

1ポイント
2/3
5
3/4

2ポイント
3/4
7/8
4/5

3ポイント
6/7
12/13
9/10

4ポイント
7/8
15
12/13

5ポイント
10
20
15

6ポイント
12/13
22/23
18/19

7ポイント
13/14
27/28
19/20

注

この表に記述されているn/mは，nまたはmのドットの組み合わせで補正することを意味します。

(2)　文字の大きさ

ページプリンタでは次に示す文字の編集ができ，値を変えると印刷できる行列数が変わってきます。

(a)　文字サイズ（ポイント数）の変更

5，7，9，12，14ポイントのサイズから選べます。文字サイズ別の文字の大きさ（ドット数）と算出方法の例を次に示します。5ポイントと14ポイントは，フィールド単位のときだけ使用できます。なお，ドローのレイアウト定義上では，240dpi換算で配置されるので，位置やサイズを設計する場合は，240dpiで算出してください。

算出例

「文字サイズ9ポイント，文字の間隔0」のます目サイズで5列目のドット数（240dpi）

(16ドット(横)＋0ドット)×5ます＝80ドット

「文字サイズ9ポイント，文字の間隔0」で全角5文字を配置するときのドット数（240dpi）

(32ドット(横)＋0ドット)×5文字＝160ドット

表3-37　文字サイズ別の文字の大きさ（ドット数）

文字サイズ
240dpi
300dpi

半角文字の大きさ（縦×横）
全角文字の大きさ（縦×横）
半角文字の大きさ（縦×横）
全角文字の大きさ（縦×横）

5ポイント
16× 8
16×16
20×10
20×20

7ポイント
24×12
24×24
30×15
30×30

9ポイント
32×16
32×32
40×20
40×40

12ポイント
40×20
40×40
50×25
50×50

14ポイント
48×24
48×48
60×30
60×60

(b)　文字の拡大

グラフィック帳票では文字を拡大できます。文字の拡大には，倍角，平体，および長体の三つを指定できます。拡大を指定すると印刷される文字の大きさも，次のように変わります。なお，ここでの説明は半角文字を仮定しています。全角文字の場合は，説明に示されているます目の値が2倍になります。

倍角：1文字につき，縦横方向に2ます分の領域を占有します。

平体：1文字につき，横方向に2ます分の領域を占有します。

長体：1文字につき，縦方向に2ます分の領域を占有します。

文字の拡大指定別の文字の大きさ（ドット数）を次の表に示します。

表3-38　文字の拡大指定別の文字の大きさ（ドット数：240dpi）

文字の拡大
5ポイント
7ポイント
9ポイント

半角文字
（縦×横）
全角文字
（縦×横）
半角文字
（縦×横）
全角文字
（縦×横）
半角文字
（縦×横）
全角文字
（縦×横）

標準
16×8
16×16
24×12
24×24
32×16
32×32

倍角
32×16
32×32
48×24
48×48
64×32
64×64

平体
16×16
16×32
24×24
24×48
32×32
32×64

長体
32×8
32×16
48×12
48×24
64×16
64×32

文字の拡大
12ポイント
14ポイント

半角文字
（縦×横）
全角文字
（縦×横）
半角文字
（縦×横）
全角文字
（縦×横）

標準
40×20
40×40
48×24
48×48

倍角
80×40
80×80
96×48
96×96

平体
40×40
40×80
48×48
48×96

長体
80×20
80×40
96×24
96×48

表3-39　文字の拡大指定別の文字の大きさ（ドット数：300dpi）

文字の拡大
5ポイント
7ポイント
9ポイント

半角文字
（縦×横）
全角文字
（縦×横）
半角文字
（縦×横）
全角文字
（縦×横）
半角文字
（縦×横）
全角文字
（縦×横）

標準
20×10
20×20
30×15
30×30
40×20
40×40

倍角
40×20
40×40
60×30
60×60
80×40
80×80

平体
20×20
20×40
30×30
30×60
40×40
40×80

長体
40×10
40×20
60×15
60×30
80×20
80×40

文字の拡大
12ポイント
14ポイント

半角文字
（縦×横）
全角文字
（縦×横）
半角文字
（縦×横）
全角文字
（縦×横）

標準
50×25
50× 50
60×30
60× 60

倍角
100×50
100×100
120×60
120×120

平体
50×50
50×100
60×60
60×120

長体
100×25
100× 50
120×30
120× 60

(c)　斜体

文字に斜体を指定できます。斜体を指定すると占有する列数が1ます分多くなります。

なお，傾いた部分が次の領域やけい線にかかった場合は，重ね打ちになります。

(3)　基準ます目

文字やけい線などを配置する上での基準として，半角文字で1文字分の領域（基準ます目）のサイズが設定されます。また，行の先頭文字が半角の場合と全角の場合では，行への文字の割り付け位置が異なります。行の先頭文字が半角の場合および全角の場合での割り付け位置と基準ます目の構成を次の図に示します。

図3-13　行への文字の割り付けと基準ます目の構成

基準ます目は，帳票属性で指定した「ます目設定」，「行の間隔」，および「文字の間隔」で決まります。

3.4.4　印刷できる行数と列数

＜この項の構成＞

(1)　印刷できる行数

(2)　印刷できる列数

(1)　印刷できる行数

各用紙サイズと行間隔別に，印刷できる最大行数を次の表に示します。

表3-40　用紙サイズ別の最大印刷行数（240／300dpi）

用紙サイズ | 行間隔
3LPI | 4LPI | 6LPI | 8LPI | 10LPI | 12LPI
A3 | 縦向き | 47 | 63 | 95 | 127 | 127 | 127
横向き | 33 | 44 | 66 | 88 | 111 | 127
A4 | 縦向き | 33 | 44 | 66 | 88 | 111 | 127
横向き | 23 | 30 | 46 | 61 | 76 | 92
A5 | 縦向き | 23 | 30 | 46 | 61 | 76 | 92
横向き | 15 | 21 | 31 | 42 | 52 | 63
B4 | 縦向き | 41 | 55 | 82 | 110 | 127 | 127
横向き | 28 | 38 | 57 | 76 | 114 | 114
B5 | 縦向き | 28 | 38 | 57 | 76 | 114 | 114
横向き | 19 | 26 | 39 | 52 | 79 | 79

注

この表の値は，マージンが9mmで，次に示す条件を設定したときの例です。プリンタによって多少の誤差があります。

240dpiの場合：プリンタはLBP-B406E　LIPS

300dpiの場合：プリンタはLBP-A309G2　LIPS

(2)　印刷できる列数

各用紙サイズとCPI別の最大印刷列数
各用紙サイズと文字間隔（CPI）別に，印刷できる最大列数を次の表に示します。

表3-41　用紙サイズと文字間隔（CPI）別の最大印刷列数（240／300dpi）

用紙サイズ | 9ポイント文字の文字間隔（CPI）
10CPI | 12CPI | 15CPI
A3 | 縦 | 111 | 133 | 166
横 | 159 | 191 | 231
A4 | 縦 | 76 | 92 | 115
横 | 111 | 133 | 166
A5 | 縦 | 52 | 63 | 78
横 | 76 | 92 | 115
B4 | 縦 | 95 | 114 | 143
横 | 137 | 165 | 206
B5 | 縦 | 65 | 79 | 98
横 | 95 | 114 | 143

注

この表の値は，マージン値が9mmで次に示す条件を設定したときの例です。プリンタによって多少の誤差があります。

240dpiの場合：プリンタはLBP-B406E　LIPS

300dpiの場合：プリンタはLBP-A309G2　LIPS

各用紙サイズと文字間隔（ポイント）別の最大印刷列数
各用紙サイズと文字間隔（ポイント）別に，印刷できる最大列数（240／300dpi）を次の表に示します。

表3-42　用紙サイズと文字間隔（ポイント）別の最大印刷列数（240／300dpi）

ポイント数
（ドット数）
用紙サイズ
7ポイント文字
9ポイント文字

0
（0）
1
（2）
2
（3）
3
（5）
4
（6）
0
（0）
1
（2）
2
（3）
3
（5）
4
（6）

A3
縦
222
190
177
157
148
166
148
140
127
121

横
255
255
255
225
212
239
212
201
182
174

A4
縦
153
131
123
108
102
115
102
97
87
83

横
222
190
177
157
148
166
148
140
127
121

A5
縦
105
90
84
74
70
78
70
66
60
57

横
153
131
123
108
102
115
102
97
87
83

B4
縦
190
163
152
134
127
143
127
120
109
104

横
255
235
220
194
183
206
183
173
157
150

B5
縦
131
113
105
93
87
98
87
83
75
71

横
190
163
152
134
127
143
127
120
109
104

注

この表の値は，マージン値が9mmで次に示す条件を設定したときの例です（標準の文字サイズは9ポイントです）。プリンタによって多少の誤差があります。

240dpiの場合：プリンタはLBP-B406E　LIPS

300dpiの場合：プリンタはLBP-A309G2　LIPS

3.4.5　印字領域の決定

帳票を用紙上に印刷する領域（印字領域）の大きさと位置を指定します。ます目サイズの大きさを決めると，用紙に印刷できる行列数が決まります。

印字領域は，用紙上の印刷できる領域内に配置します。ただし，プリンタの機種によって印刷位置が異なるので，用紙の先頭からの印刷はできません※。

注※

PDFファイル出力の場合は先頭からの出力ができます。

印字できる領域を次の図に示します。

図3-14　印字領域

3.4.6　定義パターンの決定

定義パターンとは，標準的なレイアウト領域のサイズやパターンがあらかじめ設定されている，レイアウト定義の基本フォーマットです。

ここでは，決定した用紙サイズおよびます目サイズを基にして，レイアウト定義で使用する定義パターンを決定します。XMAP3では，汎用的な定義パターンを提供しているので，決定した用紙サイズおよびます目サイズから定義パターンを選択します。XMAP3で提供している定義パターンについては，「付録B　XMAP3で提供している定義パターン」を参照してください。

なお，定義パターンはユーザが作成することもできます。定義パターンを作成する場合は，マニュアル「XMAP3 開発・実行ガイド」を参照してください。

3.4.7　印刷部数の指定

印刷部数を指定すると，同じ帳票を一度の出力要求で複数枚印刷できます。印刷部数指定でのコピーは，最大32枚できます。なお，印刷部数は，帳票定義時または業務実行時に指定できます。一方，業務実行時に条件によって出力枚数が変わる場合はAPで指定することをお勧めします。

なお，PDFファイルへ出力する場合，印刷部数の指定は無効となり，常に1枚が仮定されます。

＜この項の構成＞

(1)　帳票定義時に指定する場合（印刷部数）

(2)　業務実行時に指定する場合（印刷部数指定項目）

(1)　帳票定義時に指定する場合（印刷部数）

コピーする枚数を帳票定義時に指定する場合は，帳票属性ダイアログの「印刷部数」に指定します。印刷部数は「1～32」の範囲で設定できます。

(2)　業務実行時に指定する場合（印刷部数指定項目）

印刷部数を制御するには，網掛け帳票属性ダイアログの［印刷部数をAPで変更する］チェックボタンを選択状態にしてください。ただし，データ名を変更する場合は，ドローセットアップで「網掛け／グラフィック帳票」を選択し，コピー枚数動的変更のデータ名の設定を変更する必要があります。詳しくは，マニュアル「XMAP3 開発・実行ガイド」を参照してください。

3.4.8　印刷ドキュメント名の指定

印刷ドキュメント名を指定すると，帳票印刷時，Windowsのプリンタスプーラに任意のドキュメント名で印刷データを登録できます。なお，印刷ドキュメント名は，帳票定義時または業務実行時に指定できます。業務実行時の条件によって印刷ドキュメント名が変わる場合は，業務実行時にAPから指定することをお勧めします。

印刷ドキュメント名は，帳票属性ダイアログの［印刷ドキュメント名...］ボタンをクリックして表示される印刷ドキュメント名ダイアログで指定します。

印刷ドキュメント名ダイアログを次に示します。

＜この項の構成＞

(1)　帳票定義時に指定する場合（印刷ドキュメント名）

(2)　業務実行時に指定する場合（印刷ドキュメント名指定項目）

(1)　帳票定義時に指定する場合（印刷ドキュメント名）

印刷ドキュメント名を帳票定義時に指定する場合は，印刷ドキュメント名ダイアログの「印刷ドキュメント名」に指定します。

(2)　業務実行時に指定する場合（印刷ドキュメント名指定項目）

印刷ドキュメント名をAPから指定するには，印刷ドキュメント名ダイアログの［印刷ドキュメント名をAPで変更する］チェックボタンを選択状態にしてください。

ただし，データ名，桁，データ長の値を変更する場合は，ドローセットアップで「網掛け／グラフィック帳票」を選択し，印刷ドキュメント名動的変更のデータ名の設定を変更する必要があります。

詳しくは，マニュアル「XMAP3 開発・実行ガイド」を参照してください。

3.4.9　下敷き機能の利用

グラフィック帳票では，用紙のフォーマットイメージをレイアウト領域の背後に（下敷き）表示しながら帳票を定義できます。これを下敷き機能といいます。下敷き機能は，用紙上のけい線などに合わせてオブジェクトの位置を調整するときに使用します。下敷きは，レイアウト時の目安となるだけで，実際の帳票印刷の対象にはなりません。

下敷きとして表示するデータは，あらかじめ帳票をスキャナで読み取り，256色以下のビットマップファイル（.bmp）として用意しておきます。大きさの制限はありませんが，全体のリソースの上限に注意してください。

次に，下敷き機能を使用するときの操作手順を示します。

＜この項の構成＞

(1)　操作手順

(2)　注意事項

(1)　操作手順

帳票を使用して，実際にプリンタで先頭印刷文字を印字する。
先頭印刷文字は，位置合わせのために使用する印です。

イメージスキャナを使用して原寸大で入力し，ビットマップファイルを作成する。
描画ソフトなどで鮮明に入力されているか確認します。

作成したビットマップファイルをunderlayフォルダに格納する。
underlayフォルダは，XMAP3インストール先￥userフォルダの下にあります。
ユーザが任意のフォルダに格納しても，表示時に任意のフォルダを選択できます。

ドローの新規作成ダイアログから，「グラフィック帳票」を選択する。

［表示］－［下敷き設定］を選択する。
下敷き設定ダイアログが表示されます。

ファイルを選択し，サイズや色を変更する。

表示を確認する。
あらかじめ印字しておいた先頭印刷文字の印が，レイアウト領域の左上になるように，下敷きを移動します。
下敷きの移動は，［表示］－［下敷き移動］を選択します。

帳票のレイアウトを設定する。

(2)　注意事項

underlayフォルダは，XMAP3インストール先のuserフォルダの下にあります。

着色してある帳票は，スキャナで読み取れないことがあります。そのようなときは，スキャナソフトの設定値を変更して入力してください。XMAP3で入力できるビットマップファイルは，256色以下です。

読み取りサイズに合わせて，拡大または縮小するため，スキャナデータのサイズは大きくてかまいません。ただし，小さくするとドロー上で拡大することになるので，全体的に表示内容が粗くなります。

スキャナで読み取るときは，帳票の左端をスキャナの入力領域の左端に合わせてください。

読み取りに使用する用紙サイズとスキャナで読み取った用紙サイズが異なる場合は，下敷き設定ダイアログの「下敷きサイズ」にスキャナで読み取った用紙サイズを指定してください。

3.5　書式オーバレイの用紙設計

この節では，書式オーバレイで使用する用紙の設計，および使用できるプリンタについて説明します。

＜この節の構成＞

3.5.1　書式オーバレイの用紙設計の流れ

3.5.2　出力する行データの決定

3.5.3　印刷様式（定義パターン）の決定

3.5.4　印字領域

3.5.5　ます目の設定

3.5.6　印刷ドキュメント名の指定

3.5.7　下敷き機能の利用

3.5.1　書式オーバレイの用紙設計の流れ

240dpi／300dpiのページプリンタ用の書式オーバレイです。書式オーバレイの場合，用紙サイズとます目の組み合わせを，XMAP3が定義パターンとして用意しています。新規作成ダイアログから定義パターンを選択し，書式オーバレイをレイアウトするだけで書式オーバレイを設計できます。なお，XMAP3で用意している定義パターンについては，「付録B　XMAP3で提供している定義パターン」を参照してください。

書式オーバレイを設計するときの手順を次の図に示します。

図3-15　書式オーバレイ設計の手順

3.5.2　出力する行データの決定

書式と合わせて出力する行データの出力様式（文字サイズ，印刷したい行間隔など）を決定します。行データの出力様式を制御する行制御情報は，書式と行データ属性をドローで定義すると，決定されます。文字サイズと文字間隔は，AP（COBOLではCHARACTER TYPE句）での指定がない場合，ドローの定義に従います。行間隔については，必ずドローの定義に従います。また，行データだけを印刷するときでも，けい線や固定文字列などを何も指定していない空の書式を作成する必要があります。定義できる文字サイズや行間隔のパターンについては，「3.5.3　印刷様式（定義パターン）の決定」を参照してください。

行データは，文字列の単位に文字サイズ，文字の間隔，文字の拡大などの属性が指定できます。文字サイズや，文字の間隔を文字列の単位で変更すると，文字が書式で設定する基準ます目に配置されない場合があります。このため，行データの属性も書式設計前に決定しておいてください。また，行の先頭文字が半角の場合と全角の場合では，行への文字の割り付け位置が異なります。一つの帳票では，すべての行の先頭文字を半角または全角で統一してください。なお，行データの表示属性はAPで設定します。

3.5.3　印刷様式（定義パターン）の決定

用紙サイズやます目サイズは，書式と行データの出力様式（文字サイズ，印刷したい行数・列数など）に合わせて設定します。用紙サイズやます目サイズは，XMAP3が用意している定義パターンから選択します。定義パターンの種類と内容を次の表に示します。なお，次の表は，次に示すCPIと文字サイズ，字間隔を同じものとして換算しています。

10CPI＝9ポイント文字，5ポイント間隔

12CPI＝9ポイント文字，2ポイント間隔

15CPI＝9ポイント文字，0ポイント間隔

表3-43　定義パターンの種類と内容

定義パターンの種類 | 印刷領域
行数 | 列数
A4縦　9ポイント文字，5ポイント間隔（10CPI），6LPI | 66 | 76
A4縦　9ポイント文字，2ポイント間隔（12CPI），6LPI | 66 | 97
A4縦　7ポイント文字，5ポイント間隔（12CPI），6LPI | 66 | 92
A4縦　9ポイント文字，0ポイント間隔（15CPI），6LPI | 66 | 115
A4縦　7ポイント文字，2ポイント間隔（15CPI），8LPI | 88 | 123
A4縦　7ポイント文字，4ポイント間隔，8LPI | 88 | 102
A4縦　7ポイント文字，0ポイント間隔，6LPI | 66 | 153
A4縦　7ポイント文字，0ポイント間隔，8LPI | 88 | 153
A4横　9ポイント文字，5ポイント間隔（10CPI），6LPI | 46 | 111
A4横　9ポイント文字，2ポイント間隔（12CPI），6LPI | 46 | 140
A4横　7ポイント文字，5ポイント間隔（12CPI），6LPI | 46 | 133
A4横　9ポイント文字，0ポイント間隔（15CPI），6LPI | 46 | 166
A4横　7ポイント文字，2ポイント間隔（15CPI），8LPI | 61 | 178
A4横　7ポイント文字，4ポイント間隔，8LPI | 61 | 148
A4横　7ポイント文字，0ポイント間隔，6LPI | 46 | 222
A4横　7ポイント文字，0ポイント間隔，8LPI | 61 | 222
B4縦　9ポイント文字，5ポイント間隔（10CPI），6LPI | 82 | 95
B4縦　9ポイント文字，2ポイント間隔（12CPI），6LPI | 82 | 120
B4縦　7ポイント文字，5ポイント間隔（12CPI），6LPI | 82 | 114
B4縦　9ポイント文字，0ポイント間隔（15CPI），6LPI | 82 | 143
B4縦　7ポイント文字，2ポイント間隔（15CPI），8LPI | 110 | 152
B4縦　7ポイント文字，4ポイント間隔，8LPI | 110 | 127
B4縦　7ポイント文字，0ポイント間隔，6LPI | 82 | 190
B4縦　7ポイント文字，0ポイント間隔，8LPI | 110 | 190
B4横　9ポイント文字，5ポイント間隔（10CPI），6LPI | 55 | 137
B4横　9ポイント文字，2ポイント間隔（12CPI），6LPI | 55 | 173
B4横　7ポイント文字，5ポイント間隔（12CPI），6LPI | 55 | 165
B4横　9ポイント文字，0ポイント間隔（15CPI），6LPI | 55 | 206
B4横　7ポイント文字，2ポイント間隔（15CPI），8LPI | 76 | 220
B4横　7ポイント文字，4ポイント間隔，8LPI | 76 | 183
B4横　7ポイント文字，0ポイント間隔，6LPI | 55 | 255
B4横　7ポイント文字，0ポイント間隔，8LPI | 76 | 255
A5縦　9ポイント文字，5ポイント間隔（10CPI），6LPI | 46 | 52
A5縦　9ポイント文字，2ポイント間隔（12CPI），6LPI | 46 | 66
A5縦　7ポイント文字，5ポイント間隔（12CPI），6LPI | 46 | 63
A5縦　9ポイント文字，0ポイント間隔（15CPI），6LPI | 46 | 78
A5縦　7ポイント文字，2ポイント間隔（15CPI），8LPI | 61 | 84
A5縦　7ポイント文字，4ポイント間隔，8LPI | 61 | 70
A5縦　7ポイント文字，0ポイント間隔，6LPI | 45 | 105
A5縦　7ポイント文字，0ポイント間隔，8LPI | 61 | 105
A5横　9ポイント文字，5ポイント間隔（10CPI），6LPI | 31 | 76
A5横　9ポイント文字，2ポイント間隔（12CPI），6LPI | 31 | 97
A5横　7ポイント文字，5ポイント間隔（12CPI），6LPI | 31 | 92
A5横　9ポイント文字，0ポイント間隔（15CPI），6LPI | 31 | 115
A5横　7ポイント文字，2ポイント間隔（15CPI），8LPI | 42 | 123
A5横　7ポイント文字，4ポイント間隔，8LPI | 42 | 102
A5横　7ポイント文字，0ポイント間隔，6LPI | 31 | 153
A5横　7ポイント文字，0ポイント間隔，8LPI | 42 | 153
B5縦　9ポイント文字，5ポイント間隔（10CPI），6LPI | 57 | 65
B5縦　9ポイント文字，2ポイント間隔（12CPI），6LPI | 57 | 83
B5縦　7ポイント文字，5ポイント間隔（12CPI），6LPI | 57 | 79
B5縦　9ポイント文字，0ポイント間隔（15CPI），6LPI | 57 | 98
B5縦　7ポイント文字，2ポイント間隔（15CPI），8LPI | 76 | 105
B5縦　7ポイント文字，4ポイント間隔，8LPI | 76 | 87
B5縦　7ポイント文字，0ポイント間隔，6LPI | 57 | 131
B5縦　7ポイント文字，0ポイント間隔，8LPI | 76 | 131
B5横　9ポイント文字，5ポイント間隔（10CPI），6LPI | 39 | 95
B5横　9ポイント文字，2ポイント間隔（12CPI），6LPI | 39 | 120
B5横　7ポイント文字，5ポイント間隔（12CPI），6LPI | 39 | 114
B5横　9ポイント文字，0ポイント間隔（15CPI），6LPI | 39 | 143
B5横　7ポイント文字，2ポイント間隔（15CPI），8LPI | 52 | 152
B5横　7ポイント文字，4ポイント間隔，8LPI | 52 | 127
B5横　7ポイント文字，0ポイント間隔，6LPI | 39 | 190
B5横　7ポイント文字，0ポイント間隔，8LPI | 51 | 190
A3縦　9ポイント文字，5ポイント間隔（10CPI），6LPI | 95 | 111
A3縦　9ポイント文字，2ポイント間隔（12CPI），6LPI | 95 | 140
A3縦　7ポイント文字，5ポイント間隔（12CPI），6LPI | 95 | 133
A3縦　9ポイント文字，0ポイント間隔（15CPI），6LPI | 95 | 166
A3縦　7ポイント文字，2ポイント間隔（15CPI），8LPI | 127 | 177
A3縦　7ポイント文字，4ポイント間隔，8LPI | 127 | 148
A3縦　7ポイント文字，0ポイント間隔，6LPI | 95 | 222
A3縦　7ポイント文字，0ポイント間隔，8LPI | 127 | 222
A3横　9ポイント文字，5ポイント間隔（10CPI），6LPI | 66 | 159
A3横　9ポイント文字，2ポイント間隔（12CPI），6LPI | 66 | 201
A3横　7ポイント文字，5ポイント間隔（12CPI），6LPI | 66 | 191
A3横　9ポイント文字，0ポイント間隔（15CPI），6LPI | 66 | 239
A3横　7ポイント文字，2ポイント間隔（15CPI），8LPI | 88 | 255
A3横　7ポイント文字，4ポイント間隔，8LPI | 88 | 212
A3横　7ポイント文字，0ポイント間隔，6LPI | 66 | 255
A3横　7ポイント文字，0ポイント間隔，8LPI | 88 | 255

定義パターンを決定すると，用紙サイズや基準ます目が設定されます。定義パターンで設定される各項目の詳細を次に示します。

＜この項の構成＞

(1)　用紙のサイズと向き

(2)　基準ます目

(1)　用紙のサイズと向き

出力する行データの様式と，書式の内容に応じた用紙のサイズと向きが設定されます。書式機能で使用できる用紙のサイズと向きを次の表に示します。

表3-44　使用できる用紙のサイズと向き

用紙サイズ | 用紙方向 | 用紙の大きさ（単位：mm）
A3（JIS規格A3版） | 縦／横 | 297×420
A4（JIS規格A4版） | 縦／横 | 210×297
A5（JIS規格A5版） | 縦／横 | 148×210
B4（JIS規格B4版） | 縦／横 | 257×364
B5（JIS規格B5版） | 縦／横 | 182×257

(2)　基準ます目

文字やけい線などを配置する上での基準として，半角文字で1文字分の領域（基準ます目）のサイズが設定されます。また，行の先頭文字が半角の場合と全角の場合では，行への文字の割り付け位置が異なります。行の先頭文字が半角の場合および全角の場合での割り付け位置と基準ます目の構成を次の図に示します。

図3-16　行への文字の割り付けと基準ます目の構成

基準ます目は，定義パターン，書式属性で指定した「ます目設定」，「行の間隔」，および「文字の間隔」で決まります。

3.5.4　印字領域

定義パターンを選択すると，書式を用紙に印刷する領域（印字領域）の行数および列数が決定されます。書式の場合，印字領域は，用紙サイズからマージンを除いた領域です。書式は，印字領域の左上端（1行1列）を基点にレイアウトします。用紙と印字領域の関係を次の図に示します。

図3-17　用紙と印字領域の関係

ページプリンタでは，用紙に穴を開けることを想定しているため，マージンを設定して，印刷開始位置をずらせます。ユーザが設定するマージンを，マージンまたはソフトマージンといいます。

ソフトマージンに対して，プリンタドライバおよびプリンタ装置ごとに，ハード機構上，印刷できない領域（ハードマージン）があります。このハードマージンの値よりも小さいマージンを設定すると，ハードマージンが有効になります。このように，プリンタ機種によって印刷位置の先頭が異なるので，用紙の先頭行からの印刷はしません。ただし，PDFファイル出力の場合には，先頭行からの出力ができます。書式定義ごとの設定属性と印刷結果の関係を次の表に示します。

表3-45　書式定義ごとの設定属性と印刷結果の関係

ドローの書式定義
APの行データで
設定できる属性
印刷結果

LPI（ます目）
－
書式のLPI

基準文字サイズ
（ます目）
5
5

7
7

9
9

12
12

省略
書式で指定した値

基準字間値
（ます目）
0
0

1～7
1～7

省略
書式で指定した値

書体
標準，明朝体，ゴシック体，OCR
APで指定した値

拡大
あり，なし
APで指定した値

（凡例）

－：該当しない。

＜この項の構成＞

(1)　文字サイズ

(1)　文字サイズ

行間隔とAPで指定できる文字サイズの組み合わせを次に示します。

行間隔 | 文字サイズ
5ポイント | 7ポイント | 9ポイント | 12ポイント
3LPI | ○ | ○ | ○ | ○
4LPI | ○ | ○ | ○ | ○
6LPI | ○ | ○ | ○ | ○
8LPI | ○ | ○ | × | ×
10LPI | ○ | ○ | × | ×
12LPI | ○ | ○※ | × | ×

（凡例）

○：使用できる。

×：使用できない。

注※

印字時に文字が重なることがあるため，ほかの文字サイズを使用することをお勧めします。

3.5.5　ます目の設定

書式属性ダイアログで，ます目設定を「自由な設定」にした場合，次に示す条件の組み合わせが設定できます。

行間隔：3，4，6，8，10，12LPI

文字間隔：0～7ポイント

文字サイズ：5，7，9，12ポイント

組み合わせによる，行間隔，文字間隔については，「3.4.3(1)　ます目の設定」を参照してください。

3.5.6　印刷ドキュメント名の指定

印刷ドキュメント名を指定すると，帳票印刷時，Windowsのプリンタスプーラに任意のドキュメント名で印刷データを登録できます。なお，印刷ドキュメント名は，書式属性または環境変数に指定できます。

＜この項の構成＞

(1)　書式属性に指定する場合（印刷ドキュメント名）

(2)　環境変数に指定する場合（印刷ドキュメント名）

(1)　書式属性に指定する場合（印刷ドキュメント名）

印刷ドキュメント名を書式属性に指定する場合は，書式属性ダイアログの「印刷ドキュメント名」に指定します。

(2)　環境変数に指定する場合（印刷ドキュメント名）

Windows NT，Windows 2000，Windows XP，Windows Server 2003，またはWindows Server 2003 x64の場合，印刷ドキュメント名を環境変数に指定できます。

詳しくは，マニュアル「XMAP3 開発・実行ガイド」を参照してください。

3.5.7　下敷き機能の利用

書式オーバレイでは，用紙のフォーマットイメージをレイアウト領域の背後に（下敷き）表示しながら書式を定義できます。これを下敷き機能といいます。下敷き機能は，用紙上のけい線などに合わせてオブジェクトの位置を調整するときに使用します。下敷きは，レイアウト時の目安となるだけで，実際の帳票印刷の対象にはなりません。

下敷きとして表示するデータは，あらかじめ帳票をスキャナで読み取り，256色以下のビットマップファイル（.bmp）として用意しておきます。大きさの制限はありませんが，全体のリソースの上限に注意してください。

次に，下敷き機能を使用するときの操作手順を示します。

＜この項の構成＞

(1)　操作手順

(2)　注意事項

(1)　操作手順

帳票を使用して，実際にプリンタで先頭印刷文字を印字する。
先頭印刷文字は，位置合わせのために使用する印です。

イメージスキャナを使用して原寸大で入力し，ビットマップファイルを作成する。
描画ソフトなどで鮮明に入力されているか確認します。

作成したビットマップファイルをunderlayフォルダに格納する。
underlayフォルダは，XMAP3インストール先￥userフォルダの下にあります。
ユーザが任意のフォルダに格納しても，表示時に任意のフォルダを選択できます。

ドローの新規作成ダイアログから，「書式オーバレイ」を選択する。

［表示］－［下敷き設定］を選択する。
下敷き設定ダイアログが表示されます。

ファイルを選択し，サイズや色を変更する。

表示を確認する。
あらかじめ印字しておいた先頭印刷文字の印が，レイアウト領域の左上になるように，下敷きを移動します。
下敷きの移動は，［表示］－［下敷き移動］を選択します。

書式のレイアウトを設定する。

(2)　注意事項

underlayフォルダは，XMAP3インストール先のuserフォルダの下にあります。

着色してある帳票は，スキャナで読み取れないことがあります。そのようなときは，スキャナソフトの設定値を変更して入力してください。XMAP3で入力できるビットマップファイルは，256色以下です。

読み取りサイズに合わせて，拡大または縮小するため，スキャナデータのサイズは大きくてかまいません。ただし，小さくするとドロー上で拡大することになるので，全体的に表示内容が粗くなります。

スキャナで読み取るときは，帳票の左端をスキャナの入力領域の左端に合わせてください。

読み取りに使用する用紙サイズとスキャナで読み取った用紙サイズが異なる場合は，下敷き設定ダイアログの「下敷きサイズ」にスキャナで読み取った用紙サイズを指定してください。

4.　帳票レイアウト

この章では，ドローを起動して帳票をレイアウトするときの手順と，レイアウトを構成するオブジェクトについて説明します。

＜この章の構成＞

4.1　帳票のレイアウト手順

4.2　帳票レイアウトを構成するオブジェクト

4.3　部品の利用

4.4　データ名の編集

4.5　用紙サイズ変更時の設計

4.6　オブジェクト同士の重なり

4.7　カーソルキーでのオブジェクトの移動

4.8　テスト印刷

4.1　帳票のレイアウト手順

実際にドローを起動し，これまでに設計した帳票の仕様に基づいて，帳票上にオブジェクトを配置してレイアウトを定義します。ここでは，マップ帳票および書式オーバレイを新規に作成するときのレイアウト手順について説明します。

＜この節の構成＞

4.1.1　マップ帳票のレイアウト手順

4.1.2　書式オーバレイのレイアウト手順

4.1.3　定義パターンおよび部品の登録

4.1.1　マップ帳票のレイアウト手順

マップ帳票を新規に作成するときの手順を次に示します。

スタートメニューから［XMAP3］－［ドロー］を選び，ドローを起動する。
新規・更新選択ダイアログが表示されます。

新規・更新選択ダイアログで［対象］から「マップ」※を選択し，「画面・帳票・書式を新規作成する」を選択する。
選択後，［OK］ボタンをクリックすると新規作成ダイアログが表示されます。

新規作成ダイアログでマップ名を指定する。
マップ名の決定については，「4.1.1(1)　マップ名の決定」を参照してください。

新規作成ダイアログで定義種別を選択する。
「定義対象の選択」から定義種別を選択します。

けい線帳票の場合

「けい線帳票（連続紙）」または「けい線帳票（カット紙）」を選択します。

プレプリント帳票の場合

「プレプリント帳票（連続紙）」または「プレプリント帳票（カット紙）」を選択します。

網掛け帳票の場合

「網掛け帳票」を選択します。

グラフィック帳票の場合

「グラフィック帳票」を選択します。

新規作成ダイアログで定義パターンを選択する。
定義パターンを選択します。選択できる定義パターンには，XMAP3が用意しているパターンまたはユーザが登録したパターンがあります。また，サイズを自由にするときは，「フリー」を選んで帳票属性ダイアログで設定します。
定義パターンについては，「4.1.1(2)　定義パターンの選択」を参照してください。

新規作成ダイアログで言語種別を選択する。
COBOLまたはCのどちらかを選択します。
なお，XMAP3/Web for Cosminexusを使用してCosminexus上で実行する帳票を開発する場合で，AP開発言語がJavaのときは，Cを選択してください。

［OK］ボタンをクリックする。
帳票定義ウィンドウが表示されます。

帳票定義ウィンドウで，帳票属性を変更する（必要に応じて）。
定義パターンを選択すると，定義パターンに対応した文字サイズや文字間隔などが設定されます。定義パターンで設定された値を変更する場合は，［属性］－［帳票属性］を選択して表示される帳票属性ダイアログで値を設定します。

帳票レイアウトを定義する。
帳票定義ウィンドウのツールボックスからオブジェクトのボタンを選んで，レイアウト領域にオブジェクトを配置し，帳票をレイアウトします。
オブジェクトについては，「4.2　帳票レイアウトを構成するオブジェクト」を参照してください。

定義内容を保存し，終了する。
帳票定義ウィンドウのツールバーから［ドローの終了］を選ぶと定義内容が保存され，帳票定義が終了します。このとき，定義ファイルに加え，論理マップと物理マップが生成されます。

注※

［対象］から，「パターン」を選択した場合には定義パターンを，「部品」を選択した場合には部品を作成できます。定義パターンや部品の作成については，「4.1.3　定義パターンおよび部品の登録」を参照してください。

＜この項の構成＞

(1)　マップ名の決定

(2)　定義パターンの選択

(3)　帳票属性の定義

(1)　マップ名の決定

帳票の定義情報と生成される物理マップや論理マップなどの名称の整合性を図るために，マップ名を設定します。このマップ名は，各ファイル名称の先頭の文字列（拡張子を除く文字列）などになります。

マップ名にMAP001という名称を付けた場合のマップ定義ファイル名称
MAP001.impになります。

マップ名をMAP001とした場合に生成される物理マップファイル名称

帳票定義対象 | マップ名が6文字※ | マップ名が7文字※
けい線帳票（カット紙／連続紙） | MAP0016A.pmp | MAP001P.pmp
プレプリント帳票（カット紙／連続紙） | MAP0016H.pmp | MAP001L.pmp
網掛け帳票 | MAP0016B.pmp | MAP001R.pmp
グラフィック帳票 | MAP0016G.pmp | MAP001G.pmp

注※

マップ名の6文字または7文字については，ドローセットアップで設定します。ドローセットアップについては，マニュアル「XMAP3 開発・実行ガイド」を参照してください。

マップ名をMAP001とした場合に生成される論理マップファイル名称

COBOLの場合は，出力論理マップファイル名称はMAP001O.cblになります。

C言語の場合は，出力論理マップファイル名称はMAP001O.hになります。

(2)　定義パターンの選択

帳票定義では，定義対象にシリアルインパクトかページプリンタのどちらかを選択したあと，使用する定義パターンを選びます。なお，XMAP3で提供している定義パターンについては，「付録B　XMAP3で提供している定義パターン」を参照してください。

けい線帳票（連続紙またはカット紙）は，180dpiのドットインパクトプリンタ用の帳票を定義します。連続紙対応またはカット紙対応のけい線を付けた帳票を作成できます。

プレプリント帳票（連続紙またはカット紙）は，180dpiのドットインパクトプリンタ用の帳票を定義します。バーコードやOCRのレイアウトができるプレプリント用紙（連続紙またはカット紙）対応の帳票を作成できます。

網掛け帳票は，240／300dpiのページプリンタ用の帳票を定義します。各種けい線，文字サイズ，網掛けを付けた帳票を作成できます。

グラフィック帳票は，240／300dpiのページプリンタ用の帳票を定義します。各種けい線，文字サイズ，書体のバリエーションに加え，バーコードやグラフィックデータのレイアウトができる帳票を作成できます。

(3)　帳票属性の定義

帳票属性の定義では，「ます目設定」によって，配置できる領域が変わってきます。このます目設定は，レイアウト画面上に表示されているグリッドの間隔と対応します。

また，レイアウト領域の単位には，ます目，ミリ，ドットの三つがあります。ミリはミリ単位に表示し，ドットはドット単位に表示します。ただし，レイアウト画面のグリッド種別とは独立しているので，別に指定します。

4.1.2　書式オーバレイのレイアウト手順

書式オーバレイを新規に作成するときの帳票設計の流れについて説明します。

スタートメニューから［XMAP3］－［ドロー］を選び，ドローを起動する。
新規・更新選択ダイアログが表示されます。

新規・更新選択ダイアログで［対象］から「マップ」※を選択し，「画面・帳票・書式を新規作成する」を選択する。
選択後，［OK］ボタンをクリックすると新規作成ダイアログが表示されます。

新規作成ダイアログでマップ名を設定する。
マップ名の決定については，「4.1.2(1)　マップ名の決定」を参照してください。

新規作成ダイアログで定義種別を選択する。
「定義対象の選択」から書式オーバレイを選択します。

新規作成ダイアログで定義パターンを選択する。
帳票用紙の設計で決定した定義パターンを選択します。選択できる定義パターンには，XMAP3が用意しているパターンまたはユーザが登録したパターンがあります。
定義パターンについては，「4.1.2(2)　定義パターンの選択」を参照してください。

［OK］ボタンをクリックする。
書式定義ウィンドウが表示されます。

書式定義ウィンドウで，書式属性を定義する（必要に応じて）。
定義パターンを選択すると，定義パターンに対応した文字サイズや文字間隔などが設定されます。定義パターンで設定された値を変更する場合は，［属性］－［書式属性］を選択して表示される書式属性ダイアログで指定します。

書式のレイアウトを定義する。
書式定義ウィンドウのツールボックスからオブジェクトのボタンを選んで，レイアウト領域にオブジェクトを配置し，書式をレイアウトします。
オブジェクトについては，「4.2　帳票レイアウトを構成するオブジェクト」を参照してください。

定義内容を保存し，終了する。
書式定義ウィンドウのツールバーから［ドローの終了］を選ぶと定義内容が保存され，書式定義が終了します。このとき，定義ファイルに加え，書式イメージと行制御データが生成されます。

注※

［対象］から，「パターン」を選択した場合には定義パターンを，「部品」を選択した場合には部品を作成できます。定義パターンや部品の作成については，「4.1.3　定義パターンおよび部品の登録」を参照してください。

＜この項の構成＞

(1)　マップ名の決定

(2)　定義パターンの選択

(3)　書式属性の定義

(1)　マップ名の決定

書式の定義情報と生成される書式イメージや行制御データなどの名称の整合性を図るために，マップ名を設定します。このマップ名は，各ファイル名称の先頭の文字列（拡張子を除く文字列）などになります。

マップ名にMAP001という名称を付けた場合のマップ定義ファイル名称
MAP001.ifmになります。

マップ名をMAP001とした場合に生成される物理マップファイル名称

ファイルの種別 | マップ名が6文字※ | マップ名が7文字※
書式イメージ | MAP0016G.fmp | MAP001F.fmp
行制御データ | MAP0016G.pci | MAP001F.pci

注※

マップ名の6文字または7文字については，ドローセットアップで設定します。ドローセットアップについては，マニュアル「XMAP3 開発・実行ガイド」を参照してください。

(2)　定義パターンの選択

書式定義では，定義対象に書式オーバレイを選択したあと，使用する定義パターンを選びます。書式オーバレイは，240／300dpiのページプリンタ用の書式オーバレイを定義します。行データに対し，PC上でオーバレイするけい線や網掛けなどの書式を作成できます。なお，XMAP3で提供している定義パターンについては，「付録B　XMAP3で提供している定義パターン」を参照してください。

(3)　書式属性の定義

書式属性の定義では，「ます目設定」によって，配置できる領域が変わってきます。このます目設定は，レイアウト画面上に表示されているグリッドの間隔と対応します。

また，レイアウト領域の単位には，ます目，ミリ，ドットの三つがあります。ミリはミリ単位に表示し，ドットはドット単位に表示します。ただし，レイアウト画面のグリッド種別とは独立しているので，別に指定します。

4.1.3　定義パターンおよび部品の登録

定義パターンおよび部品の登録について説明します。なお，定義パターンおよび部品の登録の詳細手順については，マニュアル「XMAP3 開発・実行ガイド」を参照してください。

＜この項の構成＞

(1)　定義パターン，部品とは

(2)　定義パターンの登録

(3)　部品の登録

(4)　定義パターンおよび部品登録時の注意

(1)　定義パターン，部品とは

ドローでは，帳票または書式オーバレイのレイアウト定義のほかに，定義パターンや部品を必要に応じて定義できます。定義パターンとは，マップを効率良く作るために，定型的なオブジェクトを定義してあるひな型のマップのことです。部品とは，複数のオブジェクトを一つのグループとして定義したオブジェクトのことです。使用頻度の高い各種オブジェクトをあらかじめ部品として定義しておくことで，マップを効率良く作成できます。

(2)　定義パターンの登録

XMAP3では，汎用的に使用できる定義パターンを標準提供していますが，このほかに，必要に応じてユーザ独自の定義パターンを作成できます。ユーザ独自の定義パターンは，レイアウト定義前に作成してください。

登録した定義パターンは，帳票の新規作成時に，新規作成ダイアログの「パターンの選択」に表示されます。

定義パターンを登録できる定義対象を次に示します。

分　類 | 登録できる定義対象
シリアルインパクトプリンタ用 | けい線帳票（連続紙）
けい線帳票（カット紙）
プレプリント帳票（連続紙）
プレプリント帳票（カット紙）
ページプリンタ用 | 網掛け帳票
グラフィック帳票
書式オーバレイ

(3)　部品の登録

よく使用する属性のオブジェクトや，幾つかのオブジェクトを組み合わせたグループを部品として登録できます。オブジェクトを組み合わせるには，固定フィールドなどの複数のオブジェクトを，グループ化することで実現できます。部品を有効に使用することで，ユーザの帳票定義を効率良く作成できます。部品は，レイアウト定義前に作成しておく必要があります。

部品を登録できる定義対象を次に示します。

分　類 | 登録できる定義対象
シリアルインパクトプリンタ用 | けい線帳票（カット／連続紙共通）
プレプリント帳票（カット／連続紙共通）
ページプリンタ用 | 網掛け帳票
グラフィック帳票
書式オーバレイ

(4)　定義パターンおよび部品登録時の注意

定義パターンと部品の登録は，ドローセットアップの「運用管理者用の設定」で「パターンの登録・更新を許可」または「部品の登録・更新を許可」を選択しているときにできます。ただし，定義パターンおよび部品は，ユーザの開発プロジェクト内で必要なものを登録するため，プロジェクト管理者などの特定のユーザが登録することをお勧めします。

4.2　帳票レイアウトを構成するオブジェクト

帳票レイアウトを構成するオブジェクトには，けい線，矩形，円と円弧，固定フィールド，出力フィールド，予約フィールド，網掛け，出力OCR，バーコード，日付と時刻，フレーム，およびグラフィックがあります。

この節では，これらのオブジェクトの詳細について説明します。

注意

帳票レイアウトに縦横の向きが異なるオブジェクトを配置することはできません。出力フィールド，バーコードなどのオブジェクトは，レイアウト領域に対してすべて横方向の定義となります。

＜この節の構成＞

4.2.1　けい線（直線，斜め線）

4.2.2　矩形

4.2.3　円と円弧

4.2.4　固定フィールド

4.2.5　出力フィールド

4.2.6　予約フィールド

4.2.7　網掛け

4.2.8　出力OCRの設計

4.2.9　バーコードの設計

4.2.10　日付と時刻

4.2.11　フレーム

4.2.12　グラフィック

4.2.1　けい線（直線，斜め線）

配置した出力フィールドなどを強調したり，表を作成したりするときに使用します。

けい線は，けい線帳票，網掛け帳票，グラフィック帳票，および書式オーバレイで使用できます。また，けい線（直線および斜め線）の種類は，帳票によってそれぞれ異なります。帳票ごとに使用できるけい線を次に示します。

けい線の種類
けい線帳票
網掛け帳票
グラフィック
帳票
書式
オーバレイ

直線（縦，横）
○
○
○
○

斜め線
－
－
○
○

表けい線の枠
○
○
○
○

表けい線の繰り返し
○
○
○
○

（凡例）

○：使用できる。

－：使用できない。

次に，帳票ごとにけい線の内容について説明します。

＜この項の構成＞

(1)　けい線帳票

(2)　網掛け帳票

(3)　グラフィック帳票および書式オーバレイ

(4)　けい線移動の注意

(5)　表示属性の動的変更

(1)　けい線帳票

(a)　使用できるオブジェクト

けい線
縦方向または横方向に1本の線を引くときに使用します。
けい線の引き方は，ます目の中央に引く方法と，ます目に沿って引く方法の2とおりがあります。

表けい線の枠
表を作成するときに使用します。また，表けい線の枠は，見出しあり枠または見出しなし枠を作成できます。

けい線の繰り返し
指定した範囲内に，縦方向または横方向にけい線を繰り返し引くときに使用します。

(b)　けい線の配置

けい線の配置として，ます目の中央に引く（帳票上半角1文字分を占める）占有けい線と，ます目に沿って引く（半角1文字分を占めない）非占有けい線のどちらかを指定できます。占有けい線と非占有けい線は，けい線帳票属性ダイアログで指定します。

占有けい線の縦けい線は，ます目（けい線情報）の中央に引かれます。横けい線は，ます目の中央から引かれます。

非占有けい線の縦けい線は，ます目の左側に引かれます。横けい線は，ます目の左側から右側まで引かれます。

また，非占有けい線では，帳票の最右端（論理ページ（レイアウト領域）の右端の列の右側）に縦けい線を引けません。このような場合，次の方法で縦けい線を引きます。

矩形を使用して，最右端に縦けい線を引きます。

レイアウト領域の列数を1列大きく定義します。

(c)　占有けい線

けい線は，横けい線の始点，交点，終点，および各行の縦けい線に半角文字で1文字分のけい線情報用の領域を占有します。横けい線は，けい線を行の上段に引くときは下側，行の下段に引くときは上側にけい線情報用の領域を占有します。ただし，ページプリンタのグラフィック帳票では，このようなけい線情報を意識しないで配置できます。けい線のけい線情報を次の図に示します。

図4-1　けい線のけい線情報

(d)　けい線の属性

けい線の属性として，線の種類および線の太さを指定できます。

線の種類：実線，破線

線の太さ：細線，中線

(2)　網掛け帳票

(a)　使用できるオブジェクト

けい線
縦方向または横方向に1本の線を引くときに使用します。
けい線は，グリッドの中央から引きます。

表けい線の枠
表を作成するときに使用します。また，表けい線の枠は，見出しありまたは見出しなし枠を作成できます。

けい線の繰り返し
指定した範囲内に，縦方向または横方向にけい線を繰り返して引くときに使用します。

(b)　けい線の属性

けい線の属性として，線の位置，線の種類および線の太さを指定できます。

線の位置：上，下

線の種類：実線，破線

線の太さ：細線，中線，太線，極太線

(3)　グラフィック帳票および書式オーバレイ

(a)　使用できるオブジェクト

グラフィック帳票および書式オーバレイでは，次のオブジェクトが使用できます。

けい線
縦方向，横方向，または斜め方向に1本の線を引くときに使用します。
けい線は，ます目の上と左，中央，下と右側に引けます。

表けい線の枠
表を作成するときに使用します。また，表けい線の枠は，見出しあり，または見出しなし枠を作成できます。

けい線の繰り返し
指定した範囲内に，縦方向または横方向にけい線を繰り返して引くときに使用します。

(b)　けい線の属性

けい線の属性として，線の位置，線の種類および線の太さを指定できます。

線の位置：上，中央，下

線の種類：実線，破線，点線，一点鎖線，二点鎖線，二重線（斜めけい線には，指定できません），見えない線

線の太さ：細線，中線，太線，極太線

けい線の種類，太さを次に示します。なお，印刷結果は印刷モードやプリンタドライバによって，異なることがあります。

《けい線の種類，および線の太さ》

(c)　けい線の自由配置

［表示］－［ます目配置］のチェックを外すことで，自由な位置にけい線を引けます。

(4)　けい線移動の注意

グラフィック帳票のレイアウト画面では，横けい線（下）または横けい線（中央）（「線の位置」で「下」または「中央」が設定されている横けい線）を移動すると，移動カーソルは行の上側に表示されますが，けい線は行の下側または中央に引かれます。

また，フレームに配置されている横（下）けい線をクリックすると，けい線の繰り返しは解除されます。

(5)　表示属性の動的変更

グラフィック帳票のけい線ダイアログで，動的変更を指定すると，表示属性（文字を強調するための点線や二重線など）をAP実行時に変更できます。APでは，表示属性を変更するデータ項目にXMAP3が用意する修飾名をセットすると，実行時に表示属性を変更できます。標準の修飾名と表示属性を次に示します。

修飾名 | 表示属性
ヌル（NULL）またはデータ | 定義時の属性
DB | 二重線に変更
DT | 点線に変更
DS | 破線に変更
SL | 実線に変更
IV | けい線を引かない

ただし，斜め線の属性は変更できません。表示属性はドローセットアップで修飾名ごとに設定します。ドローセットアップの設定についてはマニュアル「XMAP3 開発・実行ガイド」を参照してください。

表示属性を変更するデータ項目にデータ有無コード（データがないことを示す1バイトコード）をセットすると，標準の表示属性で印刷します。

4.2.2　矩形

配置したフィールドを強調したり，表を作成したりするときに使用します。

矩形は，けい線帳票，網掛け帳票，グラフィック帳票および書式オーバレイで使用できます。また，帳票によっては，矩形の角を丸めたり（ラウンドコーナを付けたり），矩形内に斜めけい線を付けたりできます。

次に，帳票ごとに矩形の内容を説明します。

＜この項の構成＞

(1)　けい線帳票

(2)　網掛け帳票

(3)　グラフィック帳票および書式オーバレイ

(4)　ます目の配置

(5)　矩形のけい線情報

(1)　けい線帳票

けい線帳票では，指定した範囲をけい線で囲むときに使用します。

矩形の属性

矩形の属性として線の種類および線の太さを指定できます。

線の種類：実線，破線

線の太さ：細線，中線

(2)　網掛け帳票

網掛け帳票では，指定した範囲をけい線で囲むときに使用します。また，矩形に角の丸め（ラウンドコーナ）を指定できます。

矩形の属性

矩形の属性として線の種類，線の太さ，および角の丸めを指定できます。

線の種類：実線，破線

線の太さ：細線，中線，太線，極太線

角の丸め：任意の四隅に設定できます。角の丸め位置は，「4.2.2(3)　グラフィック帳票および書式オーバレイ」を参照してください。

(3)　グラフィック帳票および書式オーバレイ

指定した範囲をけい線で囲むときに使用します。また，矩形には角の丸め（ラウンドコーナ）を指定したり，矩形内に斜めけい線を指定したりできます。

(a)　矩形の属性

矩形の属性として矩形の種別，線の種類，線の太さ，および角の丸めを指定できます。

矩形の種別：枠だけ，枠と右下がり斜線，枠と右上がり斜線

《矩形内の斜線》

線の種類：実線，破線，点線，一点鎖線，二点鎖線，二重線（斜線があるときは，指定できません）

線の太さ：細線，中線，太線，極太線

角の丸め：任意の四隅に設定できます。また，丸めの半径を三段階（大，標準，小）で指定できます。

《矩形の角の丸め位置》

(b)　矩形の自由配置

［表示］－［ます目配置］のチェックを外すことで，自由な位置に矩形を作成できます。

(4)　ます目の配置

ます目の配置では，その領域に合わせて配置されます。矩形のます目の配置を次に示します。

(5)　矩形のけい線情報

けい線は，横けい線の始点，交点，終点，および各行の縦けい線に半角文字で1文字分のけい線情報用の領域を占有します。横けい線は，けい線を行の上段に引くときは下側，行の下段に引くときは上側にけい線情報用の領域を占有します。ただし，ページプリンタのグラフィック帳票は，このようなけい線情報を意識しないで配置できます。矩形のけい線情報を次の図に示します。

図4-2　矩形のけい線情報

4.2.3　円と円弧

円および円弧は，グラフィック帳票と書式オーバレイで使用できます。

円は，帳票上に印鑑を押す個所を配置するときなどに使用します。また，円弧は，矢印や引出し線の角を丸めるときなどに使用します。

＜この項の構成＞

(1)　円の属性

(2)　円弧の属性

(3)　ます目の配置

(4)　円および円弧の自由配置

(5)　グラフィック帳票および書式オーバレイでの円弧指定時の注意

(1)　円の属性

円の属性では，線の種類，線の太さ，および網掛けを指定できます。

線の種類と太さ

太さ | 実線 | 点線 | 破線 | 一点鎖線 | 二点鎖線 | 二重線
細 | ○ | ○ | ○ | ○ | ○ | ○
中 | ○ | ○ | ○ | ○ | ○ | －
太 | ○ | ○ | ○ | ○ | ○ | －
極太 | ○ | ○ | ○ | ○ | ○ | －

（凡例）

－：該当しない。

網掛け：極薄網掛け，薄網掛け，標準網掛け，濃い網掛け，極濃網掛け，薄い格子，標準格子，薄い右下，標準右下，薄い左下，標準左下，薄い縦線，標準縦線，薄い横線，標準横線

(2)　円弧の属性

円弧の属性では，線の種類，線の太さ，および角度を指定できます。

線の種類と太さ

太さ | 実線 | 点線 | 破線 | 一点鎖線 | 二点鎖線 | 二重線
細 | ○ | ○ | ○ | ○ | ○ | －
中 | ○ | ○ | ○ | ○ | ○ | －
太 | ○ | ○ | ○ | ○ | ○ | －
極太 | ○ | ○ | ○ | ○ | ○ | －

（凡例）

－：該当しない。

円弧の角度：小，中，大

(3)　ます目の配置

ます目の配置では，その領域に合わせて配置されます。円および円弧のます目の配置を次に示します。

なお，円弧は中心線もレイアウト領域内に配置する必要があります。

(4)　円および円弧の自由配置

［表示］－［ます目配置］のチェックを外すことで，自由な位置に円および円弧を作成できます。

なお，円弧は中心線もレイアウト領域内に配置する必要があります。

(5)　グラフィック帳票および書式オーバレイでの円弧指定時の注意

グラフィック帳票および書式オーバレイで円弧を配置する場合，レイアウト上とプリンタ上での精細度の違いのため，印刷時に円弧の端がずれることがあります。確認する場合はテスト印刷をしてください。

4.2.4　固定フィールド

固定フィールドは，けい線帳票，網掛け帳票，グラフィック帳票および書式オーバレイで使用できます。

固定フィールドは，帳票上の標題や注釈などの変化しないテキストを配置するときに使用します。固定テキストとして，漢字を含めた日本語，または半角の英数字を設定できます。また，固定フィールドには，フィールド単位に拡大，字間値などの属性情報を必要に応じて指定できます。詳細については，「付録A　属性情報一覧」を参照してください。

固定フィールドは，APとのインタフェースを持ちません。したがって，固定フィールドを追加，修正，または削除してもAPには影響ありません。

＜この項の構成＞

(1)　ます目の配置

(2)　固定フィールドの自由配置

(3)　書式オーバレイでの固定フィールド指定時の注意

(4)　文字色の設定

(1)　ます目の配置

ます目の配置では，その領域に合わせて配置されます。固定フィールドのます目の配置を次に示します。

(2)　固定フィールドの自由配置

グラフィック帳票および書式オーバレイでは，［表示］－［ます目配置］のチェックを外すことで，自由な位置に固定フィールドを作成できます。

(3)　書式オーバレイでの固定フィールド指定時の注意

書式オーバレイの定義をする場合，固定フィールドダイアログで文字サイズと字間値を標準以外に設定すると，定義画面上の表示と印刷結果に多少のずれが発生することがあります。印刷する前に定義画面上で確認したい場合は，［表示］－［ズーム］－［拡大］で最大表示するか，プレビュー機能を使用してください。

(4)　文字色の設定

グラフィック帳票では，固定フィールドに配置した文字に色を設定できます。設定できる色は，黒，白，赤，緑，青，紫，空，黄です。

文字色の初期値は黒となっています。このため，文字色を黒以外に変更するには，変更するオブジェクトを選択した状態で，文字色ツールボックスから設定したい色を選択します。文字色ツールボックスを表示させるには，［属性］－［文字色］を選択するか，ツールバーの［文字色］ボタンを選択します。

なお，黒以外の文字色を設定した帳票は，PCに接続したプリンタからの印刷，またはPDFファイル出力で利用できます。

4.2.5　出力フィールド

出力フィールドは，けい線帳票，プレプリント帳票，網掛け帳票，およびグラフィック帳票で使用できます。

出力フィールドは，APで指定したデータを帳票上に印刷するときに使用します。出力フィールドは，フィールド単位に拡大，文字の間隔などの属性情報を必要に応じて指定できます。詳細については，「付録A　属性情報一覧」を参照してください。

＜この項の構成＞

(1)　ます目の配置

(2)　出力フィールドの自由配置

(3)　フィールドの反復

(4)　出力時のAPインタフェース

(5)　表示属性の動的変更

(6)　文字色の設定

(1)　ます目の配置

ます目の配置では，その領域に合わせて配置されます。出力フィールドのます目の配置を次に示します。

(2)　出力フィールドの自由配置

プレプリント帳票およびグラフィック帳票では，［表示］－［ます目配置］のチェックを外すことで，自由な位置に出力フィールドを作成できます。

(3)　フィールドの反復

一つのオブジェクトを縦方向または横方向に繰り返して定義できます。表形式で，同じ属性を並べるときなどに使用できます。反復を使用すると，同じ表示属性のオブジェクトを一つずつ配置するよりも効率良く定義できます。

反復の操作は，［Shift］キーを押しながらマウスをドラッグすることで，オブジェクトを縦方向に繰り返して定義できます。反復したオブジェクトのデータ項目は，配列（COBOLのときOCCURS展開）となります。

(4)　出力時のAPインタフェース

(a)　出力データ

APから出力フィールドの論理マップに設定されたデータが，帳票上に出力されます。出力フィールドに設定できるデータを次に示します。

数字
数字データ，数字編集データを設定できます。数字編集データは，指定したPICTURE句に従って出力されます（COBOLだけ有効）。

使用できるピクチャ文字：「＊」「＋」「－」「￥」「9」「，」「．」「Z」「／」で指定する。

日本語
全角，または半角の文字データを設定できます。

英数
半角の文字データを設定できます。

(b)　出力データの編集

出力フィールドでは，埋字や桁寄せなどのデータの編集もできます。APがデータ有無コードを格納し，有効データの長さが出力フィールドデータ名の領域の長さより短い場合，出力フィールドデータ名の領域の余った部分に埋字を格納します。また，データを出力フィールドデータ名の領域の右側に格納するか，左側に格納するかは，桁寄せ向きに従います。

(5)　表示属性の動的変更

出力フィールドダイアログで，動的変更を指定することで表示属性（文字に網を掛けたり，抹消線を設定したりなど）をAP実行時に変更できます。APでは，表示属性を変更するデータ項目にXMAP3が用意する修飾名をセットすると，実行時に表示属性を変更できます。標準の修飾名と表示属性を次に示します。

修飾名 | 表示属性
ヌル（NULL）またはデータ | 定義時の属性
BL | 太字に変更
SH | 文字に網を掛ける
CR | 文字に抹消線を引く
RE | 赤色文字

表示属性はドローセットアップで修飾名ごとに設定します。ドローセットアップでの設定についてはマニュアル「XMAP3 開発・実行ガイド」を参照してください。

表示属性を変更するデータ項目にデータ有無コード（データがないことを示す1バイトコード）をセットすると，標準の表示属性で表示されます。

(6)　文字色の設定

グラフィック帳票では，出力フィールドに配置した文字に色を設定できます。設定できる色は，黒，白，赤，緑，青，紫，空，黄です。

文字色の初期値は黒となっています。このため，文字色を黒以外に変更するには，変更するオブジェクトを選択した状態で，文字色ツールボックスから設定したい色を選択します。文字色ツールボックスを表示させるには，［属性］－［文字色］を選択するか，ツールバーの［文字色］ボタンを選択します。

なお，黒以外の文字色を設定した帳票は，PCに接続したプリンタからの印刷，またはPDFファイル出力で利用できます。

4.2.6　予約フィールド

予約フィールドは， XMAP3/NET，またはXMAP3/Enterprise Editionの場合に，けい線帳票，プレプリント帳票，網掛け帳票，およびグラフィック帳票で使用できます。なお，ドローセットアップの「運用管理者用の設定」でマップ名の長さに7文字を指定している場合，またはXMAP3/Enterprise Editionの「ターゲット環境の設定」で「メインフレーム－PC分散用の画面・帳票開発」を設定している場合は，予約フィールドを使用できません。

予約フィールドは，OpenTP1が提供する予約項目（日付，時刻など）を帳票上に印刷するときに使用します。予約フィールドには，フィールド単位に文字サイズ，文字間隔などの属性情報を必要に応じて指定できます。なお，指定できる属性情報は，定義対象によって異なります。属性情報の詳細については，「付録A.6　フィールド・けい線系の属性情報」を参照してください。

＜この項の構成＞

(1)　ます目の配置

(2)　予約フィールドの自由配置

(3)　予約項目名

(4)　予約フィールド定義時の制限事項

(5)　文字色の設定

(1)　ます目の配置

ます目の配置では，その領域に合わせて配置されます。予約フィールドのます目の配置を次に示します。

(2)　予約フィールドの自由配置

プレプリント帳票およびグラフィック帳票では，［表示］－［ます目配置］のチェックを外すことで，自由な位置に予約フィールドを作成できます。

(3)　予約項目名

予約フィールドに定義する項目名は，OpenTP1が提供する予約項目名を指定します。論理マップにデータを設定しなくても，印刷実行時に項目名に対応したフォーマットで，OpenTP1から生成された日付，時刻などのデータを帳票上に出力できます。予約項目名は8文字以内の半角英数字で指定してください。また，1文字目には必ず英字を指定してください。なお，標準値はTIMEです。

OpenTP1が提供する予約項目名については，マニュアル「OpenTP1プロトコル TP1/NET/XMAP3編」を参照してください。

予約項目のデータの受け渡しの概要を次の図に示します。

図4-3　予約項目のデータの受け渡しの概要

ドローで予約フィールド「TIME」を定義します。

物理マップ中に予約項目情報「TIME」が設定されます。

APからのSEND文によって論理データが指定されます。

OpenTP1に物理マップが読み込まれます。

OpenTP1によって予約テーブルが生成され，論理データ，物理マップ，および予約テーブルがXMAP3に渡されます。

XMAP3によって帳票が印刷されます。

(4)　予約フィールド定義時の制限事項

予約フィールドの定義時には，次に示す制限があります。

［Shift］キーを押しながらの繰り返し配置はできません。

フレーム上には配置できません。

予約項目にはデータ項目名が与えられないので，予約項目名同士や出力オブジェクトのデータ名との重複チェックはされません。

予約フィールドを複写して配置した場合，予約項目名は自動的に付け直されません。

予約項目名はデータ名編集ダイアログに表示されません。

(5)　文字色の設定

グラフィック帳票では，予約フィールドに配置した文字に色を設定できます。設定できる色は，黒，白，赤，緑，青，紫，空，黄です。

文字色の初期値は黒となっています。このため，文字色を黒以外に変更するには，変更するオブジェクトを選択した状態で，文字色ツールボックスから設定したい色を選択します。文字色ツールボックスを表示させるには，［属性］－［文字色］を選択するか，ツールバーの［文字色］ボタンを選択します。

なお，黒以外の文字色を設定した帳票は，PCに接続したプリンタからの印刷，またはPDFファイル出力で利用できます。

4.2.7　網掛け

網掛け帳票，グラフィック帳票および書式オーバレイでは，領域に対する網掛けを指定できます。見出し領域に網掛けを配置してその領域を強調したり，複数行にわたって並んだフィールドに1行間隔の網掛けを配置することで表を見やすくしたりできます。また，グラフィック帳票および書式オーバレイでは，格子や斜め線などの網掛けを設定できます。

網掛けは，けい線やフィールドと重ねて配置できます。

＜この項の構成＞

(1)　網掛け帳票

(2)　グラフィック帳票および書式オーバレイ

(3)　ます目の配置

(1)　網掛け帳票

網掛け帳票では，矩形の網掛け，ラウンドコーナの網掛け，および1行間隔の網掛けが設定できます。

(a)　網掛けの属性

網掛け帳票の属性として，角の丸め（ラウンドコーナ），網掛けの濃さ，および網掛けの枠を指定できます。

角の丸め位置：任意の四隅に設定できます

網掛けの濃さ：薄い網掛け，中間の網掛け，濃い網掛け

網掛けの枠付け：枠あり／なし

(2)　グラフィック帳票および書式オーバレイ

グラフィック帳票および書式オーバレイでは，矩形の網掛け，ラウンドコーナの網掛け，および1行間隔の網掛けが設定できます。

(a)　網掛けの属性

網掛けの属性として，種別，網掛けの濃さ，角の丸め位置，および丸めの半径を指定できます。

種別：枠なし，枠付，枠付・右下がり斜線，枠付・右上がり斜線
《矩形内の斜線》

網掛けの濃さ：網掛けの濃さを次に示します。また，網掛けの印刷結果は，印刷モードやプリンタドライバによって，異なることがあります。
《網掛けの濃さ》

角の丸め位置：任意の四隅に設定できます。

丸めの半径：大，標準，小
《角の丸め位置と角の丸め》

(b)　網掛けの自由配置

グラフィック帳票および書式オーバレイでは，［表示］－［ます目配置］のチェックを外すことで，自由な位置に網掛けを作成できます。

(3)　ます目の配置

ます目の配置では，その領域に合わせて配置されます。網掛けのます目の配置を次に示します。

4.2.8　出力OCRの設計

出力OCRは，けい線帳票，プレプリント帳票およびグラフィック帳票で使用できます。

＜この項の構成＞

(1)　出力OCRで指定できる文字

(2)　出力OCRの配置方法

(3)　出力OCRの自由配置

(4)　出力OCR文字の間隔調整

(5)　フィールドの反復

(6)　文字色の設定

(7)　異なるバージョン間でのOCR印刷

(8)　印刷したOCR文字をOCRリーダで読み込ませるときの注意

(1)　出力OCRで指定できる文字

出力OCRでは，英数字，かたかな，および記号のOCR文字を印刷できます。

指定できる文字については，「付録F.1　XMAP3で規定しているOCR文字コード表」を参照してください。

(2)　出力OCRの配置方法

出力OCRの配置方法を次に示します。

帳票を定義します。

出力OCRの位置と長さを指定します。

帳票定義対象ごとの注意事項と，出力OCRの配置時に仮定される文字属性を表4-1，表4-2に示します。

表4-1　帳票定義対象ごとの注意事項

帳票定義対象 | 注意事項
けい線帳票（カット紙／連続紙） | 用紙の基本ます目を「10CPI」または「自由な設定」にする必要があります。
プレプリント帳票（カット紙／連続紙） | 用紙の基準ます目を「10CPI」にする必要があります。
グラフィック帳票 | 用紙の基本ます目を「10CPI」または「自由な設定」にする必要があります。

注

基準ます目が10CPIか，自由なます目でなければ出力OCRは使用できません。

表4-2　出力OCR配置時に仮定される文字属性

帳票定義対象 | 用紙の基準ます目 | 文字サイズ | 文字間隔
けい線帳票（カット紙／連続紙） | 10CPI | － | 標準
自由な設定 | － | 4ポイント
プレプリント帳票（カット紙／連続紙） | 10CPI | － | 4ポイント
グラフィック帳票 | 10CPI | 標準 | 標準
自由な設定 | 9ポイント | 5ポイント

（凡例）

－：該当しない。

(3)　出力OCRの自由配置

プレプリント帳票およびグラフィック帳票では，［表示］－［ます目配置］のチェックを外すことで，自由な位置に出力OCRを作成できます。

(4)　出力OCR文字の間隔調整

出力OCRを使用する場合，文字属性は基本的に10CPIを設定します。

ただし，利用するOCRリーダで読み取れない場合は，文字間隔を変更する必要があります。文字間隔を変更するには，帳票属性ダイアログの中の「ます目の設定」が「自由な設定」でなければなりません。この場合，文字間隔は0～7ポイントの範囲から選択できます。なお，180dpiのシリアルインパクトプリンタ用の帳票では，10CPIでの文字間隔は4ポイントなので，まず3ポイントまたは5ポイントに変更して試すことをお勧めします。また，240／300dpiのページプリンタ用の帳票では，10CPIでの文字間隔は5ポイントなので，まず4ポイントまたは6ポイントに変更して試すことをお勧めします。

(5)　フィールドの反復

オブジェクトを縦方向または横方向に複数連続して配置できます。

縦反復は，基本ます目が「10CPI」か「自由な設定」のどちらの場合でも配置できます。横反復は，基本ます目が「10CPI」のときだけ配置できます。

反復の操作は，基本ます目が「10CPI」のときだけ，［Shift］キーを押しながらマウスをドラッグすることで，オブジェクトを縦方向に繰り返して定義できます。

(6)　文字色の設定

グラフィック帳票では，出力OCRに配置した文字に色を設定できます。設定できる色は，黒，白，赤，緑，青，紫，空，黄です。

文字色の初期値は黒となっています。このため，文字色を黒以外に変更するには，変更するオブジェクトを選択した状態で，文字色ツールボックスから設定したい色を選択します。文字色ツールボックスを表示させるには，［属性］－［文字色］を選択するか，ツールバーの［文字色］ボタンを選択します。

なお，黒以外の文字色を設定した帳票は，PCに接続したプリンタからの印刷，またはPDFファイル出力で利用できます。

(7)　異なるバージョン間でのOCR印刷

XMAP3の異なるバージョン間でOCR印刷をする場合，次の図に示す文字の扱いに注意が必要です。

図4-4　注意が必要なOCR文字

XMAP3 03-04以降でこの図に示すOCR文字を指定し，XMAP3 03-03以前のバージョンまたはXP/W 03-02以前のバージョンで印刷すると，指定したOCR文字は空白になります。

XMAP3 03-03以前のバージョンまたはXP/W 03-02以前のバージョンで，この図に示すOCR文字を指定し，XMAP3 03-04以降で印刷すると，指定したOCR文字が印刷されます。

(8)　印刷したOCR文字をOCRリーダで読み込ませるときの注意

OCR文字をOCRリーダで読み取るときには，次のことに注意してください。

XMAP3で印字するOCR文字の大きさがOCRリーダで読み取りができる範囲に入っているかどうか確認してください。

印刷したOCR文字をOCRリーダで読み取る場合は，次に示すOCRリーダをなるべく使用してください。
「OCRハンドリーダ PC-KC2200」，「Imaging OCR HT-4137」，「Friendly OCR HT-4135」，「Friendly HT-4132」

次の図に示すOCR文字は，OCRリーダによっては，読み取り時に正しく認識されなかったり，一部の文字しかサポートされていなかったりする場合があるので注意が必要です。

図4-5　読み取りにくいOCR文字

OCR文字を使用した帳票をGDIモードで印刷した場合，Windowsやプリンタドライバによって描画サイズが多少変わることがあります。GDIモードでの印刷は，LIPSII+，LIPSIII，およびESC/Pのスルーモード印刷に比べて，OCRリーダでのOCR文字を認識しにくくなる場合があるので，事前に確認することをお勧めします。

インクのにじみ，プリンタの印字品質劣化，およびOCRリーダの読み取り精度によっては，印字したOCR文字がOCRリーダに認識されない場合があります。運用前には，印字および読み取りを確認し，システム運用に支障がないことを確認してから使用してください。

OCR文字をカラーで設定しているとき，OCRリーダによっては誤って認識したり，読み取りができないことがあります。

OCR文字を，PDFファイル出力したあとでプリンタに出力した場合，出力するプリンタドライバの解像度やビューア（Acrobat Readerなど）の設定によって，文字の大きさや文字の形状が変わることがあります。OCRリーダでOCR文字を認識させる場合は，運用前に問題がないことを確認してから使用してください。

4.2.9　バーコードの設計

バーコードには，固定バーコード，出力バーコード，連結出力バーコードがあります。固定バーコードはグラフィック帳票で，出力バーコードはプレプリント帳票およびグラフィック帳票で，連結出力バーコードはグラフィック帳票で使用できます。

なお，XMAP3で印刷したバーコードを読み取るときに使用するバーコードリーダには，「バーコードリーダ PC-KR1100」をお勧めします。また，EAN-128のバーコードを読み取るときは，EAN-128対応レーザスキャナのバーコードリーダBL-200UB（キーエンス社製）を使用することをお勧めします。

＜この項の構成＞

(1)　出力／固定／連結出力バーコード

(2)　バーコード種別

(3)　データの格納形式と印刷形式

(4)　バーコードのサイズ

(5)　バーコードの自由配置

(6)　バーコードの反復

(7)　EAN-128バーコードの印字幅調整

(8)　 EAN-128バーコードのスタート／ストップキャラクタの印字幅調整

(9)　カスタマバーコードのチェックデジット計算方法

(10)　固定バーコードのエラーチェック

(11)　印刷したバーコードをバーコードリーダで読み込ませるときの注意

(12)　EAN-128バーコードを印字するときの注意

(1)　出力／固定／連結出力バーコード

バーコードを印字するためのオブジェクトです。バーコードの値は，出力／連結出力バーコードの場合，APで指定します。APで指定した値は論理マップを介してバーコード変換され，帳票に印字されます。固定バーコードの場合，帳票のレイアウト定義時に固定バーコードダイアログで指定します。

(2)　バーコード種別

出力／固定／連結出力バーコードとして指定できるバーコードの種別と指定できる文字を次の表に示します。

表4-3　指定できるバーコード種別

バーコード
種別
指定できる文字
長さ
（桁数）
備考

JAN13※¹
0～9
13
最後の1桁はモジュラス
チェック用に使用する。

JAN8※¹
8

CODE39※¹
0～9，-，.，空白，$，/，+，%，A～Z，＊
3～76
＊はスタート／ストップコード※3

ITF(6)※¹
0～9
6
なし

ITF(14)※¹
14

ITF(16)※¹
16

NW-7※¹
0～9，-，$，:，/，.， +，A，B，C，D
3～99
A，B，C，Dはスタート／ストップコード※3

カスタマ※¹
0～9，-，空白，A～Z
22
最後の2桁は，モジュラスチェック用に使用する（00～18）。
データが短いときには余白をスペースで埋める※4。データが長いときには21文字以上は切り捨てる※4。

EAN-128※²
コードセットB※5
0～9，A～Z，a～z，!，“，#，$，%，&，‘，(，)，*，+，,，-，.，/，:，;，<，=，>，?，@，[，¥，]，^，_，`，{，|，}，~，空白
4～240
指定文字はバーコードパターンおよびデータ文字として印字する※6。

コードセットC※5
0～9，(，)，-，空白
(，)，-，空白はバーコードパターンとして印字しないがデータ文字として印字する※6。

注※1

出力／固定バーコードとして指定できます。

注※2

連結出力バーコードとして指定できます。

注※3

スタート／ストップコードはユーザ側で指定してください。

注※4

出力バーコードの場合に有効です。

注※5

コードセットとは，バーコードを印刷するためにAPから指定するデータの利用文字範囲を区別するものです。

注※6

APで正しい文字が使用された場合でも，EAN-128バーコードとして成立しない場合には印字が破棄される場合があります。詳細については，「5.3.5　バーコードの論理マップ生成規則とマッピング規則」を参照してください。

(3)　データの格納形式と印刷形式

バーコード種別ごとにデータの格納形式と印刷形式の仕様を次に示します。

バーコード
種別
論理長
チェック
デジット
スタート／
ストップ
格納形式

形式
指定例

JAN
8と13
必要
不要
XXX..XXC※¹
12345670

CODE39
3～76
不要
必要
*XXX...X*※²
*CODE39*

NW-7
3～99
不要
必要
sXX...XXs※³
A1234A

ITF
6，14，または16
不要
不要※⁴
XXX...XXX※⁵
123456

カスタマ
22
必要
不要※⁴
P..PA...ACC※⁶
24400006-81s..s13※⁶

EAN-128
4～240
不要※⁴
不要※⁴
XX...XX※⁷
(91)912345-...-1

注※1

X：7または12バイト，C：チェックデジット

注※2

*：スタート／ストップコード

注※3

s：スタート／ストップコード（原則，スタート／ストップは合わせます）

注※4

APでの指定は不要です。XMAP3が付けます。

注※5

X：6，14または16バイト

注※6

p：郵便番号（数字7桁），s：スペース，A：住所番号（英文字，ハイフン，スペース13桁），C：チェックデジット（2桁）

注※7

X：4～240バイト

バーコードを印刷するときにXMAP3が生成するデータパターンのデータ形式と印刷例を次に示します。このデータパターンには，APデータとXMAP3が付ける制御コードが含まれています。

バーコー
ド種別
印刷形式

形式
印刷例

JAN8
L4912C3456R※¹
[図データ]　

JAN13
L912345C678904R
※¹※²
[図データ]　

CODE39
*CODE39*
[図データ]　

NW-7
A1234A
[図データ]　

ITF
s123456s※³
[図データ]　

カスタマ
s24400006-　　81cc...ccCs※⁴
[図データ]　

EAN-128
(91)912345-...-1※⁵
[図データ]　

注※1

「L：左ガードバー，R：右ガードバー，C：センターバー」はXMAP3が付けます。また，右ガードバー直前の最後の1桁はモジュラチェックキャラクタです。ちなみに，一般の商品管理では，13桁の先頭2桁は49または45で，日本の国コードとして使われています。

注※2

指定された13桁の先頭1桁（印刷例の先頭の1）は2～7桁目の描画パリティパターン（プリフィックスキャラクタ）を示すものです。バーコード形式上は描画されません。

注※3

「s：スタートマーク／ストップマーク」はXMAP3が付けます。

注※4

「s：スタートコード／ストップコード，c：制御コード（埋字）」はXMAP3が付けます。「C：チェックデジット」はXMAP3では付けませんのでAPデータで指定してください。

注※5

「スタートコード／ストップコード，チェックデジット」はXMAP3が付けます。

(4)　バーコードのサイズ

(a)　レイアウト

出力バーコード，固定バーコードおよび連結出力バーコードは，指定した領域内で，左右方向に対しては中央に配置されます。上下方向に対しては，指定した領域内いっぱいに配置されます。

なお，データ文字を指定した場合，データ文字は左・右ガードバーからはみ出る場合があります。

(b)　帳票定義でのバーコードサイズ

シリアルプリンタ（180dpi）およびページプリンタ（240dpi）の，レイアウト領域でバーコードを定義するときに必要となるサイズを次の表に示します。なお，バーコードのサイズは使用するバーコードリーダの仕様を確認した上で決めてください。

シリアルプリンタ（180dpi）のバーコード最小サイズ

表4-4　バーコードの縦サイズ（最小値）

行間隔 | JAN13 | JAN8 | CODE39 | NW-7 | ITF(6) | ITF(14) | ITF(16)
6LPI | 1（2） | 1（2） | 1（2） | 1（2） | 1（2） | 1（2） | 1（2）
8LPI | 1（2） | 1（2） | 1（2） | 1（2） | 1（2） | 1（2） | 1（2）

（凡例）

（　）：データ文字がある場合。

注

この表の値の単位は「行」です。

表4-5　バーコードの横サイズ（最小値）

文字間隔
JAN
13※
JAN8
CODE
39
NW-7
ITF(6)
ITF(14)
ITF(16)

CPI
10CPI
13
9
この欄の値は
「(c)　バーコード印刷に必要な幅」を参照してください。
10
18
20

12CPI
16
11
12
21
24

15CPI
19
14
14
26
29

文字サ
イズ／
字間値
9ポイント／0文字間隔
19
14
14
26
29

9ポイント／1文字間隔
18
13
13
24
27

9ポイント／2文字間隔
16
11
12
21
24

9ポイント／3文字間隔
15
11
11
20
22

9ポイント／4文字間隔
13
9
10
18
20

9ポイント／5文字間隔
12
9
9
17
19

9ポイント／6文字間隔
11
8
8
15
17

9ポイント／7文字間隔
11
8
8
15
16

注

この表の値の単位は「列」です。

注※

データ文字を付けた場合，データ文字がはみ出ることがあります。データ文字を付けて印刷する場合は，2ます加えて指定してください。

ページプリンタ（240dpi）のバーコード最小サイズ

表4-6　バーコードの縦サイズ（最小値）

行間隔
JAN13
JAN8
CODE39
NW-7
ITF
(6)
ITF
(14)
ITF
(16)
カスタマ
EAN-128

3LPI
1（1）
1（1）
1（1）
1（1）
1（1）
1（1）
1（1）
（1）
1（1）

4LPI
1（1）
1（1）
1（1）
1（1）
1（1）
1（1）
1（1）
（2）
1（1）

6LPI
1（2）
1（2）
1（2）
1（2）
1（2）
1（2）
1（2）
（2）
1（2）

8LPI
1（2）
1（2）
1（2）
1（2）
1（2）
1（2）
1（2）
（3）
1（2）

10LPI
1（2）
1（2）
1（2）
1（2）
1（2）
1（2）
1（2）
（3）
1（2）

12LPI
1（2）
1（2）
1（2）
1（2）
1（2）
1（2）
1（2）
（4）
1（2）

（凡例）

（　）：データ文字がある場合。

注

この表の値の単位は「行」です。

表4-7　バーコードの横サイズ（最小値）

文字間隔
JAN
13
JAN
8
CODE39
NW-7
EAN-128
ITF
(6)
ITF
(14)※
ITF
(16)※
カスタマ

CPI
10CPI
15
11
この欄の値は「(c)　バーコード印刷に必要な幅」を参照してください。
7
13
15
33

12CPI
18
13
9
16
18
39

15CPI
22
16
11
20
22
49

文字サ
イズ／
字間値
12ポイント／0文字間隔
18
13
9
16
18
39

12ポイント／1文字間隔
16
12
8
15
16
36

12ポイント／2文字間隔
15
11
8
14
16
34

12ポイント／3文字間隔
14
10
7
13
14
31

12ポイント／4文字間隔
14
10
7
12
14
30

12ポイント／5文字間隔
13
9
6
12
13
28

12ポイント／6文字間隔
12
9
6
11
12
27

12ポイント／7文字間隔
11
8
6
10
12
25

9ポイント／0文字間隔
22
16
11
20
22
49

9ポイント／1文字間隔
19
14
10
18
20
43

9ポイント／2文字間隔
18
13
9
17
19
41

9ポイント／3文字間隔
17
12
8
15
17
37

9ポイント／4文字間隔
16
12
8
15
16
36

9ポイント／5文字間隔
15
11
7
13
15
33

9ポイント／6文字間隔
14
10
7
13
14
31

9ポイント／7文字間隔
13
10
7
12
13
29

7ポイント／0文字間隔
29
21
14
26
29
65

7ポイント／1文字間隔
25
18
12
23
25
56

7ポイント／2文字間隔
23
17
12
21
24
52

7ポイント／3文字間隔
21
15
10
19
21
46

7ポイント／4文字間隔
19
14
10
18
20
43

7ポイント／5文字間隔
18
13
9
16
18
39

7ポイント／6文字間隔
17
12
8
15
17
37

7ポイント／7文字間隔
15
11
8
14
16
34

5ポイント／0文字間隔
43
31
21
39
44
97

5ポイント／1文字間隔
35
25
17
31
35
78

5ポイント／2文字間隔
31
23
16
29
32
71

5ポイント／3文字間隔
27
19
13
24
27
60

5ポイント／4文字間隔
25
18
12
20
25
56

5ポイント／5文字間隔
22
16
11
20
22
49

5ポイント／6文字間隔
20
15
10
19
21
46

5ポイント／7文字間隔
18
13
9
17
19
41

注

この表の値の単位は「列」です。

注※

データ文字を付けた場合，データ文字がはみ出ることがあります。データ文字を付けて印刷する場合は，2ます加えて指定してください。

(c)　バーコード印刷に必要な幅

プレプリント帳票およびグラフィック帳票の印刷では，バーコード種別に合った印刷仕様で，印刷時にプリンタが自動的に選択します。

プレプリント帳票の場合

CODE39：3.0CPIまたは5.5CPI相当のどちらかを自動的に選択

JAN8，JAN13：×1.0倍または×1.3倍相当のどちらかを自動的に選択

NW-7：小（6.4CPI），中（4.8CPI），または大（3.2CPI）のどれかを自動的に選択

ITF：小（10CPI），中（7.5CPI），または大（5CPI）のどれかを自動的に選択

グラフィック帳票の場合

CODE39：3.0CPIまたは5.5CPI相当のどちらかを自動的に選択

JAN8，JAN13：×1.0倍または×1.3倍相当のどちらかを自動的に選択

NW-7：小（8.5CPI），中（5.3CPI），または大（3.2CPI）のどれかを自動的に選択

ITF：小（13.3CPI），中（8.2CPI），または大（5CPI）のどれかを自動的に選択

カスタマ：1文字9.6ポイントを自動的に選択

EAN-128：8.5CPIまたは12.5CPI相当のどちらかを自動的に選択

バーコードは，帳票定義で指定したバーコード領域の幅（ます目数）に対して，次に示す計算で得られるドット数に収まるCPI，または倍率で印刷されます。このとき，バーコード印刷に必要なドット数からどちらか大きい方を，印刷時にプリンタが自動的に選択して印刷します。

印刷時のCPI，または倍率の仕様をどちらか一方に決めて印刷したい場合は，XMAP3ドローでの帳票レイアウト定義で，バーコード領域の横幅（ます目数）やます目設定（文字サイズ／文字の間隔）を調整してください。

グラフィック帳票およびプレプリント帳票のバーコード種別ごとに，印刷に必要なドット数を次に示します。

プレプリント帳票（180dpi相当で換算したもの）
《CODE39》

3.0CPI相当で必要なドット数＝32ドット×バーコードの桁数＋100ドット

5.5CPI相当で必要なドット数＝60ドット×バーコードの桁数＋100ドット

なお，バーコードの桁数には，スタート／ストップコードを含めます。
《JAN8》

×1.0倍相当で必要なドット数＝162ドット

×1.3倍相当で必要なドット数＝226ドット

注

マージン幅を含んだ値です。

《JAN13》

×1.0倍相当で必要なドット数＝229ドット（データ文字を付けた場合は，234ドット）

×1.3倍相当で必要なドット数＝321ドット

注

マージン幅を含んだ値です。

《NW-7》

小（6.4CPI）で必要なドット数＝28×バーコードの桁数＋54ドット（マージン幅）

中（4.8CPI）で必要なドット数＝37×バーコードの桁数＋72ドット（マージン幅）

大（3.2CPI）で必要なドット数＝56×バーコードの桁数＋108ドット（マージン幅）

《ITF(6)》

小（10CPI）で必要なドット数＝166ドット

中（7.5CPI）で必要なドット数＝205ドット

大（5CPI）で必要なドット数＝332ドット

注

マージン幅を含んだ値です。

《ITF(14)》

小（10CPI）で必要なドット数＝310ドット

中（7.5CPI）で必要なドット数＝397ドット

大（5CPI）で必要なドット数＝620ドット

注

マージン幅を含んだ値です。

《ITF(16)》

小（10CPI）で必要なドット数＝346ドット

中（7.5CPI）で必要なドット数＝445ドット

大（5CPI）で必要なドット数＝692ドット

注

マージン幅を含んだ値です。

《バーコード幅の計算方法》
プレプリント帳票でのバーコード印刷に必要なます目数を，上記の計算を使用して求める例を次に示します。

（例）

ます目設定が10CPI（24ドット）のときのバーコード幅の計算方法

CODE39を3.0CPI相当で10桁で印刷する場合

必要なます目数＝(32×10+100)/18＝24ます

CODE39を5.5CPI相当で10桁で印刷する場合

必要なます目数＝(60×10+100)/18＝39ます

JAN13を×1.0倍で印刷する場合

必要なます目数＝229/18＝13ます

JAN13を×1.3倍で印刷する場合

必要なます目数＝321/18＝18ます

NW-7で小で10桁で印刷する場合

必要なます目数＝↑(28×10＋54)/18↑＝19ます

NW-7で大で10桁印刷する場合

必要なます目数＝↑(56×10＋108)/18↑＝38ます

ITF(14)を小で印刷する場合

必要なます目数＝↑310/18↑＝18ます

ITF(14)を大で印刷する場合

必要なます目数＝↑620/24↑＝35ます

注意

↑ ↑は記号内の計算式で求められる値の小数点以下を切り上げることを意味します。

グラフィック帳票（240dpi相当で換算したもの）
《CODE39》

3.0CPI相当で必要なドット数＝77ドット×バーコードの桁数+132ドット（マージン幅）

5.5CPI相当で必要なドット数＝44ドット×バーコードの桁数+132ドット（マージン幅）

なお，バーコードの桁数には，スタート／ストップコードを含めます。
《JAN8》

×1.0倍相当で必要なドット数＝243ドット（マージン幅56ドットを含む）

×1.3倍相当で必要なドット数＝324ドット

《JAN13》

×1.0倍相当で必要なドット数＝339ドット（マージン幅44ドットを含む）

×1.3倍相当で必要なドット数＝452ドット

《NW-7》

小（8.5CPI）で必要なドット数＝28×バーコードの桁数＋54ドット（マージン幅）

中（5.3CPI）で必要なドット数＝45×バーコードの桁数＋72ドット（マージン幅）

大（3.2CPI）で必要なドット数＝73×バーコードの桁数＋108ドット（マージン幅）

《ITF(6)》

小（10CPI）で必要なドット数＝166ドット

中（7.5CPI）で必要なドット数＝262ドット

大（5CPI）で必要なドット数＝428ドット

注

マージン幅を含んだ値です。

《ITF(14)》

小（10CPI）で必要なドット数＝310ドット（データ文字を付けた場合は，336ドット）

中（7.5CPI）で必要なドット数＝494ドット

大（5CPI）で必要なドット数＝804ドット

注

マージン幅を含んだ値です。

《ITF(16)》

小（10CPI）で必要なドット数＝346ドット（データ文字を付けた場合は，384ドット）

中（7.5CPI）で必要なドット数＝552ドット

大（5CPI）で必要なドット数＝898ドット

注

マージン幅を含んだ値です。

《カスタマ》

必要なドット数＝774ドット

注

マージン幅を含んだ値です。

《EAN-128》

8.5CPI相当で必要なドット数＝26.4ドット×バーコードの桁数＋158.4ドット

12.5CPI相当で必要なドット数＝17.6ドット×バーコードの桁数＋121.6ドット

バーコードの桁数とは，バーコードパターンとならない(，)，-，空白を除いたデータのうち，次の各数の総和です。

コードセットCのデータ桁数の半分

コードセットBのデータ桁数

項目のコードセットの属性がCからB，またはBからCに切り替わった回数

データ後半にデータ有無コードがある項目数

《バーコード幅の計算方法》
グラフィック帳票でのバーコード印刷に必要なます目数を，上記の計算を使用して求める例を次に示します。

（例）

ます目設定が10CPI（24ドット）のときのバーコード幅の計算方法

CODE39を3.0CPI相当で10桁印刷する場合

必要なます目数＝↑(最小マージン+3.0CPI相当で必要なドット数×桁数)/ます目ドット数↑＝↑(132+77×10)/24↑＝37ます

CODE39を5.5CPI相当で10桁印刷する場合

必要なます目数＝↑(最小マージン+5.5CPI相当で必要なドット数×桁数)/ます目ドット数↑＝↑(132+44×10)/24↑＝24ます

JAN13を×1.0倍で印刷する場合

必要なます目数＝↑×1.0倍で必要なドット数／ます目ドット数↑＝341/24＝15ます

JAN13を×1.3倍で印刷する場合

必要なます目数＝↑×1.3倍で必要なドット数／ます目ドット数↑＝436/24＝19ます

NW-7で小で10桁印刷する場合

必要なます目数=↑(最小マージン+小で必要なドット数×桁数)/ます目ドット数↑＝↑(28×10＋54)/24↑＝14ます

NW-7で大で10桁印刷する場合

必要なます目数=↑(最小マージン+大で必要なドット数×桁数)/ます目ドット数↑＝↑(73×10＋108)/24↑＝ 35ます

ITF(14)を小で印刷する場合

必要なます目数=↑小で必要なドット数/ます目ドット数↑＝↑310/24↑＝13ます

ITF(14)を大で印刷する場合

必要なます目数=↑大で必要なドット数/ます目ドット数↑＝↑804/24↑＝ 34ます

カスタマを印刷する場合

必要なます目数=↑必要なドット数/ます目ドット数↑＝↑774/24↑＝33ます

EAN-128（すべてコードセットCのデータ）を8.5CPI相当で44桁印刷する場合※

バーコードパターンのサイズ＝↑(8.5CPI相当で必要なドット数×桁数＋自動付加数)/ます目ドット数↑＝↑(26.4×22+158.4)/24↑＝31ます

EAN-128（すべてコードセットCのデータ）を12.5CPI相当で44桁印刷する場合※

バーコードパターンのサイズ＝↑(12.5CPI相当で必要なドット数×桁数＋自動付加数)/ます目ドット↑＝↑(17.6×22+121.6)/24↑＝22ます

注※

コメント文字有りの場合，データ文字（OCR文字）のサイズは次のとおりです。

データ文字のサイズ＝↑44×16/24↑＝30ます

注意

↑ ↑は記号内の計算式で求められる値の小数点以下を切り上げることを意味します。

(5)　バーコードの自由配置

［表示］－［ます目配置］のチェックを外すことで，自由な位置にバーコードを作成できます。

(6)　バーコードの反復

出力バーコードまたは連結出力バーコードのダイアログで，「バーコードの反復」を設定すると，一つのオブジェクトを縦方向または横方向に繰り返して定義できます。表形式で同じ属性のオブジェクトを並べる場合などに使用します。

反復定義を使用すると，同じ属性のオブジェクトを一つずつ配置するより効率良く定義できます。

バーコードの反復は，出力バーコードまたは連結出力バーコードだけできます。

(7)　EAN-128バーコードの印字幅調整

EAN-128バーコードを印字するとき，バーの印字幅をドット単位で調整できます。EAN-128バーコードの調整の例を次に示します。

EAN-128バーコードの印字幅を調整するには，プリンタ構成ファイルに設定します。EAN-128バーコードの印字幅の設定については，マニュアル「XMAP3 開発・実行ガイド」の帳票に関する環境設定を参照してください。

印刷モードは，「GDI：ページプリンタ」または「PDFファイル出力：網掛け／グラフィック／書式用」を使用してください。印刷モードが「PDLスルー：LIPS準拠ページプリンタ」の場合，この機能は使用できません。また，そのほかの印刷モードでは，EAN-128バーコードが正しく印字されません。

なお，EAN-128バーコードの印字幅を調整するだけでは，十分なバーコードの読み取り精度の向上はできません。EAN-128バーコードの読み取り精度を上げるには，バーコードの印字幅を調整する以外に，必ずプリンタトナーや用紙などの改善もあわせて実施してください。

(8)　 EAN-128バーコードのスタート／ストップキャラクタの印字幅調整

EAN-128バーコードを印字するとき，EAN-128バーコードのスタート／ストップキャラクタの印字幅を，ドット単位で調整できます。EAN-128バーコードの印字幅調整と併用すると，印刷精度をさらに向上できます。EAN-128バーコードのスタート／ストップキャラクタの印字幅調整の例を次に示します。

EAN-128バーコードのスタート／ストップキャラクタの印字幅を調整するには，プリンタ構成ファイルに設定します。EAN-128バーコードのスタート／ストップキャラクタの印字幅の設定については，マニュアル「XMAP3 開発・実行ガイド」の帳票に関する環境設定を参照してください。

印刷モードは，「GDI：ページプリンタ」または「PDFファイル出力：網掛け／グラフィック／書式用」を使用してください。印刷モードが「PDLスルー：LIPS準拠ページプリンタ」の場合，この機能は使用できません。また，そのほかの印刷モードでは，EAN-128バーコードが正しく印字されません。

なお，EAN-128バーコードのスタート／ストップキャラクタの印字幅を調整するだけでは，十分なバーコードの読み取り精度の向上はできません。EAN-128バーコードの読み取り精度を上げるには，バーコードのスタート／ストップキャラクタの印字幅を調整する以外に，必ずプリンタトナーや用紙などの改善もあわせて実施してください。

(9)　カスタマバーコードのチェックデジット計算方法

バーコードは，データとチェックデジットで構成されています。カスタマバーコードを設計する場合，バーコードの値はデータの変換値とチェックデジットの和が19の倍数になるようにします。

データ
0～9，A～Z，－（ハイフン）で構成されています。

チェックデジット
モジュラスチェック用の2桁の数字です。

チェックデジットの計算方法およびデータの変換規則を次に示します。

(a)　チェックデジットの計算方法

データを変換規則に従って数値に変換する。
データの変換規則については，「4.2.9(9)(b)　変換規則」を参照してください。数字およびハイフンを1文字，英字を2文字として数えます。有効なデータは20文字です。
有効データ長が19文字以下の場合には，不足分のデータとして制御コード（CC4）を仮定して計算します。
有効データ長が20文字を超える場合には，超過分は印刷されないので計算の対象外とします。

チェックデジットを算出する。
チェックデジットを算出する式を次に示します。
チェックデジット=19－（（データの変換値の和÷19）の余り）

データの変換値とチェックデジットの合計が19の倍数になっているか確認する。

(b)　変換規則

カスタマバーコードの変換規則を次に示します。

数字（0～9）の場合

データ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
変換する数値 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

英字（A～Z）の場合
英字を数値に変換する場合は，一度，制御コードと数値に変換します。

データ | A | B | C | D | E | F | G | H | I | J
制御コード※ | CC1 | CC1 | CC1 | CC1 | CC1 | CC1 | CC1 | CC1 | CC1 | CC1
変換する数値 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

データ | K | L | M | N | O | P | Q | R | S | T
制御コード※ | CC2 | CC2 | CC2 | CC2 | CC2 | CC2 | CC2 | CC2 | CC2 | CC2
変換する数値 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

データ | U | V | W | X | Y | Z
制御コード※ | CC3 | CC3 | CC3 | CC3 | CC3 | CC3
変換する数値 | 0 | 1 | 2 | 3 | 4 | 5

注※

制御コードおよび「－（ハイフン）」は，さらに次の数値に変換します。

制御コード | CC1 | CC2 | CC3 | CC4（不足データ） | －
数値 | 11 | 12 | 13 | 14 | 10

(c)　チェックデジットの計算例

チェックデジットの計算例を次に示します。

（例1）

データが15400233-16-4の場合

チェックデジットの算出式に当てはめると次のようになります。

　　147=19×7+14

　　チェックデジット=19－14=5

したがって，15400233-16-4のチェックデジットは5となります。

論理マップに指定する論理データを次のように組み立てます。

（例2）

データが22800023-620-2-9-102の場合

チェックデジットの算出式に当てはめると次のようになります。

　　79=19×4+3

　　チェックデジット=19－3=16

したがって，22800023-620-2-9-102のチェックデジットは16となります。

論理マップに指定する論理データを次のように組み立てます。

（例3）

データが22500011-4695-5-A-B1の場合

チェックデジットの算出式に当てはめると次のようになります。

　　102=19×5+7

　　チェックデジット=19－7=12

したがって，22500011-4695-5-A-B1のチェックデジットは12となります。

論理マップに指定する論理データを次のように組み立てます。

(10)　固定バーコードのエラーチェック

固定バーコードのダイアログを確定するとき，エラーチェックがされます。固定バーコードのダイアログで設定した内容にエラーがある場合は，次の表に示すメッセージが表示されます。

表4-8　固定バーコードのエラー一覧

バーコード種類
エラーケース
エラーメッセージ

共通
バーコード値に何も入力されていない。
バーコード値を指定していません

バーコードがレイアウト領域からはみ出している。

オブジェクト：

バーコードがレイアウト領域からはみ出しています

帳票属性：

固定バーコードがレイアウト領域からはみ出しています

JAN8
「バーコード値」の入力桁数が8以外である。
バーコード値は8桁で指定してください

「バーコード値」に0～9以外の入力がされている。
バーコード値は 0～9で指定してください

JAN13
「バーコード値」の入力桁数が13以外である。
バーコード値は13桁で指定してください

「バーコード値」に0～9以外の入力がされている。
バーコード値は 0～9で指定してください

CODE39
「バーコード値」の入力桁数が3～76以外である。
バーコード値に指定できる値は3桁～76桁の範囲です

「バーコード値」に以下の文字以外が入力されている。
　0～9　A～Z - . スペース
　$ / + % *
バーコード値は 0～9 A～Z - . スペース $ / + % * で指定してください

「バーコード値」の入力に
スタート／ストップコード（*）が付いていない。
バーコード値にスタート/ストップコードがありません

ITF(6)
「バーコード値」の入力桁数が6以外である。
バーコード値は6桁で指定してください

「バーコード値」に0～9以外の入力がされている。
バーコード値は 0～9で指定してください

ITF(14)
「バーコード値」の入力桁数が14以外である。
バーコード値は14桁で指定してください

「バーコード値」に0～9以外の入力がされている。
バーコード値は 0～9で指定してください

ITF(16)
「バーコード値」の入力桁数が16以外である。
バーコード値は16桁で指定してください

「バーコード値」に0～9以外の入力がされている。
バーコード値は 0～9で指定してください

NW7
「バーコード値」の入力桁数が3～99以外である。
バーコード値に指定できる値は3桁～99桁の範囲です

「バーコード値」に次の文字以外が入力されている。
　0～9 - $ : / . + A～D
バーコード値は 0～9 - $ : / . + A～D で指定してください

「バーコード値」の入力に
スタート／ストップコード（A～D）が付いていない。
バーコード値にスタート/ストップコードがありません

カスタマ
「バーコード値」の入力形式が「（7桁の0～9）+（13桁のA～Z）+2桁」の22桁になっていない。
バーコード値に指定した文字列は形式が不正です

(11)　印刷したバーコードをバーコードリーダで読み込ませるときの注意

バーコードをバーコードリーダで読み取るときには，次のことに注意してください。

XMAP3で印字するバーコードの大きさ（横幅）が，バーコードリーダで読み取りができる範囲に入っているかどうか確認してください。

印刷したバーコードをバーコードリーダで読み取る場合は，次に示すバーコードリーダをなるべく使用してください。また，バーコードリーダで読み取るときには，必ず事前にそのバーコードリーダが，読み取りたいバーコード種別を読み取れることを確認してください。
「日立製作所製 バーコードリーダ PC-KR1100」
「株式会社キーエンス社製 BL-200シリーズ」
「株式会社オリンパスシンボル社製 VS-4004シリーズ」

インクのにじみ，プリンタの印字品質劣化，およびバーコードリーダの読み取り精度によっては，印字したバーコードがバーコードリーダに認識されなかったり，不当なデータとして読み取られる場合があります。運用前には，印字および読み取りを確認し，システム運用に支障がないことを確認してから使用してください。

EAN-128バーコードの読み取りができない場合は，印字品質を改善するほかに，印字するバーの幅を調整して読み取り精度をあげることもできます※。EAN-128バーコード印字幅の調整については，マニュアル「XMAP3 開発・実行ガイド」の帳票に関する環境設定を参照してください。

注※

印刷モードが「GDI：ページプリンタ」または「PDFファイル出力：網掛け／グラフィック／書式用」の場合。

EAN-128バーコードの場合，バーコード中の制御コード「FNC1」※ は，読み取るバーコードリーダの仕様によっては不当な文字として認識される場合があります。運用前には，バーコードリーダの動作仕様を確認の上，使用してください。

注※

APが出力項目データ名の領域の後半にデータ有無コードを代入した場合にバーコードとして印刷される制御コード。データ有無コード代入時の動作の詳細については，「5.3.5　バーコードの論理マップ生成規則とマッピング規則」を参照してください。

バーコードを，PDFファイル出力したあとでプリンタに出力した場合，出力するプリンタドライバの解像度やビューア（Acrobat Readerなど）の設定によって，文字の大きさや文字の形状が変わることがあります。バーコードリーダでバーコードを認識させる場合は，運用前に問題がないことを確認してから使用してください。

(12)　EAN-128バーコードを印字するときの注意

EAN-128バーコードを印字するときには，次のことに注意してください。

EAN-128バーコードを印字するプリンタは，EAN-128バーコードの特性上，プリンタの解像度が300dpi（推奨は600dpi）以上のページプリンタである必要があります。このため，EAN-128バーコードを印字するときの印刷モードは，「GDI：ページプリンタ」，「PDLスルー：LIPS準拠ページプリンタ※」または「PDFファイル出力：網掛け／グラフィック／書式用」を使用してください。そのほかの印刷モードではEAN-128バーコードが正しく印字されません。

注※

LIPSII+の機能範囲で印字した場合，正しく印字されません。

FAXC/SPOOL連携でEAN-128バーコードを出力した場合，バーコードリーダでの読み取りは保証されません。

APが出力項目データ領域に正しい文字を代入した場合でも，EAN-128バーコードとして成立しない場合には印字が破棄される場合があります。詳細については，「5.3.5　バーコードの論理マップ生成規則とマッピング規則」を参照してください。

4.2.10　日付と時刻

出力日付フィールドおよび出力時刻フィールドは，日付や時刻を表すデータを表示するオブジェクトです。出力日付フィールドおよび出力時刻フィールドには，APから渡される可変のデータが出力されます。また，印刷時には日付や時刻の印刷形式（印刷書式）が選択できます。印刷対象にする単位（年／月／日，時／分／秒）なども指定できます。

また，和暦の場合，「1年」を「元年」と表示することもできます。元年表示の設定については，マニュアル「XMAP3 開発・実行ガイド」の帳票に関する環境設定を参照してください。

出力日付フィールドおよび出力時刻フィールドは，プレプリント帳票およびグラフィック帳票で使用できます。

＜この項の構成＞

(1)　表示形式

(2)　APでのデータと出力結果

(3)　出力日付フィールドおよび出力時刻フィールドの自由配置

(4)　フィールドの反復

(5)　表示属性の動的変更

(6)　文字色の設定

(1)　表示形式

日付／時刻の出力時の表示形式の例を次に示します。

ドローでの表示書式指定
実際の印刷形式
説明

1997／08／07
2002／03／31
デリミタ「／」
ゼロサプレス なし

1997．08．07
2002．03．31
デリミタ「．」
ゼロサプレス なし

1997／ 8／ 7
2002／ 3／ 31
デリミタ「／」
ゼロサプレス あり※¹

平成 9年 8月 7日
平成 14年 3月 31日
元号 「平成」
ゼロサプレス あり※¹

PM 9： 8： 7※²
PM 9： 8： 7
デリミタ「：」
ゼロサプレス あり※¹

注※1

ゼロサプレスは，日付，時刻の前にある0を削除し，空白で印刷します。

注※2

ドローで「PM:9:8:7」というパラメタを指定すると，APからの24時間表示をAMまたはPMを付けて印刷します。

(2)　APでのデータと出力結果

APでは，データはデリミタなしの形式で扱われます。これらのデータは，出力時に，表示書式に合わせて編集されます。

APでのデータ格納 | ドローでの表示書式指定 | 実際の印刷形式
20020331 | 1997－08－07 | 2002－03－31
4140331※ | 平成 9年 8月 7日 | 平成 14年 3月31日
101000 | 21：08：07 | 10：10：00

注※

和暦の場合，先頭の数字が元号に変換されます。先頭の数字と元号の関係を次に示します。それぞれに3種類の形式があります。

1……M／明／明治

2……T／大／大正

3……S／昭／昭和

4……H／平／平成

(3)　出力日付フィールドおよび出力時刻フィールドの自由配置

［表示］－［ます目配置］のチェックを外すことで，自由な位置に出力日付フィールドおよび出力時刻フィールドを作成できます。

(4)　フィールドの反復

一つのオブジェクトを縦方向または横方向に繰り返して定義できます。表形式で，同じ属性を並べるときなどに使用できます。反復を使用すると，同じ表示属性のオブジェクトを一つずつ配置するよりも効率良く定義できます。

反復の操作は，［Shift］キーを押しながらマウスをドラッグすることで，オブジェクトを縦方向に繰り返して定義できます。反復したオブジェクトのデータ項目は，配列（COBOLの場合OCCURS展開）となります。

(5)　表示属性の動的変更

制御項目に修飾名を設定することで，文字に網を掛けるなどの表示属性をAP実行時に変更できます。また，データ有無コードを設定すると標準の表示属性で表示されます。修飾名と属性については「4.2.5(5)　表示属性の動的変更」を参照してください。

(6)　文字色の設定

グラフィック帳票では，出力日付／時刻フィールドに配置した文字に色を設定できます。設定できる色は，黒，白，赤，緑，青，紫，空，黄です。

文字色の初期値は黒となっています。このため，文字色を黒以外に変更するには，変更するオブジェクトを選択した状態で，文字色ツールボックスから設定したい色を選択します。文字色ツールボックスを表示させるには，［属性］－［文字色］を選択するか，ツールバーの［文字色］ボタンを選択します。

なお，黒以外の文字色を設定した帳票は，PCに接続したプリンタからの印刷，またはPDFファイル出力で利用できます。

4.2.11　フレーム

表形式の帳票では，大見出しや小見出しに続けて，行単位（または列単位）に同一形式で，項目を繰り返し出力することがあります。フレーム機能では，表の一行を物理フレームという見えない枠で囲み，その枠の中にフィールドを配置します。このフレームを繰り返すことで，同一形式の項目（行または列）を繰り返し作成できます。

APも同じように，このフレーム単位で扱い，定義およびAPのプログラミングを容易にしています。

フレームは，けい線帳票，プレプリント帳票，網掛け帳票，およびグラフィック帳票で使用できます。

＜この項の構成＞

(1)　使用例

(2)　配置できるオブジェクト

(3)　フレームの操作

(4)　フレームの自由配置

(5)　APインタフェース

(1)　使用例

フレームは，行を繰り返して明細行を作成したり，領域を繰り返したりして，ラベルの印刷などで使用できます。

フレームを使用して，出力フィールドを配置した帳票の使用例を次に示します。

(2)　配置できるオブジェクト

フレームのフィールドに配置できるオブジェクトを次に示します。

オブジェクト
けい線帳票
プレプリント帳票
網掛け帳票
グラフィック帳票
書式
オーバレイ

出力フィールド
○
○
○
○
－

固定フィールド
○
－
○
○
－

出力日付／時刻フィールド
－
○
－
○
－

出力OCR
○
○
－
○
－

バーコード
出力
－
○
－
○
－

固定
－
－
－
○
－

連結出力
－
－
－
○
－

けい線
○※
－
○※
○
－

矩形
－
－
－
－
－

円／円弧
－
－
－
－
－

出力グラフィック
－
－
－
○
－

固定グラフィック
－
－
－
○
－

（凡例）

○：配置できる。

－：配置できない。

注※

斜めけい線は配置できません。

(3)　フレームの操作

フレームのハンドル（■）をドラッグしたり，行または列を選択して行の高さや幅を変更できます。

(a)　フレームの反復回数とサイズの変更

フレーム全体を選択し，表示されるハンドル（■）をドラッグします。

(b)　行の高さまたは列の幅の変更

フレームの先頭または最終以外の行（または列）をクリックし，行（または列）に表示されるハンドル（■）をドラッグします。フレーム内のすべての行の高さ（または列の幅）が変更されます。なお，拡大する場合は，あらかじめフレームの変更する方向の領域を空けておく必要があります。

(c)　フレームの繰り返し間隔の変更

フレームの先頭または最終以外の行（または列）をクリックし，選択した行（または列）をドラッグします。フレームの行（または列）が1行（または1列）おきに繰り返されます。

(d)　フレームへのオブジェクトの追加

1行目（または1列目）にオブジェクトを配置します。配置すると行（または列）方向にオブジェクトが繰り返されます。

(e)　フレーム内のオブジェクトの削除

1行目（または1列目）のオブジェクトを選択します。行（または列）のオブジェクトが選択状態になったら［削除］を選択します。

(f)　網掛けのフィールドを選択する

網掛けとオブジェクトのフィールドが重なっている場合，網掛けを選択したいとき，［Shift］キーを押しながらクリックすると，網掛けが選択できます。

(4)　フレームの自由配置

プレプリント帳票およびグラフィック帳票では，［表示］－［ます目配置］のチェックを外すことで，自由な位置にフレームを作成できます。

(5)　APインタフェース

APインタフェースは，フレームに配置される出力フィールドなどが集団項目になって，論理マップ上に展開されます。APからは，この集団項目に対してデータの代入，参照をします。

4.2.12　グラフィック

グラフィックは，グラフィック帳票および書式オーバレイで使用できます。

グラフィックには，ドローで定義する固定グラフィックと，ドローでは領域だけを配置し，データはAPから渡される出力グラフィックがあります。

＜この項の構成＞

(1)　固定グラフィック

(2)　出力グラフィック

(3)　固定グラフィックおよび出力グラフィックの自由配置

(4)　実行時の留意事項

(1)　固定グラフィック

帳票上に，固定グラフィックを貼り付けられます。固定グラフィックを使用するには，あらかじめWindows形式の固定グラフィックファイルを用意しておく必要があります。利用できるグラフィックデータは，ビットマップファイル（.bmp），メタファイル（.wmf），拡張メタファイル（.emf），またはJPEGファイル（.jpg，.jpeg）です。また，XMAP3が標準提供している固定グラフィックファイルを利用することもできます。なお，JPEGには，JFIF準拠ベースライン形式（基本DCT方式のJFIF01-01，およびJFIF01-02ファイル）だけ使用できます。グラフィックデータのサイズやデータ形式については，「付録D　帳票定義と書式定義の制限値」を参照してください。

固定グラフィックには，レイアウト領域に配置したあと，領域サイズを基準にしてサイズを変更できる印刷方法と，レイアウト領域に配置したままのサイズで固定する印刷方法があります。XMAP3の印刷領域はます目，ミリ，ドット単位でサイズを指定するのに対し，固定グラフィックはドット単位でサイズを変更する上，帳票の印刷精度（dpi）によって単位当たりのドット数が異なるため，印刷の際に何を優先するかで印刷方法を使い分けてください。

帳票でのビットマップ印刷は，解像度の違いから画面での表示と印刷時では，見かけ上の大きさが異なる場合があります。したがって，テスト印刷で印刷結果を確認し，ビットマップの大きさを調整してください。なお，XMAP3では，ビットマップデータは240dpi相当として処理します。

(a)　固定グラフィックを領域サイズに合わせて印刷する

異なる印刷精度（dpi）のプリンタ上で，帳票上の固定グラフィックサイズを同じにしたい場合に使用します。固定グラフィックの属性ダイアログで「領域に合わせて表示する」を指定しておくと，固定グラフィックをレイアウト領域に配置したときに，指定した領域サイズに合わせて印刷されます。ただし，この場合，読み込んだファイル中の固定グラフィックに比べて表示が不鮮明になることがあります。どのプリンタ上でも，見た目にあまり差がないような固定グラフィックを印刷するためには，領域サイズを次のように決めることをお勧めします。

帳票の定義前に，異なる印刷精度（dpi）のプリンタ上で，どちらの印刷精度（dpi）でも固定グラフィックが鮮明に読み込める領域サイズを決めます。

使用頻度の高い印刷精度（dpi）のプリンタに合わせて領域サイズを決めます。

サイズが小さいビットマップを大きい領域に表示すると，正常に表示されないことがあります。この場合，ビットマップ自体のサイズを大きくするか，表示領域のサイズを小さくしてください。

(b)　読み込んだままの固定グラフィックを印刷する

固定グラフィックを，読み込んだファイルと同じくらい鮮明に印刷したい場合は，固定グラフィックの属性ダイアログで「領域に合わせて表示する」を指定しません。この場合，固定グラフィックのサイズは，レイアウト領域上で変更できないので，領域よりも読み込んだ固定グラフィックのファイルが大きい場合，はみ出した部分はカットされます。

(c)　固定グラフィックの大きさとカラーの扱い

帳票上に配置する固定グラフィックのサイズと，カラーの扱いについては，「付録D　帳票定義と書式定義の制限値」を参照してください。

(2)　出力グラフィック

描画ソフトであらかじめ作成しておいたグラフィックファイルを，ファイルやクリップボードを経由してAP実行時に印刷する機能です。使用できるグラフィックの形式については，「付録D.2　グラフィックデータの使用条件」を参照してください。

グラフィックデータを帳票に印刷する命令は，AP側で指定します。XMAP3ではグラフィックデータを受け渡す領域を定義します。 APから印刷の命令が来ると，XMAP3は「グラフィックデータの渡し方」に定義したファイル名を入力して，グラフィックデータを帳票上に取り込んで印刷します。

(a)　印刷処理

グラフィックデータ出力の仕組みを次に示します。

(b)　出力時のAPインタフェース

イメージデータを表示する場合
イメージデータをスキャナやイメージOCRなどから入力し，ビットマップファイル（.bmp），メタファイル（.wmf），拡張メタファイル（.emf），またはJPEGファイル（.jpg，.jpeg）にしておきます。APからこのファイル名を論理マップに代入し，SEND要求をすると，XMAP3実行支援が指定されたファイルからデータを入力して出力します。APから直接イメージデータを論理マップに代入することはできません。グラフィックデータを格納しておくフォルダは，実行支援の動作をしているPCの「グラフィックフォルダ」です。グラフィックフォルダは表示・印刷セットアップで設定します。

グラフを印刷する場合
描画ソフトを使用してグラフを作成し，グラフィックデータとしてファイルまたはクリップボードに格納します。日立COBOLで提供するOLE2オートメーション機能を使用することでExcelなどのグラフ作成ツールを呼び出せます。APからこのファイル名を論理マップに代入し，SEND要求をすると，XMAP3実行支援が指定されたファイルからデータを入力して出力します。APから直接イメージデータを論理マップに代入することはできません。グラフィックデータを格納しておくフォルダは，実行支援の動作をしているPCの「グラフィックフォルダ」です。グラフィックフォルダは表示・印刷セットアップで設定します。

(3)　固定グラフィックおよび出力グラフィックの自由配置

［表示］－［ます目配置］のチェックを外すことで，自由な位置に固定グラフィックおよび出力グラフィックを作成できます。

(4)　実行時の留意事項

(a)　グラフの変更による再印刷

グラフを変更して再印刷するには，再度グラフ印刷アプリケーションを操作して，グラフィックデータを作成します。OLE2処理を終了している場合，APの開始から始める必要があります。ただし，OLE2処理はほかのAPを起動するなどの処理をするため，処理が遅くなることが考えられます。グラフを印刷する場合，変更することが考えられるときは，グラフィック作成ごとにグラフ印刷アプリケーションの開始や終了をするのではなく，グラフ印刷アプリケーションを起動しておくなどの配慮が必要です。

(b)　グラフィックファイルのフォーマット

XMAP3が扱えるグラフィックファイルフォーマットは，Windowsビットマップ形式（.bmp），Windowsメタファイル形式（.wmf，.emf），またはJPEGファイル形式（.jpg，.jpeg）があります。形式は，ファイル出力の場合はファイル拡張子，クリップボード出力の場合はクリップボード格納形式で判断します。

(c)　グラフィックファイルのサイズ

グラフィックデータのサイズの制限値は，印刷処理に必要なWindowsリソース（使用できるメモリ量など）による制限以外はありません。ただし，サイズが大きくなると，データ読み込みや展開などの印刷処理に時間がかかるため，100KB以内にしておくことをお勧めします。

(d)　領域のサイズ／大きさの制限

1帳票中の領域の数，または大きさの制限値は帳票サイズによる制限以外はありません。ただし，数やサイズが大きくなってくると，印刷処理に要する時間も大きくなるため，できる限り1個にすることをお勧めします。

クリップボードはOSが用意するものを使用するため，グラフィックデータは1度に1種類だけの保存・印刷になります。そのため，1帳票中に，複数のグラフィックデータを印刷する場合は，ファイルからの読み込みを併用することになります。

グラフィックファイルの格納場所は，表示・印刷セットアップで指定した特定のディレクトリ下1か所だけになります。ファイル数の制限値はOSの制限値になります。

グラフィックデータの印刷はファイル，またはクリップボード内のデータをそのまま印刷します。したがって，回転・縮小・拡大・減色などの操作は，ファイルなどに書き込むAPでオブジェクトのプロパティを操作するなどして，あらかじめ処理しておいてください。ただし，領域サイズがグラフィックデータサイズと異なる場合，領域サイズに合うようにグラフィックデータを拡大縮小する処理は，グラフィックの属性定義時のオプションとして指定できます。

プリンタに対しグラフィックデータを印刷する場合，グラフィックデータの持つdpi値とプリンタの持つdpi値は通常異なります。そのため，画面表示の大きさと印刷結果の大きさが異なることがあります。なお，XMAP3では，ビットマップデータは240dpi相当として処理します。

定義領域よりも大きなグラフィックデータを印刷しようとした場合，定義領域の左上を基準にして，はみ出した部分は切り捨てられて印刷されます。このような場合は，グラフィックの属性ダイアログで「領域に合わせて表示する」を指定するか，運用時に作成するグラフィックデータの大きさをそろえるなどで対処してください。

(e)　グラフィックデータの印刷

カラーのグラフィックデータをモノクロのプリンタで印刷した場合，プリンタドライバの設定によっては意図した結果で印刷されないことがあります。グラフィックデータは，モノクロで作成することをお勧めします。

グラフィックデータは一般的にデータ量が大きく，そのサイズや個数が多くなるにつれ，処理に要する時間も比例して大きくなります。印刷に要する時間を短縮するためには，1帳票に印刷するグラフィックデータは1個にしたり，大きさを小さくしたりするなどして処理時間を軽減してください。

Windowsのビットマップ形式のカラーグラフィックデータを印刷する場合には，次のような設定をしたXMAP3印刷サービスを利用することをお勧めします。

「印刷モード」に「GDIページプリンタ」を設定する。

「グラフィックデータのモノクロ化」に「プリンタドライバにまかせる」を設定する。

これ以外の設定をした場合，XMAP3印刷サービスで印刷できるWindowsのビットマップ形式のカラーグラフィックデータの場合，使用できるグラフィックデータの色に制限があります。使用できる色の範囲については，「付録D.2　グラフィックデータの使用条件」を参照してください。範囲外のカラーグラフィックを使用した場合は破棄されます。

固定／出力グラフィックは，Windowsクライアント，およびPCスタンドアロン印刷だけできます。WSサーバ印刷はできません。

(f)　クリップボードの利用

クリップボードへの入出力は，ファイルへの入出力よりも短い時間で処理できます。印刷するグラフィックデータは1個にして，クリップボード経由でXMAP3に引き渡すなどして処理時間を軽減してください。また，ファイルを使用する場合は，RAMディスクに割り当てると印刷性能を確保できる場合があります。

クリップボードはシステムに一つだけです。そのため，クリップボードを使用する複数のプログラムを同時に動作させると，意図したもの以外のグラフィックが印刷されることがあります。画面表示プログラムと帳票印刷プログラムを同時に実行したときも同じことが考えられますので，そのような運用をする場合には，ファイルからの読み込みで対処してください。

表示している画面データを［PrintScreen］キーを使用してクリップボードに貼り付けて印刷する場合，グラフィックデータの色はディスプレイドライバに依存して印刷されます。

(g)　カラーデータの扱い

印刷モードをGDIにしたとき，カラーのグラフィックデータを印刷できます。しかし，印刷した場合，ハードウェアに依存した色で印刷されるため，意図したとおりの印刷結果にならないことがあります。したがって，カラーのグラフィックデータは，ユーザが印刷したい内容かをあらかじめ確認し，グラフィックデータとプリントドライバの色を調整してから使用してください。

また，カラーのグラフィックデータをモノクロのプリンタに印刷したいときは，色データのモノクロ変更によって，印刷結果は保証されません。印刷する場合のグラフィックデータの組み合わせについては，「付録D.2　グラフィックデータの使用条件」を参照してください。

(h)　出力グラフ印刷時のイメージファイルの所在

イメージファイルは，印刷するPCから参照できる場所に格納する必要があります。C/Sシステムの場合には，クライアント側にイメージファイルを格納してください。また，クリップボードはサーバ側にあるため，C/Sシステムでは，グラフの印刷ができません。

4.3　部品の利用

あらかじめ登録しておいた部品をレイアウト画面上に配置するときの手順を次に示します。

ドローのメニューバーの［編集］－［部品貼り付け］を選ぶ。
部品貼り付けダイアログが表示されます。

使用する部品名称を選ぶ。
部品がレイアウト画面の左上に貼り付けられますので，配置したい位置に移動してください。

なお，ユーザが貼り付けた部品と，すでに定義されているオブジェクトとの関係は次のようになります。

データ名
貼り付けた部品と既存のオブジェクトとでデータ名が重複している場合，部品で使われているデータ名がXMAP3の命名規則に従って変更されます。データ名が重複していない場合は，部品のデータ名がそのまま使われます。

言語種別が異なる場合
部品の中に，既存のオブジェクトの言語種別では使用できない文字（ハイフンとアンダーラインは除く）が指定されている場合，XMAP3の命名規則に従って変更されます。

マップ名の長さが異なる場合
マップ名の長さが6桁で設定されている場合，データ名として指定できる文字数は22文字までですが，マップ名の長さが7桁で設定されている場合は，21文字までです。このため，22文字のデータ名を，マップ名の長さが7桁で設定されているレイアウトに貼り付けると，XMAP3の命名規則に従って変更されます。

通知コード
通知コードの重複はチェックされません。そのため，部品を貼り付けたあと，必要に応じてダイアログを開き，変更する必要があります。

4.4　データ名の編集

ドローでオブジェクトをレイアウトし，そのままマップを生成すると，XMAP3が提供している標準のデータ名が使われます。XMAP3が提供しているデータ名は，「接頭語－オブジェクトごとの名称nnnn－接尾語」で構成されています。そのため，オブジェクトが同じである場合には，オブジェクトの定義順に付けられる4桁の数字（nnnn）の違いで判別しなくてはなりません。

XMAP3では，ドローのデータ名編集機能を使用して，レイアウト画面上に定義しているすべてのオブジェクト※のデータ名を表示し，必要に応じて編集できます。

注※

予約フィールドは表示されません。

＜この節の構成＞

4.4.1　データ名編集ダイアログの機能

4.4.2　データ名編集ダイアログでの操作と注意事項

4.4.1　データ名編集ダイアログの機能

データ名編集ダイアログには，論理マップに展開されるデータ名および生成元のオブジェクトでの定義内容の一覧が表示されます。このダイアログ上でデータ名を編集したり，論理マップ生成順を指定したりできます。

＜この項の構成＞

(1)　データ名編集ダイアログの説明

(1)　データ名編集ダイアログの説明

データ名編集ダイアログの表示内容およびボタンについて説明します。

［検索と置換...］
検索と置換ダイアログを表示します。

［変更個所へ］
カーソルをデータ名が編集された項目に移動し選択します。

［先頭へ］
カーソルを先頭の項目に移動し選択します。

［最後へ］
カーソルを最後の項目に移動し選択します。

［位置順にソート］
論理マップ生成時のデータ名の展開順をレイアウト上の位置順で表示します。
初期表示は，ドローセットアップで設定した値です。データ名編集ダイアログで変更すると，データ名はダイアログでの指定に従って並べ替えられます。

n／m項目
「選択されている項目の番号／項目の総数」を表示します。

データ名一覧
論理マップに展開するデータ名とデータの位置，種類などが表示されます。

C/L
C：チェックマークを表示します。
―：書き込み禁止を示します。
＊：データ名が変更されていることを示します。
L：論理マップ展開レベル（論理マップに展開されたときのデータ項目のレベル）です。

行：データ名に対応するオブジェクトの位置（行）を示します。

列：データ名に対応するオブジェクトの位置（列）を示します。

OBJ：データ名に対応するオブジェクトの種類を示します。

区分：データ名に対応するオブジェクトの細分類を示します。

使用目的：データ名に対応するオブジェクトの使用目的を示します。

データ名：接頭語および接尾語を除いたデータ名を示します。

コメント：ドキュメント出力用のコメントを示します。

移動元・移動先
項目を移動するときの，移動元・移動先の項目番号を表示します。

データ名
データ名一覧で選択したデータ名を表示します。データ名はここで変更します。

コメント
データ名一覧で選択したデータ名にコメントがある場合，そのコメントを表示します。コメントはここで変更します。

4.4.2　データ名編集ダイアログでの操作と注意事項

データ名編集ダイアログでは，データ名の編集，ソート，検索および置換ができます。

＜この項の構成＞

(1)　データ名の順序をソートする

(2)　データ名とコメントの編集

(3)　データ名の検索と置換

(4)　ほかの画面からのデータ名のコピー

(1)　データ名の順序をソートする

レイアウト画面でのオブジェクト位置順をそのまま反映する場合は，［位置順にソート］を指定しておきます。ユーザが独自にソートする場合は，移動させるオブジェクトの上で，マウスの左ボタンをクリックし，そのまま移動させたい位置にドラッグします。

ソート時の注意

［位置順にソート］ボタンをクリックすると，データ名は位置順になります。その後，任意の順序に並べ替えることもできます。

移動元と移動先の論理マップ展開レベルが同じならば，移動できます。

1回の操作で移動できるデータ名は一つです。ただし，データ名に対応するオブジェクトが下位項目を持つ場合（フレームでの反復や，下位項目を指定した場合），下位項目も一緒に移動します。

移動先が移動元の上位項目である場合，または下位項目である場合は，移動できません。

下位項目同士のソートはできません。

(2)　データ名とコメントの編集

データ名一覧から，編集したいデータ名を選ぶと，データ名とコメントの欄に選んだデータ名とコメントが表示されます。編集したいデータ名またはコメントを入力すると，データ名一覧に編集したデータ名またはコメントが反映されます。

データ名とコメント変更時の注意

データ名の文字数は，接頭語（マップ名）を含めて半角で29文字以内，全角で14文字以内で指定します。
ドローセットアップの「マップ名の長さ」の設定を「6文字」にした場合，半角で22文字以内，全角では11文字以内で指定します。
ドローセットアップの「マップ名の長さ」の設定を「7文字」にした場合，半角で21文字以内，全角では10文字以内で指定します。

データ名の文字種は，COBOLの場合は，「A～Z」「0～9」「-（ハイフン）」「大文字の半角かたかな」「全角（混在）」を使用できます。
Cの場合は，「A～Z」「a～z」「0～9」「_（アンダーバー）」を使用できます。

再定義名は半角で30文字まで入力できます。

コメントは，半角で40文字，全角で20文字まで入力できます。

コメントを記述できないオブジェクトの場合（各オブジェクトのダイアログでコメントの入力できないもの）は，コメントの欄は不活性になります。

(3)　データ名の検索と置換

データ名を検索または置換する場合は，［検索と置換］ボタンを選んで，検索と置換ダイアログを表示します。

データ名の検索時および置換時の注意

検索するデータ名は最低1文字，指定してください。ただし，メタキャラクタとしての「＊」は使用できません。

置換後のデータ名の長さが上限を超えた場合，上限値以降の文字列は切り捨てられます。

(4)　ほかの画面からのデータ名のコピー

データ名編集ダイアログに表示されているデータ名を，あらかじめ作成したデータ名辞書，Excelの表，またはテキストファイルから読み込んだデータ名で変換できます。

データ名辞書，Excelまたはテキストファイル上で，変換に使用するデータ名にフォーカスを位置づけ，［Ctrl］＋［C］キーでクリップボードにコピーします。

データ名編集ダイアログを開いて，変更したいデータ名のフィールドを選びます。フィールドが選ばれ，データ名の項目欄にフォーカスが移ります。

フォーカスが位置づけられたデータ名の欄に［Ctrl］＋［V］キーで，クリップボードにコピーしておいたデータ名を貼り付けます。

4.5　用紙サイズ変更時の設計

＜この節の構成＞

4.5.1　連続紙からカット紙への移行

4.5.2　カット紙間の移行

4.5.1　連続紙からカット紙への移行

279.4mm×381.0mm（11インチ×15インチ）の連続紙からカット紙へ移行する場合は，用紙サイズを次の表に示す値を参考にして変更してください。

表4-9　連続紙からカット紙への移行

移行前
A3横
A4横

6LPI/10CPI
66行×140列
6LPI×10CPI
66行×136列
8LPI×12CPI
66行×161列

8LPI/10CPI
88行×140列
8LPI×10CPI
88行×140列
移行できない
（再設計する）

4.5.2　カット紙間の移行

B4カット紙からA4カット紙へ移行する場合は，用紙サイズを次の表に示す値を参考にして変更してください。

表4-10　カット紙間の移行

移行前
A4横
A4縦

B4横
6LPI/10CPI（57×137）
6LPI/12CPI（57×165）
6LPI/15CPI（57×206）
8LPI/12CPI（61×133）
8LPI/15CPI（61×166）
8LPI/7P0I（61×222）
移行できない
（再設計します）

8LPI/10CPI（76×137）
8LPI/10CPI（76×165）
8LPI/10CPI（76×206）
移行できない
（再設計します）
移行できない
（再設計します）

B4縦
6LPI/10CPI（82×95）
6LPI/12CPI（82×114）
6LPI/15CPI（82×143）
移行できない
（再設計します）
8LPI/12CPI（88×92）
8LPI/15CPI（88×115）
8LPI/15CPI（88×153）

8LPI/10CPI（110×95）
8LPI/10CPI（110×114）
8LPI/10CPI（110×143）
移行できない
（再設計します）
移行できない
（再設計します）

注

（ ）内の式は行数×列数を示します。

4.6　オブジェクト同士の重なり

オブジェクトが重なった場合の印刷結果を次に示します。

＜この節の構成＞

4.6.1　定義対象と重なり印刷の関係

4.6.2　オブジェクト同士が重なったときの印刷

4.6.1　定義対象と重なり印刷の関係

定義対象によって重なったときの印刷結果が変わります。

表4-11　定義対象と重なり印刷の関係

定義対象オブジェクト | けい線帳票 | プレプリント帳票 | 網掛け帳票 | グラフィック帳票 | 書式オーバレイ
文字同士 | × | ○ | × | ○ | ○
けい線同士 | ○ | － | ○ | ○ | ○
網掛けとそれ以外 | － | － | × | ○ | ○
文字とそれ以外 | × | ○ | ×※ | ○ | ○

（凡例）

○：定義できる。

×：定義できない。

－：該当しない。

注※

網掛けと文字の重なりだけできます。

＜この項の構成＞

(1)　PDFファイル出力時の注意事項

(1)　PDFファイル出力時の注意事項

PDFファイルに対して帳票や書式オーバレイを印刷する場合，定義するオブジェクトの重なりについて，次のことに注意してください。

グラフィックデータと文字以外のオブジェクトは重ねないでください
重なった個所に配置されたオブジェクトが消える場合があります。

網掛け同士を重ねないでください
重ねる網掛けの種類によっては，重なった個所の網掛けの描画結果が不定となり，下部分になった網掛けが消えることがあります。

バーコードにほかのオブジェクトを重ねないでください
重なった個所に配置されたオブジェクトが消える場合があります。

4.6.2　オブジェクト同士が重なったときの印刷

＜この項の構成＞

(1)　文字同士が重なった場合

(2)　けい線同士が重なった場合

(3)　網掛けとそれ以外のオブジェクトが重なった場合

(4)　文字とそれ以外のオブジェクトが重なった場合

(1)　文字同士が重なった場合

文字同士が重なった場合，次のように印刷されます。

なお，文字色が異なる文字同士の重なりは，重なりの上下関係が不定となります。このため，文字色が異なる文字同士を重ねる場合は，同じ文字色にすることをお勧めします。

(2)　けい線同士が重なった場合

けい線同士が重なった場合，次のように印刷されます。

(3)　網掛けとそれ以外のオブジェクトが重なった場合

網掛けとそれ以外のオブジェクトが重なった場合，次のように印刷されます。

(4)　文字とそれ以外のオブジェクトが重なった場合

文字とそれ以外のオブジェクトが重なった場合，文字が上に印刷されます。

4.7　カーソルキーでのオブジェクトの移動

プレプリント帳票，グラフィック帳票，および書式オーバレイでは，カーソルキーを使用したオブジェクトの移動ができます。また，カーソルキーでは，グループ化したオブジェクトの移動や，フレームの中間枠を選択して，繰り返し間隔を変更する操作もできます。

ただし，下敷きなど，オブジェクトが帳票上にない場合や，フレームとグループ化したオブジェクトと重なっている場合は，オブジェクトの移動はできません。

カーソルキーでのオブジェクトの移動は，ます目配置の場合でも，自由配置の場合でもできます。

カーソルキーでのオブジェクトの移動量と，移動操作での注意点を次に示します。

オブジェクトの移動量
オブジェクトの移動量は，ます目配置の場合と自由配置の場合とで異なります。また，オブジェクトはカーソルキーを押し続けている間移動します。

ます目配置の場合：

1行または1桁移動します。

自由配置の場合：

レイアウトの表示上で1ドット移動します。なお，論理的に1ドット移動するためには，レイアウトを最大表示にした状態から1段階縮小した状態で操作する必要があります。

操作での注意点
オブジェクトの移動時の注意点を次に示します。

フレーム上に配置できるオブジェクトを移動する場合，オブジェクトの位置によっては，フレーム上に繰り返されたり，繰り返しがなくなったりすることがあります。

オブジェクトを選択した状態で拡大表示をした場合，オブジェクトが画面の外に出て見えにくくなることがありますが，この状態でもオブジェクトは移動できます。ただし，画面内に表示するには移動量が多くなります。

カーソルキーとそのほかのキーを同時に押した場合，カーソルキーだけが有効となります。ただし，カーソルキーと同時に押して問題ないキーは，［Ctrl］キーおよび［Shift］キーだけです。そのほかのキーについては動作が不定となりますので，オブジェクトを移動するときには，カーソルキー以外のキーを押さないようにしてください。

4.8　テスト印刷

帳票設計が終了したら，実行時の印刷状態を確認するためにテスト印刷をします。テスト印刷をするときは，［ツール］－［テスト印刷］を選ぶか，ツールバーの［テスト印刷］ボタンを選びます。また，印刷プレビュー機能を使用して，画面上で印刷状態を確認することもできます。印刷プレビューをするときは，［ツール］－［印刷プレビュー］を選ぶか，ツールバーの［印刷プレビュー］ボタンを選びます。

＜この節の構成＞

4.8.1　印刷先の保存

4.8.2　ドローの操作

4.8.3　印刷時の注意事項

4.8.1　印刷先の保存

印刷先の設定ダイアログで，テスト印刷の印刷先を設定すると，ドローを再起動させたとき，その設定情報を継承できます。なお，設定情報は定義対象ごとに継承されます。なお，ここで設定した仮想端末名は，テスト支援の仮想端末名には反映されません。

4.8.2　ドローの操作

＜この項の構成＞

(1)　設定方法

(1)　設定方法

テスト印刷の印刷先の設定方法を次に示します。

帳票レイアウトで［ツール］－［印刷先の設定］を選択する。

印刷先の設定ダイアログの仮想端末名の候補から，印刷したいプリンタ用の仮想端末名を選択する。
候補にない場合は，キー入力してください。
また，プリンタは，あらかじめ，表示・印刷セットアップダイアログのプリンタタブで設定してください。なお，PDFファイル出力の印刷モードを設定した仮想端末名を選択することで，PDFファイルへも出力できます。

テスト印刷終了後，ドローを終了する。

注

次の場合にも印刷先の設定は継承されます。

ドローを再起動した場合

このバージョンのXMAP3を上書きインストールをした場合

このバージョンのXMAP3をアンインストールし，再度，インストールした場合

4.8.3　印刷時の注意事項

＜この項の構成＞

(1)　シリアルインパクトプリンタ用の帳票をページプリンタで出力する

(2)　ページプリンタ用の帳票をシリアルインパクトプリンタで出力する

(3)　カラー文字を使用している帳票を出力する

(4)　バーコードを使用している帳票を出力する

(5)　PDFファイルへ出力する

(1)　シリアルインパクトプリンタ用の帳票をページプリンタで出力する

ドローでシリアルインパクトプリンタ用に定義した帳票を，XMAP3表示・印刷セットアップの「印刷モード」にページプリンタの設定をしたプリンタで印刷する場合，次の点に注意が必要です。

印刷実行時には，帳票に定義された描画物を240dpi換算で計算してプリンタに印刷するため，帳票定義で描画物を設定した位置と実際の印刷結果での描画物の位置がずれるおそれがあります。運用前には，事前にテスト印刷をして，帳票定義で定義位置を調整しておく必要があります。

(2)　ページプリンタ用の帳票をシリアルインパクトプリンタで出力する

ドローでページプリンタ用に定義した帳票を，XMAP3表示・印刷セットアップの「印刷モード」にシリアルインパクトプリンタを設定したプリンタで印刷する場合，次の点に注意が必要です。

印刷実行時には，帳票に定義された描画物を180dpi換算で計算してプリンタに印刷するため，帳票定義で描画物を設定した位置と実際の印刷結果での描画物の位置がずれるおそれがあります。運用前には事前にテスト印刷をして帳票定義で位置を調整しておく必要があります。

この組み合わせで印刷した場合，シリアルインパクトプリンタの描画能力上，帳票で定義された描画物に破棄される項目があります。そのため，運用前にテスト印刷をして，破棄される項目を確認し，破棄される項目を使用しないように修正しておく必要があります。

(3)　カラー文字を使用している帳票を出力する

カラー文字を使用している帳票を印刷するときの注意事項を次に示します。

使用するプリンタの機種やプリンタドライバの仕様によっては，期待どおりの印字色が得られない場合があります。このため，まずテスト印刷をして，運用上問題がないことを確認してください。また，OCRにカラー文字を設定している場合は，OCRリーダを使用して，あらかじめ十分な読み込みテストを実施することをお勧めします。

XMAP3 04-02以降でカラー文字（文字色：赤，緑，黄，青，紫，および空）を定義した帳票を，モノクロプリンタに対して「GDI：ページプリンタ」の印刷モードで印字する場合，プリンタドライバの仕様によっては正しく印字されないことがあります。
なお，XMAP3 04-01以前のバージョンで作成した帳票は，文字色は常に黒色で印字されます。

文字色に白色を設定している帳票を印刷する場合，プリンタに白色インクが搭載されているかどうかによって印字結果が異なります。白色インクを搭載したプリンタと搭載していないプリンタでの，白色文字の印字結果を次の表に示します。

表4-12　白色文字の印字結果

プリンタ | 白色文字（重なりなし） | 白色文字と網掛け（重なりあり）
白色インクの搭載あり | ○ | ○
白色インクの搭載なし | × | ×※

（凡例）

○：白色で印字される。

×：印字されない。

注※

印字されませんが，プリンタドライバの仕様によっては，文字の形が抜かれた状態で網掛けが印刷されます。

(4)　バーコードを使用している帳票を出力する

定義した出力バーコード（可変長）および連結出力バーコードをテスト印刷する場合，定義した長さで印刷されないときがあります。

(5)　PDFファイルへ出力する

テスト印刷で指定する仮想端末名の印刷モードが，PDFファイル出力の場合，表示・印刷セットアップで指定したPDFファイル出力先へ出力されます。このとき，PDFファイルはマップ単位で出力されます。複数のマップを一つのPDFファイルにまとめることはできません。

5.　論理マップ生成規則とマッピング規則

この章では，帳票を保存して生成される論理マップとマッピング規則の関係について説明します。

＜この章の構成＞

5.1　論理マップとは

5.2　固定部の論理マップ生成規則とマッピング規則

5.3　可変部の論理マップ生成規則とマッピング規則

5.1　論理マップとは

論理マップとは，APとプリンタとの間で受け渡されるデータを格納する領域のことです。COBOLの登録集原文またはC言語のヘッダファイルとして記述されています。この節では，論理マップについて説明します。

＜この節の構成＞

5.1.1　論理マップの構成

5.1.2　論理マップ生成規則で使用する用語

5.1.3　生成される標準のデータ名

5.1.4　ターゲットでの論理マップの違い

5.1.5　出力テキスト（フィールド）の使用目的とデータ型

5.1.6　ドローセットアップとの関係

5.1.1　論理マップの構成

論理マップには，出力論理マップがあります。出力論理マップは，固定部と可変部で構成されていて，APからプリンタに出力するデータを格納します。

また，ドローセットアップの論理マップ属性ダイアログで「定数部への論理マップ長出力」か「定数部の別ファイル出力」を指定したときだけ，定数部が生成されます。「定数部の別ファイル出力」を選んだときは，定数部だけが別ファイルに出力されます。

論理マップの構成を次の図に示します。

図5-1　論理マップの構成

論理マップ固定部
論理マップ固定部は，論理マップの先頭に必ず生成される領域です。この領域には，論理マップ全体の長さである論理マップ長を格納します。

論理マップ可変部
論理マップ可変部は，実際にAPとプリンタとの間で受け渡されるデータを格納する領域です。この領域に格納されるデータには，次に示す論理データと制御データがあります。

論理データ
APとプリンタ上の可変項目やメニューなどの各項目（オブジェクト）との間で実際に受け渡されるデータです。

制御データ
実際に表示される文字以外のデータです。例えば，印刷部数を指定するデータなどです。

定数部
定数部は，APを作成するときに制御項目に代入，または参照するカーソル定数やフォーカス定数などをテーブル化したものです。

5.1.2　論理マップ生成規則で使用する用語

ここでは，論理マップ生成規則で使用している用語と定義方法について説明します。用語と定義方法の対応を次の表に示します。

表5-1　論理マップ生成規則で使用する用語と定義方法の対応

用語
説明
定義方法

再定義名
定義済みのマップを別定義として使用するときの名称。
帳票属性ダイアログの［再定義名...］ボタンで表示される論理マップの再定義名ダイアログで指定します。

修飾名
APからオブジェクトの出力属性を変更するときに指定する名称。
修飾名とそれに対応する属性は，ドローセットアップの表示属性の動的変更ダイアログで指定します。

埋字
出力テキスト（フィールド）の場合
APから出力要求されたデータが，ドローで定義した項目の長さより短いときに埋められるデータ。
初期値は，ドローセットアップの使用目的別データ型ダイアログで指定します。また，各項目のダイアログでも指定できます。

桁寄せ
フィールドに表示されるデータを右または左のどちらかに寄せるための項目。

5.1.3　生成される標準のデータ名

XMAP3が生成する論理マップは次のようになります。

マップ名＋O：出力データ代入用

XMAP3が標準に生成するデータ名の一覧を次の表に示します。

表5-2　生成される標準のデータ名一覧

対象
オブジェクト
適用物
データ名

入力系
データ名
出力系
データ名

固定フィールド
固定項目
－
－

出力フィールド
出力項目
－
マップ名-FIELDnnnn-O

制御項目
－
マップ名-FIELDnnnn-A

コピー枚数
－
－
マップ名-COPIESO

印刷ドキュメント名
出力項目
－
マップ名-DOCNAMEO

けい線
制御項目
－
マップ名-FIELDnnnn-A

フレーム
－
－
マップ名-FRAMEnnnn-O

バーコード
出力バーコード項目
－
マップ名-BARCODEnnnn-O
マップ名-BARCODEnnnn-nnn-O※

OCR
OCR
－
マップ名-FIELDnnnn-O

グラフィック
出力グラフィック
－
マップ名-GRAPHnnnn-O

（凡例）

－：該当しない。

注

この表のデータ名は，COBOLの場合です。C言語の場合は，－（ハイフン）が＿（アンダーバー）になります。

注※

連結出力バーコードの場合のデータ名です。

5.1.4　ターゲットでの論理マップの違い

XMAP3では，ドローセットアップのターゲットの指定によって，生成する論理マップが異なります。

ターゲットに「Windows用の画面・帳票開発」を選択している場合には，ドローセットアップの「運用管理者用の設定」で，生成する論理マップの展開形式をリトルエンディアン用，またはビッグエンディアン用のどちらかに設定できます。

ターゲットに「Windows用の画面・帳票開発」以外を選択している場合には，それぞれのターゲットに応じたエンディアンの論理マップが生成されます。

5.1.5　出力テキスト（フィールド）の使用目的とデータ型

出力テキスト（フィールド）の使用目的には，数字，英数，日本語があります。

また，使用目的ごとに定義できるデータ型は，次の表のようになります。データ型とは，COBOLのピクチャ句で指定するデータ型です。

表5-3　定義できるデータ型

使用目的 | データ型
数字 | 文字（XX），数字編集
英数 | 文字（XX）
日本語 | 文字（XX），漢字（NN），漢字（XX）

この使用目的とデータ型の標準値は，ドローセットアップの使用目的別データ型で変更することもできます。ただし，上記組み合わせ以外を指定することはできません。

5.1.6　ドローセットアップとの関係

ドローセットアップは，帳票定義に関する標準設定値を変更するためのものです。ここで設定した内容が生成されるマップの形式に反映されるため，必ず帳票定義を始める前に済ませておく必要があります。

定義したあとに変更する場合は，必ずユティリティの「セットアップ情報反映」を使用してください。

なお，ドローセットアップの詳細については，マニュアル「XMAP3 開発・実行ガイド」を参照してください。

5.2　固定部の論理マップ生成規則とマッピング規則

ここでは，固定部の出力に関する論理マップ生成規則とマッピング規則について説明します。固定部の論理マップ生成規則とマッピング規則は，再定義名の有無によって内容が変わります。

固定部のマップに関する定義
固定部のマップに関係する定義は，再定義名の指定によって変わってきます。
再定義名は，帳票属性ダイアログの［再定義名...］ボタンで表示される出力論理マップの再定義名ダイアログで指定します。

＜この節の構成＞

5.2.1　固定部の出力論理マップ生成規則とマッピング規則

5.2.1　固定部の出力論理マップ生成規則とマッピング規則

固定部の出力論理マップ生成規則とマッピング規則を次に示します。

＜この項の構成＞

(1)　固定部の出力論理マップ生成規則

(2)　固定部のマッピング規則

(1)　固定部の出力論理マップ生成規則

(a)　再定義名を指定した場合

《COBOL》

●論理マップ可変部の集団項目化を指定した場合

Windowsリトルエンディアン用，Linux用

Windowsビッグエンディアン用，AIX／HP-UX／Solaris用

●論理マップ可変部の集団項目化を指定していない場合

Windowsリトルエンディアン用，Linux用

Windowsビッグエンディアン用，AIX／HP-UX／Solaris用

《C言語》

C言語の場合，集団項目化の指定は無視されます。

Windowsリトルエンディアン用，AIX／HP-UX／Linux／Solaris用

注
　　shortの大きさは，2バイトとして展開されます。

Windowsビッグエンディアン用

(b)　再定義名を指定しない場合

《COBOL》

●論理マップ可変部の集団項目化を指定した場合

Windowsリトルエンディアン用，Linux用

Windowsビッグエンディアン用，AIX／HP-UX／Solaris用
＜論理マップ長が10,000バイト未満のとき＞

＜論理マップ長が10,000バイト以上のとき＞

●論理マップ可変部の集団項目化を指定していない場合

Windowsリトルエンディアン用，Linux用

Windowsビッグエンディアン用，AIX／HP-UX／Solaris用
＜論理マップ長が10,000バイト未満のとき＞

＜論理マップ長が10,000バイト以上のとき＞

《C言語》

C言語の場合，集団項目化の指定は無視されます。

Windowsリトルエンディアン用，AIX／HP-UX／Linux／Solaris用

注
　　shortの大きさは，2バイトとして展開されます。

Windowsビッグエンディアン用

(2)　固定部のマッピング規則

(a)　再定義名を指定した場合

《論理マップ長部（マップ名Lで生成される項目）に代入した内容とその結果》

論理マップ長部に代入した内容 | 結果
展開した論理マップより小さい値 | 代入された論理マップ長が示す範囲のデータを使って画面・帳票出力のデータとして使用される。範囲外の部分にはデータ有無コードが代入されているものとして扱う。
展開した論理マップ長と等しい値 | 論理マップ内のデータを，画面・帳票出力のデータとして使用する。
展開した論理マップより大きい値 | マップ生成機能が展開した論理マップの範囲までのデータを，画面・帳票出力のデータとして使用する。それ以外の部分は無視される。

(b)　再定義名を指定しない場合

論理マップ長部（マップ名Lで生成される項目）に代入した内容とその結果は，再定義名を指定した場合と同様になります。

5.3　可変部の論理マップ生成規則とマッピング規則

ここでは，帳票の論理マップ生成規則とマッピング規則について説明します。

なお，論理項目に指定する文字データとして，LOW(00)₁₆およびデータ有無コード(1F)₁₆を除く制御コード（JIS：(00)₁₆～(1F)₁₆，(7F)₁₆）は指定できません。

＜この節の構成＞

5.3.1　可変項目の出力論理マップ生成規則とマッピング規則

5.3.2　コピー枚数の論理マップ生成規則

5.3.3　印刷ドキュメント名の論理マップ生成規則とマッピング規則

5.3.4　埋字と桁寄せに関するマッピング規則（出力フィールド）

5.3.5　バーコードの論理マップ生成規則とマッピング規則

5.3.6　OCRの出力論理マップ生成規則とマッピング規則

5.3.7　出力グラフィックの論理マップ生成規則とマッピング規則

5.3.8　制御項目の論理マップ生成規則とマッピング規則

5.3.9　日付／時刻の論理マップ生成規則とマッピング規則

5.3.10　予約フィールドのマッピング規則

5.3.1　可変項目の出力論理マップ生成規則とマッピング規則

ここでは，可変部の出力に関する論理マップ生成規則とマッピング規則について説明します。なお，この項では，COBOLの数字項目の記述を次のようにしています。

PIC 9（長さ）と表記している項目
実際に生成される論理マップは，PIC 99999のように9が長さ分生成されます。

＜この項の構成＞

(1)　可変項目の定義

(2)　出力項目の論理マップ生成規則

(3)　出力項目のマッピング規則

(1)　可変項目の定義

出力項目
出力フィールドに対して生成されます。

出力項目のデータ名：マップ名-FIELDnnnn-O
データ名は，出力フィールドダイアログのAPが渡す項目の「データ名」で変更できます。

繰り返し回数：縦，または横の反復回数

長さ：論理項目の長さ。指定がないときはフィールドのデータ長

データ型：フィールドのデータ型で設定

使用目的：フィールドの使用目的で設定
使用目的には，次の3項目があります。

使用目的 | 使用できる項目
数字 | 文字，数字編集
日本語 | 文字，漢字
英数 | 文字

(2)　出力項目の論理マップ生成規則

出力項目の論理マップ生成規則について説明します。

(a)　初期値を指定した場合

《COBOL》

COBOLの可変項目の生成規則は，使用目的によってデータ型が変わります。

数字項目の場合

文字項目の場合

漢字項目の場合

数字編集項目の場合

《C言語》

C言語使用時は，数字編集項目は指定できません。

日本語では，「桁寄せ」は左寄せになります。

(b)　初期値を指定しない場合

初期値を指定しない場合の論理マップ生成例は初期値を指定したときと同じです。詳細については，「5.3.1(2)(a)　初期値を指定した場合」を参照してください。

(3)　出力項目のマッピング規則

出力項目のマッピング規則について説明します。

(a)　初期値を指定した場合

《APが出力項目データ名の領域に代入した内容と結果》

APが出力項目データ名
の領域に代入した内容
結果

すべて
データ
の場合
すべて空白（(20)₁₆）
項目全体を空白で印字します。

すべて0（(30)₁₆）
項目全体を0で印字します。

すべてNULL（(00)₁₆）
項目全体を空白で印字します。

上記以外のデータ
代入されたデータを印字します。

先頭1文字がデータ有無コード
次表を参照してください。

データの後半にデータ有無コード
「桁寄せ」の指定に従って桁寄せをし，埋字に指定した文字で埋めて印字します（数字編集項目の場合は，編集文字に従って編集してから印字）。埋字と桁寄せのマッピング規則については，「5.3.4　埋字と桁寄せに関するマッピング規則（出力フィールド）」を参照してください。

先頭1文字がデータ有無コードのときの結果

初期値の内容 | 結果
すべて空白（(20)₁₆） | 項目全体を空白で印字します。
すべて0（(30)₁₆） | 項目全体を0で印字します。
すべてNULL（(00)₁₆） | 項目全体を空白で印字します。
初期値の長さと帳票の印刷長とが等しい | 初期値を項目に印字します。
初期値の長さが帳票の印刷長より短い | 定義で指定した「桁寄せ」，および埋字に従って印字します。埋字抑止を指定した場合は，左寄せで初期値を項目に印字します。
初期値の長さが帳票の印刷長より長い | 「桁寄せ」に従って桁寄せし，余りを切り捨てて項目を印字します。

(b)　初期値を指定しない場合

《APが出力項目データ名の領域に代入した内容と結果》

APが出力項目データ名
の領域に代入した内容
結果

すべて
データ
の場合
すべて空白（(20)₁₆）
項目全体を空白で印字します。

すべて0（(30)₁₆）
項目全体を0で印字します。

すべてNULL（(00)₁₆）
項目全体を空白で印字します。

上記以外のデータ
代入されたデータを印字します。

先頭1文字がデータ有無コード
データ有無コード(1F)₁₆を仮定した場合
例として，X'1F414234'またはX'1F1F1F'のようなデータが該当します。このときは，データを印字しません。

データの後半にデータ有無コード
データ有無コード(1F)₁₆を仮定した場合
例として，X'4142431F1F'のようなデータが該当します。この場合，「桁寄せ」の指定に従って桁寄せをし，埋字に指定した文字で埋めて印字します。埋字と桁寄せのマッピング規則については，「5.3.4　埋字と桁寄せに関するマッピング規則（出力フィールド）」を参照してくだい。

5.3.2　コピー枚数の論理マップ生成規則

コピー枚数の論理マップ生成規則について説明します。

＜この項の構成＞

(1)　コピー枚数の定義

(2)　コピー枚数の論理マップ生成規則

(3)　コピー枚数のマッピング規則

(1)　コピー枚数の定義

ドローセットアップの「網掛け／グラフィック帳票」のコピー枚数動的変更のデータ名で，「アプリケーションでの印刷枚数指定領域の生成」を指定することで生成されます。

印刷枚数制御項目のデータ名：マップ名-COPIESO
データ名は，ドローセットアップの「網掛け／グラフィック帳票」の「コピー枚数動的変更のデータ名」で変更できます。

長さ：2

(2)　コピー枚数の論理マップ生成規則

(a)　制御項目によるコピー枚数を指定した場合

《COBOL》

Windowsリトルエンディアン用，Linux用

Windowsビッグエンディアン用，AIX／HP-UX／Solaris用

《C言語》

(b)　制御項目によるコピー枚数を指定しない場合

論理マップは生成されません。

(3)　コピー枚数のマッピング規則

コピー枚数のマッピング規則について説明します。

APが印刷枚数制御項目データ名の領域に代入した内容とその結果

APが印刷枚数制御項目データ名の領域に代入した内容 | 結果
不正な枚数（0，または33以上） | 1枚印刷します。
正しい枚数（1～32） | 制御項目で指定した枚数を印刷します。
データ有無コードクリア | 帳票属性ダイアログの「印刷部数」で指定した枚数を印刷します。

5.3.3　印刷ドキュメント名の論理マップ生成規則とマッピング規則

印刷ドキュメント名の論理マップ生成規則とマッピング規則について説明します。

＜この項の構成＞

(1)　印刷ドキュメント名の定義

(2)　印刷ドキュメント名の論理マップ生成規則

(3)　印刷ドキュメント名のマッピング規則

(1)　印刷ドキュメント名の定義

ドローセットアップの「けい線／プレプリント帳票」または「網掛け／グラフィック帳票」の印刷ドキュメント名動的変更のデータ名で，「アプリケーションでの印刷ドキュメント名指定領域の生成」を指定することで生成されます。

印刷ドキュメント名項目のデータ名：マップ名-DOCNAMEO

長さ：1～607
データ名および長さは，ドローセットアップの「けい線／プレプリント帳票」または「網掛け／グラフィック帳票」の「印刷ドキュメント名動的変更のデータ名」で変更できます。

(2)　印刷ドキュメント名の論理マップ生成規則

《COBOL》

《C言語》

(3)　印刷ドキュメント名のマッピング規則

印刷ドキュメント名のマッピング規則について説明します。

(a)　プリンタ出力の場合

「印刷ドキュメント名をAPで変更する」を指定した場合

APが出力項目データ名の領域に代入した内容
結果（スプールに表示されるドキュメント名）

すべて
データ
の場合
すべて空白（(20)₁₆）
空白で出力します。

すべてNULL（(00)₁₆）
「XMAP3」を出力します。

上記以外のデータ
指定したデータを出力します。

先頭1文字がデータ有無コード
データ有無コード(1F)₁₆を仮定した場合
例として，X'1F414243'またはX'1F1F1F'のようなデータが該当します。

ドロー定義時に「印刷ドキュメント名」を指定した場合
指定した印刷ドキュメント名を出力します。

ドロー定義時に「印刷ドキュメント名」を指定しない場合
「XMAP3」を出力します。

先頭1文字がNULL（(00)₁₆）
「XMAP3」を出力します。

データの途中にNULL（(00)₁₆）
先頭からNULLの直前までのデータを出力します。

データの後半にデータ有無コード
データ有無コード(1F)₁₆を仮定した場合
例として，X'4142431F1F'のようなデータが該当します。この場合，データ有無コードのデータ（X'414243'）を出力します。

注

表示・印刷セットアップの「プリンタ」タブの「用紙の確認通知」で，「物理マップ名で確認する」を指定している場合，この表で示す出力内容の末尾に「FNAM-物理マップ名」が付加されます。物理マップ名に拡張子（.pmp）は含まれません。

「印刷ドキュメント名をAPで変更する」を指定しない場合

ドロー定義時に「印刷ドキュメント名」を指定した場合
指定した印刷ドキュメント名を出力します。

ドロー定義時に「印刷ドキュメント名」を指定しない場合
「XMAP3」を出力します。

注

表示・印刷セットアップの「プリンタ」タブの「用紙の確認通知」で，「物理マップ名で確認する」を指定している場合，出力内容の末尾に「△△△FNAM-物理マップ名」が付加されます。物理マップ名に拡張子（.pmp）は含まれません。

(b)　PDFファイル出力の場合

「印刷ドキュメント名をAPで変更する」を指定した場合

APが出力項目データ名の領域に代入した内容
結果（スプールに表示されるドキュメント名）

すべて
データ
の場合
すべて空白（(20)₁₆）
物理マップ名に「.pdf」※を付加したファイル名で出力します。

すべてNULL（(00)₁₆）
物理マップ名に「.pdf」※を付加したファイル名で出力します。

上記以外のデータ
指定したデータに「.pdf」※を付加したファイル名で出力します。

先頭1文字がデータ有無コード
データ有無コード(1F)₁₆を仮定した場合
例として，X'1F414243'またはX'1F1F1F'のようなデータが該当します。

ドロー定義時に「印刷ドキュメント名」を指定した場合
指定した印刷ドキュメント名に「.pdf」※を付加したファイル名で出力します。

ドロー定義時に「印刷ドキュメント名」を指定しない場合
物理マップ名に「.pdf」※を付加したファイル名で出力します。

先頭1文字がNULL（(00)₁₆）
物理マップ名に「.pdf」※を付加したファイル名で出力します。

データの途中にNULL（(00)₁₆）
先頭からNULLの直前までのデータに「.pdf」※を付加したファイル名で出力します。

データの後半にデータ有無コード
データ有無コード(1F)₁₆を仮定した場合
例として，X'4142431F1F'のようなデータが該当します。この場合，データ有無コードのデータ（X'414243'）に「.pdf」※を付加したファイル名で出力します。

データの後半に空白（(20)₁₆）
例として，X'4142432020'のようなデータが該当します。この場合，空白以前のデータ（X'414243'）に「.pdf」※を付加したファイル名で出力します。

注

物理マップ名に拡張子（.pmp）は含まれません。

注※

データの末尾にすでに「.pdf」が設定されている場合は付加しません。

「印刷ドキュメント名をAPで変更する」を指定しない場合

ドロー定義時に「印刷ドキュメント名」を指定した場合
指定した印刷ドキュメント名に「.pdf」を付加したファイル名で出力します。

ドロー定義時に「印刷ドキュメント名」を指定しない場合
物理マップ名に「.pdf」を付加したファイル名で出力します。

注

物理マップ名に拡張子（.pmp）は含まれません。

5.3.4　埋字と桁寄せに関するマッピング規則（出力フィールド）

出力フィールドの埋字と桁寄せに関するマッピング規則について説明します。

定義 | 結果（印刷結果）
埋字に「埋めない」以外を指定 | 桁寄せ向きに従って桁寄せし※，埋字に指定した文字で埋めます。
埋字に「埋めない」を指定 | 初期値，および出力論理データは，桁寄せ向きに関係なく左寄せし，埋字を代入しません。ただし，埋字を代入しないことで詰まることはありません。帳票上の次の項目位置はドロー画面で指定した位置に印字されます。

注※

使用目的が日本語の場合，左寄せになります。

5.3.5　バーコードの論理マップ生成規則とマッピング規則

＜この項の構成＞

(1)　バーコードの定義

(2)　バーコードの論理マップ生成規則

(3)　バーコードのマッピング規則

(1)　バーコードの定義

バーコードをドローで定義することで生成されます。

出力バーコード項目のデータ名：

出力バーコードの場合：マップ名-BARCODEnnnn-O
データ名は，出力バーコードダイアログの「データ名」で変更できます。

連結出力バーコードの場合：マップ名-BARCODEnnnn-nnn-O
データ名は，連結出力バーコードダイアログの分類の「データ名（部分）」で変更できます。

長さ：

JAN13の場合：13

JAN8の場合：8

CODE39の場合：3～76

NW-7の場合：3～99

ITF(6)の場合：6

ITF(14)の場合：14

ITF(16)の場合：16

カスタマの場合：22

EAN-128の場合：4～240

(2)　バーコードの論理マップ生成規則

バーコードの論理マップ生成規則について説明します。

《COBOL》

出力バーコードの場合

連結出力バーコードの場合

《C言語》

出力バーコードの場合

連結出力バーコードの場合

(3)　バーコードのマッピング規則

バーコードのマッピング規則について説明します。

《APが出力項目データ名の領域に代入した内容と結果》

JAN，CODE39，NW-7，ITFの場合

APが出力項目データ名の領域に代入した内容
結果

すべてデータの場合
代入されたデータに対応するバーコードを印字します。

先頭1文字がデータ有無コード
データ有無コード(1F)₁₆を仮定した場合
例として，X'1F414234'またはX'1F1F1F'のようなデータが該当します。このときは，何も印字しません。

データの後半にデータ有無コード
データ有無コード(1F)₁₆を仮定した場合
例として，X'4142431F1F'のようなデータが該当します。この場合，データ有無コード以前のデータに対応するバーコードを印字します。
バーコードの種類によって，何も印字されない場合があります。

カスタマバーコードの場合

APが出力項目データ名の領域に代入した内容
結果

すべて
データ
の場合
（22文字）※
すべて正しいデータ
代入されたデータに対するバーコードを印字します。

すべて空白（(20)₁₆），NULL（(00)₁₆）
すべて制御コード（CC4）※で印字します。

データの途中が空白（(20)₁₆）またはNULL（(00)₁₆）
空白（(20)₁₆）またはNULL（(00)₁₆）の部分は，制御コード（CC4）※で印字します。

データの途中およびすべて不当データ
何も印字しません。

先頭1文字がデータ有無コード
データ有無コード(1F)₁₆を仮定した場合
例として，X'1F414243'またはX'1F1F1F'のようなデータが該当します。この場合，何も印字しません。

データの後半にデータ有無コード
データ有無コード(1F)₁₆を仮定した場合
例として，X'4142431F1F'のようなデータが該当します。この場合，何も印字しません。

注※

カスタマバーコードのデータについては，「4.2.9(9)　カスタマバーコードのチェックデジット計算方法」を参照してください。

EAN-128の場合
一つのバーコードデータが複数の項目から成る場合，項目単位にマッピングし，その結果を連結して一つのバーコードを印字します。次の表では，項目単位のマッピング規則について説明します。

APが出力項目データ名の領域に代入した内容
結果

すべて
データ
の場合
すべて正しいデータ
コードセットの指定がBまたはCの場合
代入されたデータの先頭にコードセットの制御コード（CodeBまたはCodeC）※1を付けて，対応するバーコードを印字します。
コードセットの指定が継続の場合
代入されたデータに対応するバーコードを印字します。

すべて空白（(20)₁₆）またはNULL（(00)₁₆）
コードセットの指定がBまたはCの場合
コードセットの制御コード（CodeBまたはCodeC）※1に対応するバーコードを印字します※2。
コードセットの指定が継続の場合
何も印字しません※3。

データの途中およびすべて不当データ
何も印字しません※4。

先頭1文字がデータ有無コード
データ有無コード(1F)₁₆を仮定した場合
例として，X'1F414243'のようなデータが該当します。
コードセットの指定がBまたはCの場合
コードセットの制御コード（CodeBまたはCodeC）※1に対応するバーコードを印刷します※2。
コードセットの指定が継続の場合
何も印字しません※3。

データの後半にデータ有無コード
データ有無コード(1F)₁₆を仮定した場合
例として，X'4142431F1F'のようなデータが該当します。
コードセットの指定がBまたはCの場合
代入されたデータの先頭にコードセットの制御コード（CodeBまたはCodeC）※1を，データ有無コード以前のデータ末尾に制御コード（FNC1）※1を付けて，対応するバーコードを印字します。
コードセットの指定が継続の場合
データ有無コード以前のデータ末尾に制御コード（FNC1）※1を付けて，対応するバーコードを印字します。

注※1

制御コードは一つだけ付けます。データ文字には出力されません。

注※2

すべての項目に対して，すべて空白，すべてNULLまたは先頭1文字にデータ有無コードが指定されている場合，何も印字しません。

注※3

ほかの項目データのマッピング結果でバーコードを印字します。

注※4

不当データが含まれている場合，ほかの項目データの内容に関係なくバーコードを印字しません。

なお，EAN-128バーコードとして印字するバーコードは，APから指定されたバーコードの桁数の総和が2以上の場合だけ印字されます。ここで，バーコードの桁数とは，APから指定されたデータのうち，バーコードパターンとならないデータ※1を除いた次のデータの総和です。

コードセットCのデータ桁数の半分※2

コードセットBのデータ桁数

項目のコードセットの属性がCからB，またはBからCに切り替わった回数

データ後半にデータ有無コードがある項目の数

注※1

コードセットCの項目に指定された(，)，-，空白。

注※2

各項目で連続するコードセットCの項目のデータ桁数総和が偶数でない（2で割り切れない）場合，データ不正となり，バーコードは破棄されます。

APからの指定データによって印字されないで，破棄されるケースの例を次に示します。

ケース1：有効なバーコード桁数の不足

定義項目リストボックスの定義内容

データ名（部分） | 桁 | コードセット | データ文字
BARCODE0001-001- | 4 | C（継続） | 改行無し

APからの指定

BARCODE0001-001に「(91)」を設定

破棄理由

BARCODE0001-001に設定された値は「(91)」であるため，有効なバーコードデータは「91」となり，バーコードの桁数が1となるため。

ケース2：データ桁の総数が偶数でない

定義項目リストボックスの定義内容

データ名（部分） | 桁 | コードセット | データ文字
BARCODE0001-001- | 1 | C（継続） | 改行無し
BARCODE0001-002- | 5 | C（継続） | 改行無し

APからの指定

BARCODE0001-001 に「-」を設定

BARCODE0001-002 に「12345」を設定

破棄理由

BARCODE0001-001に設定された「-」はバーコードパターンの対象外であるため，有効なバーコードデータは「12345」（奇数）となり，コードセットCでは表現できないため。

5.3.6　OCRの出力論理マップ生成規則とマッピング規則

＜この項の構成＞

(1)　OCR可変項目の定義

(2)　OCR項目の出力論理マップ生成規則

(3)　OCR項目のマッピング規則

(1)　OCR可変項目の定義

OCR項目
OCR出力フィールドに対して生成されます。

OCR項目のデータ名：マップ名-FIELDnnnn-O
データ名は，出力OCRダイアログの「データ名」で変更できます。

繰り返し回数：縦，または横の反復回数

長さ：論理項目の長さ。指定がないときはフィールドのデータ長

データ型：文字，数字編集項目のどちらかを選択

(2)　OCR項目の出力論理マップ生成規則

OCRの出力論理マップ生成規則について説明します。

(a)　初期値を指定した場合

《COBOL》

COBOLのOCRの生成規則は，データ型によって変わります。

文字項目の場合

数字編集項目の場合

《C言語》

C言語使用時は，数字編集項目は指定できません。

日本語では，「桁寄せ」は左寄せになります。

(b)　初期値を指定しない場合

初期値を指定しない場合の論理マップ生成規則は初期値を指定したときと同じです。詳細については，「5.3.6(2)(a)　初期値を指定した場合」を参照してください。

(3)　OCR項目のマッピング規則

OCRのマッピング規則について説明します。

(a)　初期値を指定した場合

《APが出力項目データ名の領域に代入した内容と結果》

APが出力項目データ名
の領域に代入した内容
結果

すべて
データ
の場合
すべて空白（(20)₁₆）
項目全体を空白で印字します。

すべて0（(30)₁₆）
項目全体を0で印字します。

すべてNULL（(00)₁₆）
項目全体を空白で印字します。

上記以外のデータ
代入されたデータを印字します。

先頭1文字がデータ有無コード
次表を参照してください。

データの後半にデータ有無コード
「桁寄せ」の指定に従って桁寄せをし，埋字に指定した文字で埋めて印字します（数字編集項目の場合は，編集文字に従って編集してから印字）。埋字と桁寄せのマッピング規則については，「5.3.4　埋字と桁寄せに関するマッピング規則（出力フィールド）」を参照してください。

《先頭1文字がデータ有無コードのときの結果》

初期値の内容 | 結果
すべて空白（(20)₁₆） | 項目全体を空白で印字します。
すべて0（(30)₁₆） | 項目全体を0で印字します。
すべてNULL（(00)₁₆） | 項目全体を空白で印字します。
初期値の長さと帳票の印刷長とが等しい | 初期値を項目に印字します。
初期値の長さが帳票の印刷長より短い | 定義で指定した「桁寄せ」，および埋字に従って印字します。埋字抑止を指定した場合は，左寄せで初期値を項目に印字します。
初期値の長さが帳票の印刷長より長い | 「桁寄せ」に従って桁寄せし，余りを切り捨てて項目を印字します。

(b)　初期値を指定しない場合

《APが出力項目データ名の領域に代入した内容と結果》

APが出力項目データ名
の領域に代入した内容
結果

すべて
データ
の場合
すべて空白（(20)₁₆）
項目全体を空白で印字します。

すべて0（(30)₁₆）
項目全体を0で印字します。

すべてNULL（(00)₁₆）
項目全体を空白で印字します。

上記以外のデータ
代入されたデータを印字します。

先頭1文字がデータ有無コード
データ有無コード(1F)₁₆を仮定した場合
例として，X'1F414234'またはX'1F1F1F'のようなデータが該当します。このときは，データを印字しません。

データの後半にデータ有無コード
データ有無コード(1F)₁₆を仮定した場合
例として，X'4142431F1F'のようなデータが該当します。この場合，「桁寄せ」の指定に従って桁寄せをし，埋字に指定した文字で埋めて印字します。埋字と桁寄せのマッピング規則については，「5.3.4　埋字と桁寄せに関するマッピング規則（出力フィールド）」を参照してください。

5.3.7　出力グラフィックの論理マップ生成規則とマッピング規則

＜この項の構成＞

(1)　出力グラフィックの定義

(2)　出力グラフィックの論理マップ生成規則

(3)　出力グラフィックのマッピング規則

(1)　出力グラフィックの定義

出力グラフィックをドローで定義することで生成されます。

出力グラフィック項目のデータ名：マップ名-GRAPHnnnn-O
データ名は，出力グラフィックダイアログの「データ名」で変更できます。

長さ：

ファイル名指定：12

フルパス64：64

フルパス128：128

フルパス259：259

(2)　出力グラフィックの論理マップ生成規則

出力グラフィックの論理マップ生成規則について説明します。

《COBOL》

《C言語》

(3)　出力グラフィックのマッピング規則

出力グラフィックのマッピング規則について説明します。

《APが出力項目データ名の領域に代入した内容と結果》

APが出力項目データ名の領域に代入した内容
結果

すべてデータの場合

「指定されたファイルが存在した場合」
指定されたファイルを読み込み，グラフィックを印刷します※。

「指定されたファイルが存在しない場合」
何も印刷しません。

先頭1文字がデータ有無コード
データ有無コード(1F)₁₆を仮定した場合
例として，X'1F414234'またはX'1F1F1F'のようなデータが該当します。このときは，何も印刷しません。

データの後半にデータ有無コード，NULLまたは空白
データ有無コード，NULL（(00)₁₆），または空白（(20)₁₆）を(xx)₁₆と仮定した場合，例としてX'414243xxxx'のようなデータが該当します。この場合，後半のX'xxxx'を切り捨てたデータのX'414243'が指定されたファイル名となります。

「指定されたファイルが存在した場合」
指定されたファイルを読み込み，グラフィックを印刷します※。

「指定されたファイルが存在しない場合」
何も印刷しません。

注※

データが「*CLIP」の場合，クリップボード中のグラフィックを印刷します。

5.3.8　制御項目の論理マップ生成規則とマッピング規則

＜この項の構成＞

(1)　制御項目の定義

(2)　制御項目の論理マップ生成規則

(3)　制御項目のマッピング規則

(1)　制御項目の定義

制御項目のデータ名：マップ名-FIELDnnnn-A
データ名は，各オブジェクトのダイアログで指定している「データ名」に従います。ただし，けい線の場合は，「制御項目データ名」で変更できます。

長さ：2
長さは，ドローセットアップの「運用管理者用の設定」の［修飾名の設定...］ボタンをクリックして表示される，修飾名の設定ダイアログで変更できます。出力フィールド用の長さを変更するときには「動的変更の種別」から「［帳票］フィールド表示属性」を，けい線用の長さを変更するときには「［帳票］けい線表示属性」を選択し，「修飾名長」で長さを設定します。

繰り返し：フィールドの繰り返しと同じ

(2)　制御項目の論理マップ生成規則

制御項目の論理マップ生成規則について説明します。

《COBOL》

《C言語》

(3)　制御項目のマッピング規則

制御項目のマッピング規則について説明します。

《APが制御項目データ名の領域に代入した内容と結果》

出力フィールド，日付／時刻フィールドおよびけい線ダイアログで「動的変更（APから表示属性を変更します）」を選んだ場合

APが出力項目データ名の領域に代入した内容
マッピング
オプション
結果

修飾名と同じ
マージ
修飾名に対応する表示属性を使って項目を表示します。

先頭にデータ有無コード，または修飾名以外（上記以外）
標準の属性を使って項目を表示します。

注

修飾名と修飾名に対応した変更属性情報は，ドローセットアップの表示属性の動的変更で変更できます。

出力フィールド，日付／時刻フィールドおよびけい線ダイアログで「動的変更（APから表示属性を変更します）」を選ばない場合
標準の属性を使用して項目を表示します。

5.3.9　日付／時刻の論理マップ生成規則とマッピング規則

＜この項の構成＞

(1)　日付／時刻項目の定義

(2)　日付／時刻項目の出力論理マップ生成規則

(3)　日付／時刻項目のマッピング規則

(1)　日付／時刻項目の定義

日付／時刻項目
出力フィールドに対して生成されます。

日付／時刻項目のデータ名：マップ名-FIELDnnnn-O
データ名は，日付／時刻フィールドダイアログの「データ名」で変更できます。

繰り返し回数：縦，または横の反復回数

長さ：論理項目の長さ。指定がないときはフィールドのデータ長

データ型：文字，数字編集項目のどちらかを選択

データ型
使用できる項目

99999
数字編集項目
COBOLで桁数に満たない値を代入すると，COBOLの仕様によって「0（ゼロ）」が設定されます。

文字（XX）
文字

注

桁数に満たない値を代入した残りにデータ有無コードを指定している場合は，「桁寄せ：左」「埋字：スペース」で埋字されます。そのほかのマッピング規則については，「5.3.9(3)　日付／時刻項目のマッピング規則」を参照してください。

(2)　日付／時刻項目の出力論理マップ生成規則

日付／時刻の出力論理マップ生成規則について説明します。

《COBOL》

COBOLの日付／時刻の生成規則は，データ型によって変わります。

文字項目の場合

数字編集項目の場合

《C言語》

C言語使用時は，数字編集項目は指定できません。

(3)　日付／時刻項目のマッピング規則

日付／時刻の論理マップ生成規則について説明します。

《APが出力項目データ名の領域に代入した内容と結果》

APが出力項目データ名
の領域に代入した内容
結果

すべて
データ
の場合
すべて空白（(20)₁₆）
項目全体を空白で印字します。

すべて0（(30)₁₆）
0をデータとしてフォーマットに合わせて印字します。

すべてNULL（(00)₁₆）
項目全体を空白で印字します。

上記以外のデータ
代入されたデータをフォーマットに合わせて印字します。

先頭1文字がデータ有無コード
データ有無コード(1F)₁₆を仮定した場合
例として，X'1F414234'またはX'1F1F1F'のようなデータが該当します。このときは，データを印字しません。

データの後半にデータ有無コード
データ有無コード(1F)₁₆を仮定した場合
例として， X'4142431F1F'のようなデータが該当します。この場合，データ有無コード以前のデータに対応するデータを，フォーマットに合わせて印字します。

5.3.10　予約フィールドのマッピング規則

ドローで定義した予約項目名と印刷結果に関するマッピング規則について説明します。なお，論理マップには，予約フィールドの情報は生成されません。

定義
結果

OpenTP1がサポートしている予約項目名を指定
ドロー定義で指定した項目長がOpenTP1で定められた項目長と等しい場合
OpenTP1が設定するデータが印刷されます。
ドロー定義で指定した項目長がOpenTP1で定められた項目長より大きい場合
データが左寄せで印刷されます。残りには空白が埋められます。
ドロー定義で指定した項目長がOpenTP1で定められた項目長より小さい場合
データが左寄せで印刷されます。余りは切り捨てられます。

OpenTP1がサポートしていない予約項目名を指定
項目には何も印刷されません。

6.　帳票定義とコーディングの関連

この章では，帳票と書式の定義およびAPとの関連について説明します。

APのコーディングおよび文法については，「7.　マップ帳票でのAPのコーディング方法」および「8.　書式オーバレイでのAPのコーディング方法」を参照してください。

＜この章の構成＞

6.1　帳票定義とAPのコーディング

6.2　帳票のオブジェクト定義とAPのコーディング

6.3　書式オーバレイ定義とAPのコーディング

6.4　書式オーバレイの行データのコーディング

6.1　帳票定義とAPのコーディング

マップ帳票のレイアウト定義から帳票印刷までのデータの流れを次の図に示します。

図6-1　マップ帳票のデータの流れ

マップ帳票のレイアウト定義からは，論理マップと物理マップが生成されます。
論理マップには，帳票に印刷する可変データが格納されています。また，物理マップには，固定フィールドやけい線の位置などが格納されています。

APに取り込まれた論理マップのデータ領域を介して，ページ単位でデータが出力されます。

＜この節の構成＞

6.1.1　APのインタフェース

6.1.2　APのコーディング

6.1.1　APのインタフェース

XMAP3実行支援には，四つのAPインタフェースがあります。

図6-2　APインタフェースの種類

解説

COBOL言語仕様に取り込まれた言語インタフェースです。日立COBOLで使用できます。すべてのOSで共通です。

COBOLのCALLインタフェースで呼び出す方法です。日立COBOLなど，標準CALLインタフェースを持つCOBOL言語から使用できます。

C言語インタフェースです。XMAP3共通のC言語用APインタフェースです。また，PCおよびWSで共通の文法です。

PC専用の汎用APインタフェースです。COBOL，C言語以外の言語用APインタフェースです。

各APIについては，「7.　マップ帳票でのAPのコーディング方法」を参照してください。

6.1.2　APのコーディング

エディタを使用して，APを作成します。APは，XMAP3が標準提供しているAPパターンにユーザ固有の処理を加えることで，効率良く開発できます。APパターンを使用したAPの作成については，「9.　標準パターンを使用したAPの作成」を参照してください。

APには，次のファイルをCOPY文（C言語の場合は#include）で取り込みます。

帳票定義後に生成される論理マップ

動的変更テーブル（X3MODTBL）
動的変更テーブルは，XMAP3インストール先¥Includeに格納されています。

APと帳票印刷処理の関連を次の図に示します。

図6-3　APと帳票印刷処理の関連

6.2　帳票のオブジェクト定義とAPのコーディング

ここでは，AP実行時に出力データを指定する「出力フィールド」を使用した場合の帳票定義，定義後に生成される論理マップ，およびAPでのコーディングの関連について説明します。COBOLでのAPコーディング例には標準提供のAPパターン「GENREP01」を適用しています。なお，ここで示す例は，ドローセットアップが標準値で設定されていることを前提とし，コーディング中の物理マップ名は，マップ名が6桁のグラフィック帳票を想定して「マップ名＋6G」で説明しています。マップ名が6桁のけい線帳票（カット紙／連続紙）の場合，物理マップ名は「マップ名＋6A」となります。マップ名が6桁のプレプリント帳票（カット紙／連続紙）の場合，物理マップ名は「マップ名＋6H」となります。マップ名が6桁の網掛け帳票の場合，物理マップ名は「マップ名＋6B」となります。

＜この節の構成＞

6.2.1　出力フィールドの利用

6.2.2　数字編集項目の利用

6.2.3　出力OCRの利用

6.2.4　出力バーコードの定義とAPの関連

6.2.5　連結出力バーコードの定義とAPの関連

6.2.6　日付・時刻とAPの関連

6.2.7　文字属性の動的変更とAPの関連

6.2.8　けい線の動的変更とAPの関連

6.2.9　フレーム（明細行）の定義とAPの関連

6.2.10　出力グラフィックの利用

6.2.11　埋字と桁寄せ向きの利用

6.2.12　重ね印刷（ページプリンタ）

6.2.13　APでの印刷部数指定

6.2.14　印刷ドキュメント名指定

6.2.1　出力フィールドの利用

「伝票番号」，「顧客名」，「住所」，「注文数」の出力フィールドにデータを格納して，APで印刷します。

AP実行時の出力フィールドの印刷例を次の図に示します。

図6-4　出力フィールドの利用

＜この項の構成＞

(1)　帳票定義の概要

(2)　生成される論理マップ

(3)　COBOLでのAP

(1)　帳票定義の概要

帳票定義の概要を次に示します。

帳票定義ウィンドウのツールボックスから［出力フィールド］を使用して，次の出力フィールドを配置する。

定義対象 | ツールボックスのオブジェクト | 配置する長さ
伝票番号 | 出力フィールド（英数） | 8
顧客名 | 出力フィールド（日本語） | 20
住所 | 出力フィールド（日本語） | 20
注文数 | 出力フィールド（数字） | 3

各フィールドの属性を出力フィールドダイアログで定義する。

定義対象 | 使用目的 | データ名 | データ型
伝票番号 | 英数 | 伝票番号－ | 文字（XX）
顧客名 | 日本語 | 顧客名－ | 漢字（NN）
住所 | 日本語 | 住所－ | 文字（XX）
注文数 | 数字 | 注文数－ | 99999

(2)　生成される論理マップ

マップ名がMAP402の場合

(3)　COBOLでのAP

マップ名がMAP402の場合

6.2.2　数字編集項目の利用

「単価」の出力フィールド（数字）に数字編集文字列「¥¥,¥¥¥,¥¥9」を定義し，APで出力論理マップに「340000」を代入すると，帳票に「¥340,000」を出力します。

AP実行時の数字編集項目の印刷例を次の図に示します。

図6-5　数字編集項目の例

＜この項の構成＞

(1)　帳票定義の概要

(2)　生成される論理マップ

(3)　COBOLでのAP

(1)　帳票定義の概要

帳票定義の概要を次に示します。

帳票定義ウィンドウのツールボックスから［出力フィールド（数字）］を使用して，「単価」の出力フィールドを配置する。

属性を出力フィールドダイアログで定義する。

定義項目 | 定義内容
データ名 | 単価1－を指定する
タイプ（データ型） | ¥,¥¥9を選ぶ
桁 | 10
データ長 | 10（この定義内容は固定）

(2)　生成される論理マップ

マップ名がMAP301の場合

(3)　COBOLでのAP

マップ名がMAP301の場合

6.2.3　出力OCRの利用

出力OCR付きのグラフィック帳票を印刷します。

OCRの長さ：10

APから設定するデータ：DC19711218

AP実行時の出力OCR付き帳票の印刷例を次の図に示します。

図6-6　出力OCRの例

＜この項の構成＞

(1)　帳票定義の概要

(2)　生成される論理マップ

(3)　COBOLでのAP

(1)　帳票定義の概要

帳票定義の概要を次に示します。

ドローを起動したあと，新規作成ダイアログの定義対象の選択で［ページプリンタ　グラフィック帳票］を選択する。

帳票定義ウィンドウのツールボックスから［出力OCR］を使用して，OCRの位置と長さ（10列）を指定する。

(2)　生成される論理マップ

マップ名がOCRMAPの場合

(3)　COBOLでのAP

マップ名がOCRMAPの場合

6.2.4　出力バーコードの定義とAPの関連

バーコードをグラフィック帳票を使用して印刷します。

コード種別：CODE39（12桁）

データ文字：あり

APから設定するデータ：*DC19711218*

AP実行時のバーコードの印刷例を次の図に示します。

図6-7　バーコードの例

＜この項の構成＞

(1)　帳票定義の概要

(2)　生成される論理マップ

(3)　COBOLでのAP

(1)　帳票定義の概要

帳票定義の概要を次に示します。

ドローを起動したあと，新規作成ダイアログの定義対象の選択で［ページプリンタ　グラフィック帳票］を選択する。

帳票定義ウィンドウのツールボックスから［出力バーコード］を使用して，バーコードの位置とサイズを指定する。

バーコードの属性を，出力バーコードダイアログで定義する。

定義項目 | 定義内容
バーコード種別 | CODE39
データ文字を印刷する | 指定する
データ名 | BARCODE-
データ長 | 12

(2)　生成される論理マップ

マップ名がBCDMAPの場合

(3)　COBOLでのAP

マップ名がBCDMAPの場合

6.2.5　連結出力バーコードの定義とAPの関連

連結出力バーコードをグラフィック帳票を使用して印刷します。

コード種別：EAN-128（51桁）

データ文字：あり

APから設定するデータ：出力するバーコードのOCRデータ

AP実行時の連結出力バーコードの印刷例を次の図に示します。

図6-8　連結出力バーコードの例

＜この項の構成＞

(1)　帳票定義の概要

(2)　生成される論理マップ

(3)　COBOLでのAP

(1)　帳票定義の概要

帳票定義の概要を次に示します。

ドローを起動したあと，新規作成ダイアログの定義対象の選択で［ページプリンタ　グラフィック帳票］を選択する。

帳票定義ウィンドウのツールボックスから［連結出力バーコード］を使用して，バーコードの位置とサイズを指定する。

バーコードの属性を，連結出力バーコードダイアログで定義する。

定義項目 | 定義内容
データ文字を印刷する | 指定する
データ名（全体） | BARCODE0001-
分類 | 次の表に示す値を指定する

分類項目リストボックスの定義内容

データ名（部分） | 桁 | コードセット | データ文字 | 備考
BARCODE0001-001- | 4 | C（継続） | 改行無し | アプリケーション識別子
BARCODE0001-002- | 6 | C（継続） | 改行無し | 国コード＋メーカコード
BARCODE0001-003- | 1 | C（継続） | 改行無し | 区切り
BARCODE0001-004- | 21 | C（継続） | 改行無し | 自由使用欄
BARCODE0001-005- | 1 | C（継続） | 改行無し | 区切り
BARCODE0001-006- | 1 | C（継続） | 改行有り | 再発行区分
BARCODE0001-007- | 6 | C（継続） | 改行無し | 支払期限
BARCODE0001-008- | 1 | C（継続） | 改行無し | 区切り
BARCODE0001-009- | 1 | C（継続） | 改行無し | 印刷フラグ
BARCODE0001-010- | 1 | C（継続） | 改行無し | 区切り
BARCODE0001-011- | 6 | C（継続） | 改行無し | 支払金額
BARCODE0001-012- | 1 | C（継続） | 改行無し | 区切り
BARCODE0001-013- | 1 | C（継続） | 改行無し | 全体チェックデジット

(2)　生成される論理マップ

マップ名がMAP001の場合

(3)　COBOLでのAP

マップ名がMAP001の場合

6.2.6　日付・時刻とAPの関連

日付と時刻をグラフィック帳票を使用して印刷します。

APに「20020331」と「1310」を代入し，それぞれデリミタを付けて「2002/03/31」および「13:10」で帳票に印刷します。

AP実行時の出力日付フィールドと出力時刻フィールドの印刷例を次の図に示します。

図6-9　日付・時刻の例

＜この項の構成＞

(1)　帳票定義の概要

(2)　生成される論理マップ

(3)　COBOLでのAP

(1)　帳票定義の概要

帳票定義の概要を次に示します。

ドローを起動したあと，新規作成ダイアログの定義対象の選択で［ページプリンタ　グラフィック帳票］を選択する。

帳票定義ウィンドウのツールボックスから［出力日付フィールド］を使用して，日付の位置を指定する。また，帳票定義ウィンドウでのツールボックスから［出力時刻フィールド］を使用して，時刻の位置を指定する。

日付・時刻の属性を，出力フィールドダイアログで定義する。

定義項目 | 定義内容
日付 | 表示形式 | "1997/08/07"
データ名 | 日付-
時刻 | 表示形式 | 時分"21:08"
データ名 | 時刻-

(2)　生成される論理マップ

マップ名がMAP001の場合

(3)　COBOLでのAP

マップ名がMAP001の場合

6.2.7　文字属性の動的変更とAPの関連

グラフィック帳票で，条件を満たしている出力フィールドに対して，文字の属性を変更して印刷します。

AP実行時の文字属性の動的変更の印刷例を次の図に示します。

図6-10　文字の例

＜この項の構成＞

(1)　帳票定義の概要

(2)　生成される論理マップ

(3)　COBOLでのAP

(1)　帳票定義の概要

帳票定義の概要を次に示します。

ドローを起動したあと，新規作成ダイアログの定義対象の選択で［ページプリンタ　グラフィック帳票］を選択する。

帳票定義ウィンドウのツールボックスから［出力フィールド］を使用して，出力フィールドの位置とサイズを指定する。

出力フィールドの属性を，出力フィールドダイアログで定義する。

定義項目 | 定義内容
動的変更 | チェックする

(2)　生成される論理マップ

マップ名がMDC1PCの場合

(3)　COBOLでのAP

マップ名がMDC1PCの場合

6.2.8　けい線の動的変更とAPの関連

グラフィック帳票で，印字データを設定した行だけに，けい線を引いて印刷します。また，印字データのない行（空白行）については，横けい線を引きません。

AP実行時のけい線の動的変更の印刷例を次の図に示します。

図6-11　けい線の例

＜この項の構成＞

(1)　帳票定義の概要

(2)　生成される論理マップ

(3)　COBOLでのAP

(1)　帳票定義の概要

帳票定義の概要を次に示します。

ドローを起動したあと，新規作成ダイアログの定義対象の選択で［ページプリンタ　グラフィック帳票］を選択する。

帳票定義ウィンドウのツールボックスから［縦/横けい線（マス目の上・左）］を使用して，横けい線の位置とサイズを指定する。

けい線の属性を，横けい線ダイアログで定義する。

定義項目 | 定義内容
線の種類 | 見えない線
動的変更 | チェックする
制御項目データ名 | RLINExxxx－（任意）

(2)　生成される論理マップ

マップ名がMDL1PCの場合

(3)　COBOLでのAP

マップ名がMDL1PCの場合

6.2.9　フレーム（明細行）の定義とAPの関連

複数の出力フィールドを1行としてまとめ，縦方向または横方向に反復します。APでは，この1行を集団項目として扱います。

表の1行に出力フィールドとして，「品名」「単価」「数量」「小計」「備考」から成る明細があります。これらの異なるフィールドをツールボックスの［フレーム（縦繰り返し）］でまとめると，1行とみなされ，行単位での縦反復ができます。

AP実行時のフレームを使用した印刷例を次の図に示します。

図6-12　フレームの例

＜この項の構成＞

(1)　帳票定義の概要

(2)　生成される論理マップ

(3)　COBOLでのAP

(1)　帳票定義の概要

帳票定義の概要を次に示します。

ドローを起動したあと，新規作成ダイアログの定義対象の選択で［ページプリンタ　グラフィック帳票］を選択する。

帳票定義ウィンドウのツールボックスから［フレーム（縦繰り返し）］を使用して，フレームの位置とサイズ（10行分），データ名（「売上明細-」）を指定する。

配置したフレームの中に，出力フィールドとして5フィールドを指定する。

定義項目 | 定義内容
「品名」用出力フィールド | 使用目的：日本語，長さ：15
「単価」用出力フィールド | 使用目的：数字（ZZZZZ9），長さ：6
「数量」用出力フィールド | 使用目的：数字（ZZZ9），長さ：4
「小計」用出力フィールド | 使用目的：数字（¥¥,¥¥¥,¥¥9），長さ：10
「備考」用出力フィールド | 使用目的：日本語，長さ：19

(2)　生成される論理マップ

マップ名がMAP003の場合

(3)　COBOLでのAP

マップ名がMAP003の場合

6.2.10　出力グラフィックの利用

Excelを使用して，グラフをビットマップ形式でクリップボード上に作成します。作成したビットマップ形式の入力元を出力論理マップに代入します。このとき，入力元はクリップボードなので「＊CLIP」を指定します。

出力グラフィックを利用したグラフの印刷を次の図に示します。

図6-13　出力グラフィックの利用

《Excelでの準備》

このように，OLE2オートメーションインタフェース機能を使用するとExcelでは何も用意しておく必要はありません。しかし，使用するグラフや処理のパターンが一定であれば，それらを処理するExcelのブック・シートを前もって作成しておき，直接使用すると，APでのOLEの操作を軽減できます。また，この例では，セル間の値の処理方式，および表示するグラフ形式の指定を前もってシートに設定しておくと，APからの指定は不要になります。

＜この項の構成＞

(1)　帳票定義の概要

(2)　生成される論理マップ

(3)　COBOLでのAP

(1)　帳票定義の概要

帳票定義の概要を次に示します。

ドローを起動したあと，新規作成ダイアログの定義対象の選択で［ページプリンタ　グラフィック帳票］を選択する。

帳票定義ウィンドウのツールボックスから［出力グラフィック］を使用して，出力グラフィックの領域を指定する。

出力グラフィックの属性を出力グラフィックダイアログで定義する。

定義項目 | 定義内容
グラフィックデータの渡し方 | ファイル名指定
データ名 | FIELD0001-
桁 | 12（この定義内容は固定）
データ長 | 12（この定義内容は固定）
領域に合わせて表示する | 指定する
領域に枠を付ける | 指定する

(2)　生成される論理マップ

マップ名がGRAPH1の場合

(3)　COBOLでのAP

マップ名がGRAPH1の場合

6.2.11　埋字と桁寄せ向きの利用

「商品名」の出力フィールドの論理マップに「AVコンポ」を格納すると「左」に桁寄せし，余った部分は「＊」で埋めます。埋字と桁寄せ向きの例を次の図に示します。

図6-14　埋字と桁寄せ向きの例

＜この項の構成＞

(1)　帳票定義の概要

(2)　生成される論理マップ

(3)　COBOLでのAP

(1)　帳票定義の概要

帳票定義の概要を次に示します。

帳票定義ウィンドウのツールボックスから［出力フィールド（日本語）］を使用して，「商品名」の出力フィールドを配置する。

属性を出力フィールドダイアログで定義する。

定義項目 | 定義内容
データ名 | 商品名1－
タイプ | 文字（XX）
桁 | 13
データ長 | 13（この定義内容は固定）
桁寄せ | 左
埋字 | 自由な埋字
自由な設定 | *

(2)　生成される論理マップ

マップ名称がMAP402の場合

(3)　COBOLでのAP

マップ名がMAP402の場合

6.2.12　重ね印刷（ページプリンタ）

グラフィック帳票では，APの指示で出力フィールド同士を重ねて印字するかどうかを制御できます。重ね印刷の例を次の図に示します。ここでは「日立太郎」と「＊＊＊＊」とを重ね印刷しています。

図6-15　重ね印刷の例

＜この項の構成＞

(1)　帳票定義の概要

(2)　生成される論理マップ

(3)　COBOLでのAP

(1)　帳票定義の概要

帳票定義で二つのフィールドを重ねて定義します。

(2)　生成される論理マップ

(3)　COBOLでのAP

6.2.13　APでの印刷部数指定

ページプリンタを使用する場合，APから印刷時の印刷部数を指定できます。さらに，印刷部数をAPで指定する場合の論理マップおよびAPの関連について説明します。

なお，PDFファイル出力の場合，指定した印刷部数は無効となります。

APで印刷部数を指定し，指定した枚数分の帳票をコピー印刷する例を，次の図に示します。

図6-16　印刷部数の例

＜この項の構成＞

(1)　帳票定義の概要

(2)　生成される論理マップ

(3)　COBOLでのAP

(1)　帳票定義の概要

帳票定義の概要を次に示します。

XMAP3のドローを起動したあと，新規作成ダイアログの定義対象の選択で，［ページプリンタ　グラフィック帳票］を選択する。

帳票定義レイアウトから帳票属性ダイアログを表示する。

ダイアログ上で「印刷部数をAPで変更する」をチェックする。

(2)　生成される論理マップ

マップ名がMAP420の場合

(3)　COBOLでのAP

マップ名がMAP420の場合

6.2.14　印刷ドキュメント名指定

APでの帳票印刷時，印刷ドキュメント名を指定すると，Windowsのプリンタスプールに登録されるXMAP3の印刷データの名称やPDFファイルの名称を動的に変更できます。

印刷ドキュメント名をAPで指定する例を次に示します。

＜この項の構成＞

(1)　帳票定義の概要

(2)　生成される論理マップ

(3)　COBOLでのAP

(1)　帳票定義の概要

帳票定義レイアウトから帳票属性ダイアログを表示する。

［印刷ドキュメント名］ボタンをクリックして「印刷ドキュメント名」ダイアログを表示する。

ダイアログ上で「印刷ドキュメント名をAPで変更する」をチェックする※。

注※

ドローセットアップの「けい線／プレプリント帳票」または「網掛け／グラフィック帳票」の印刷ドキュメント名動的変更のデータ名で，「アプリケーションでの印刷ドキュメント名指定領域の生成」を指定している場合，デフォルトがチェック状態となっています。

(2)　生成される論理マップ

マップ名がMAP001の場合

(3)　COBOLでのAP

マップ名がMAP001の場合

6.3　書式オーバレイ定義とAPのコーディング

書式オーバレイのレイアウト定義から書式オーバレイ印刷までのデータの流れを次の図に示します。

図6-17　書式オーバレイ印刷の流れ

書式のレイアウト定義からは，書式イメージファイルと行制御データファイルが生成されます。
書式イメージファイルには，書式の文字列やけい線などの情報が格納されています。また，行制御データファイルには，行データの文字サイズや行の間隔などの情報が格納されています。

APでは，1行（1レコード）ずつ印刷するデータを出力します。

改ページのタイミングで書式が重ねられて，1ページを出力（印刷）します。

＜この節の構成＞

6.3.1　APのインタフェース

6.3.1　APのインタフェース

エディタを使用して，APを作成します。APは，XMAP3が標準提供しているAPパターンにユーザ固有の処理を加えることで，効率良く開発できます。APパターンを使用したAPの作成については，「9.　標準パターンを使用したAPの作成」を参照してください。

＜この項の構成＞

(1)　APパターンを利用したAPの作成

(2)　AP作成のポイント

(1)　APパターンを利用したAPの作成

書式オーバレイ用APパターンとサンプルAP例が用意されているので，これを参考にしてAPを作成します。APパターンを使用したAPの作成については，「9.　標準パターンを使用したAPの作成」を参照してください。

(2)　AP作成のポイント

COBOLでのAP作成のコーディング例と作成のポイントを次に示します。

6.4　書式オーバレイの行データのコーディング

＜この節の構成＞

6.4.1　行制御データの概要

6.4.2　行データの編集方法

6.4.3　文字編集

6.4.1　行制御データの概要

書式オーバレイの行制御データはドローで定義した内容を基に生成します。

行データ属性ダイアログを次に示します。

行の間隔，文字間隔，文字サイズは，書式属性ダイアログの基準ます目の設定に従います。

書式属性ダイアログを次に示します。行データ属性ダイアログの一部が，「行データのます目」情報として表示されます。

行制御データには，次の制御情報が含まれています。

各行の間隔（LPI）

1ページの行数（用紙サイズによって決定されます）

各行の標準文字サイズと文字間隔（CPI）

書体

APからは，各行に対するデータと文字の表示属性を合わせて指定します。XMAP3は，これらの情報から1行分のデータを作成します。改行指示があれば次の行へ，改ページ指示があれば，それまでに編集した行をまとめて1ページのデータを作成します。作成したページデータは，書式イメージをかぶせて印刷ページを作成します。

6.4.2　行データの編集方法

日立COBOLインタフェース
レコード名または一意名のCHARACTER TYPE句で行単位の表示属性を指定します。
WRITE文で書き出します。

C言語インタフェース
jstqlctp関数を使用して，行単位の表示属性を指定します。

汎用APインタフェース
XmapFrmSet×××関数を使用して，行単位の表示属性を指定します。

書式オーバレイ印刷ユティリティ
行データをユーザ責任でテキストファイルに出力して，このユティリティの入力とします。

各APIについては，「8.　書式オーバレイでのAPのコーディング方法」を参照してください。

6.4.3　文字編集

COBOLの場合，PICTURE句の数字編集項を使用して編集します。そのほかの言語については，各言語の文字編集機能を使用します。

XMAP3では，次に示す文字編集DLLを用意しています。詳細については，「8.4.2　文字編集DLL」を参照してください。

数値から数字に変換します。

入力数値 | 編集結果 | 備考
123456 | "123,456" | ，の編集
123456 | "¥123456" | ¥の編集
123456 | "¥123,456" | ¥，の編集
123456 | "+123456" | ＋／－の編集
-123456 | "-123456" | ＋／－の編集
123456 | "123456" | なし
-123456 | "-123456"
-123456 | "123456-" | 右＋／－の編集

右寄せまたは左寄せを指定します。

入力数値 | 編集結果
123456（左寄せ） | "123456　　"
123456（右寄せ） | "　　123456"

7.　マップ帳票でのAPのコーディング方法

この章では，マップ帳票用APでのXMAP3の使用方法，および言語種別ごとの印刷命令について説明します。

また，汎用のAPインタフェース関数の仕様について説明します。

＜この章の構成＞

7.1　マップ帳票用APでのXMAP3の使用方法

7.2　COBOLでの印刷命令

7.3　C言語での印刷命令

7.4　汎用APインタフェース

7.5　帳票のFAX出力

7.6　 OLTPサーバ構成での帳票印刷

7.1　マップ帳票用APでのXMAP3の使用方法

マップ帳票用AP中の命令と，XMAP3の関係または日立COBOLやC言語などを使用してXMAP3を利用する方法について説明します。なお，XMAP3のAPインタフェース（ライブラリ）はマルチスレッドで動作するAPからの実行に対応していません。

＜この節の構成＞

7.1.1　XMAP3での帳票出力の基本

7.1.2　AP間でオープンを引き継ぐ場合

7.1.3　スプール単位出力

7.1.4　AP分割時の注意

7.1.5　プログラムでの命令とXMAP3の関係

7.1.6　帳票出力時のXMAP3とAPの関係

7.1.1　XMAP3での帳票出力の基本

＜この項の構成＞

(1)　APインタフェースの種類

(2)　APインタフェースの概要

(1)　APインタフェースの種類

XMAP3実行支援には，四つのAPインタフェースがあります。

図7-1　APインタフェースの種類

解説

COBOL言語仕様に取り込まれた言語インタフェースです。日立COBOLで使用できます。すべてのOSで共通です。

COBOLのCALLインタフェースで呼び出す方法です。日立COBOLなど，標準CALLインタフェースを持つCOBOL言語から使用できます。

C言語インタフェースです。XMAP3共通のC言語用APインタフェースです。また，PCおよびWSで共通の文法です。

PC専用の汎用APインタフェースです。COBOL，C言語以外の言語用APインタフェースです。

(2)　APインタフェースの概要

帳票用APでのXMAP3を使用するときの命令を次の表に示します。

表7-1　XMAP3での帳票の出力の基本

要求
日立COBOL
の命令
COBOLのCALL文
C言語
汎用AP
インタフェース

オープン※
最初のSEND文発行時
'OPEN'要求
'OPEN'要求
XmapDrvCreateOpen

印刷要求
SEND文
'SEND'要求
'SEND'要求
XmapDrvSend

クローズ
DISABLE文，
GOBACK文，
EXIT
PROGRAM文，
CANCEL文，
APのSTOP RUN
'CLOS'要求
'CLOS'要求
XmapDrvClose

注※

一つのAP（プロセス）内で同時にオープンできる端末数の上限は15個です。

帳票用APとXMAP3の間で渡される情報を次の図に示します。

図7-2　XMAP3とAP間のデータのやり取り

注意

APからSEND命令を出しても，プリンタの解放やプログラムの終了処理などによって，印刷処理されないことがあります。

7.1.2　AP間でオープンを引き継ぐ場合

共通帳票を印刷する部分を別DLL化したり，プログラムが大きいので分割したりする場合などは，オープンをプログラム間で引き継がせることをお勧めします。 オープンを引き継ぐためには，日立COBOLの場合，プログラムを実行させるAP（ここではAP1）で環境変数「CBLTERMSHAR=YES」を指定しておきます。なお，「CBLTERMSHAR=YES」は，SENDインタフェースのときだけ有効です。CALLインタフェースでは無効になります。

オープンを引き継ぐことによって，AP1からAP2を呼び出すとき，AP1でのクローズ（日立COBOLのときDISABLE文の発行）およびAP2でのオープンは発生しません。そのため帳票印刷の時間が短くなります。

図7-3　アプリケーション間でオープンを引き継ぐ場合

7.1.3　スプール単位出力

一つのAPで複数の帳票を出力する場合，スプールへの出力単位は，「表示・印刷セットアップ」の「プリンタタブ」の「スプール書き出し単位」の指定に従います。「スプール書き出し単位」には，「1ページ毎」と「アプリケーション毎」があります。詳細については，マニュアル「XMAP3 開発・実行ガイド」を参照してください。

「スプール書き出し単位」に「1ページ毎」を選択した場合と，「アプリケーション毎」を選択した場合の処理の流れを次に示します。

「1ページ毎」を選択した場合

「アプリケーション毎」を選択した場合

なお，PDFファイル出力の場合，「アプリケーション毎」を選択してください。1枚目に指定した印刷ドキュメント名のPDFファイルにすべての帳票が格納されます。「1ページ毎」を選択し，印刷ドキュメント名が同じ帳票を連続出力すると，出力のたびにPDFファイルが上書きされ，結果的に，クローズ直前に出力したPDFファイルだけが登録されます。

7.1.4　AP分割時の注意

日立COBOLでは，明示的にCALL文でオープンを要求する場合を除き，一つのコンパイル単位で最初のSEND文が発行されると帳票がオープンされます。そのため，1帳票が1実行ファイル（.exe）のような構成にすると，1帳票（1枚）ごとにオープンをすることになります。この場合，オープン・クローズ，SEND文を発行する実行ファイル，ビジネス処理をする実行ファイルをそれぞれ分けた方が実行性能が高くなります。ビジネス処理をする実行ファイルは，DLLファイルでも代用できます。.exeファイルにするか.dllファイルにするかは，処理の形態によって次のように使い分けてください。

EXE：処理が続く場合（.exeファイル間でのデータ受け渡しはない）

DLL：処理が単独で閉じる場合（1ウィンドウで閉じる）

また，複数のコンパイル単位のものを合わせて一つの実行ファイルにするときは，各コンパイル単位でオープンを発行しないようにするため，日立COBOLの実行支援の環境変数で，「CBLTERMSHAR=YES」を指定します。「CBLTERMSHAR=YES」は，SENDインタフェースのときだけ有効です。CALLインタフェースでは無効になります。

CALLインタフェースの場合，または「CBLTERMSHAR」をサポートしていないバージョンの日立COBOLを使用している場合で，AP間のオープン引き継ぎをするときは，ユーザが，XMAP3インタフェースエリアの情報を引き継ぐようなコーディングをする必要があります。

注

使用できる日立COBOLについては，「7.2.5(5)　XMAP3で使用できる日立COBOL」を参照してください。

7.1.5　プログラムでの命令とXMAP3の関係

プログラム中で使用されている命令は，具体的にXMAP3をどのような状態にするのか，またプログラミング言語別に，どのような文や関数が使用されているかを示します。

＜この項の構成＞

(1)　プログラム中の命令とXMAP3

(2)　日立COBOLによる命令とXMAP3

(3)　COBOLのCALL文やCの関数として使用する場合

(1)　プログラム中の命令とXMAP3

一般に，プログラムの中で「オープン」「出力」「クローズ」と呼ばれている命令に対して，XMAP3ではどのような状態なのかを次の表に示します。

表7-2　プログラムの命令文とXMAP3

命令文
XMAP3の状態

オープン
XMAP3が使用できる状態になります。
利用するスプールおよびドライバを確保します。

出力
物理マップ名※1，出力先※2，出力データを渡して，印刷要求や実行結果をリターンコードとして返します。

クローズ
XMAP3が使用できない状態になります。
利用していたスプールやドライバを解放します。

注※1

物理マップ名とは，ドローのマップ名で付けた名前にID（マップ名が6文字のときは6A，6H，6Gなど，マップ名が7文字のときはP，L，Gなど）が付いたものです。

注※2

仮想端末名のことです。仮想端末名は，スタンドアロンの場合は表示・印刷セットアップで，C/Sシステム構成の場合はC/Sセットアップで指定します。デフォルトは「PRT001」です。

(2)　日立COBOLによる命令とXMAP3

XMAP3に対する命令を日立COBOLで表現する場合を次の表に示します。

表7-3　日立COBOLでの表現

命令文
日立COBOLでの表現

オープン
明示的にはない。
プログラム中の最初のSEND文が発行された場合，「オープン」を仮定します。

出力
SEND文

クローズ※
DISABLE文

注※

プログラムが終了した場合，DISABLE文がなくても「クローズ」が仮定されます。

(3)　COBOLのCALL文やCの関数として使用する場合

COBOLのCALL文やCなどの関数呼び出しで，「オープン」「出力」「クローズ」命令を実行できます。

7.1.6　帳票出力時のXMAP3とAPの関係

XMAP3から帳票を印刷する場合の，印刷形態とAPのコーディング内容の関係を示します。なお，ここではプログラミング言語として日立COBOLによる命令が使用されていることを仮定します。

＜この項の構成＞

(1)　同じ内容のものを複数枚印刷（コピー印刷）

(2)　同じ帳票レイアウトで中身が異なるものを複数枚印刷

(3)　異なる帳票を交互に印刷

(4)　異なるプリンタに帳票を印刷

(1)　同じ内容のものを複数枚印刷（コピー印刷）

同じ内容のものを複数枚，印刷する場合です。例えば，3枚の帳票を印刷するときは，次の表に示す方法でコーディングします。

注

PDFファイルへ出力する場合，コピー印刷はしません。

表7-4　コピー印刷時のコーディング

分類 | APのコーディング | 備考
シリアルプリンタ | SEND文を3回発行します。 | スプールに同じものを3部入れます。
ページプリンタ | 何部，印刷するかを指定してSEND文を1回発行します。 | プリンタハードウェアの機能を使用してマルチコピーします。スプールの中には1部だけ入れます。

(2)　同じ帳票レイアウトで中身が異なるものを複数枚印刷

マップ名は同じのまま，論理マップ中のデータを変えて，3回SEND文を発行します。

（SEND文の使用例）

(3)　異なる帳票を交互に印刷

それぞれの帳票を印刷するためのSEND文を交互に書きます。

（SEND文の使用例）

(4)　異なるプリンタに帳票を印刷

仮想端末名を別プリンタに割り当てて，それぞれにSEND文を書きます。ただし，スタンドアロンの場合は，途中にDISABLE文などを入れ，一度クローズする必要があります。

7.2　COBOLでの印刷命令

＜この節の構成＞

7.2.1　コーディング前の準備

7.2.2　仮想端末の自動割当て

7.2.3　論理マップの取り込み方法

7.2.4　帳票印刷命令

7.2.5　COBOL開発マネージャを使用したコンパイルと実行のポイント

7.2.6　COBOL開発マネージャでのXMAP3の利用方法

7.2.1　コーディング前の準備

ここでは，XMAP3を使用したシステムでのCOBOLのAPのコーディング方法について説明します。コーディングをする前に，次の準備をしてください。

APを格納するためのフォルダを用意する
ソースプログラムやコンパイル後に生成される作業ファイルを格納するフォルダを用意します。開発環境に合わせてフォルダを分類し，作成位置や名称を決めます。

XMAP3の標準提供ファイルから，必要なファイルをコピーする
XMAP3では，APの作成に必要な登録集原文を標準提供しています。上記で作成したフォルダにコピーするか，登録集原文が格納されているフォルダを日立COBOLのコンパイラオプションの環境変数（CBLLIB）でパスを指定して使用することをお勧めします。このとき，コーディングのひな型であるAPパターンもあわせてコピーしておきます。
標準提供の登録集原文を次に示します。

動的変更テーブル（X3modtbl.cbl）
出力論理マップの初期化に使用する定数や修飾名が指定されています。

インタフェース領域（Jsvwatbl.cbl）
CALL文で帳票を印刷するときにパラメタとして使用するインタフェース領域が指定されています。

7.2.2　仮想端末の自動割当て

C/Sシステム構成の環境で，サーバ上のAPから複数のクライアントPCへ帳票印刷をする場合，仮想端末の自動割当て機能を利用できます。この機能は，C/Sシステム構成の場合だけ利用できる機能です。

仮想端末の自動割当て機能は，サーバAPが各クライアントPCに対応した仮想端末名を意識することなく一つの仮想端末名だけを意識していれば，各クライアントPCにあるXMAP3の印刷サービスが起動されたタイミングで，APから送信された情報を印刷できます。仮想端末の自動割当て機能を利用するときは，サーバ側のC/Sセットアップで，APで指定した自動割当て用の仮想端末名を設定します。

仮想端末の自動割当ての詳細については，マニュアル「XMAP3 開発・実行ガイド」を参照してください。

7.2.3　論理マップの取り込み方法

AP中に論理マップを取り込む場合，COBOLのWORKING-STORAGE SECTION，またはLINKAGE SECTIONにCOPY文を指定します。ただし，論理マップ中に定数を展開しているものについては，LINKAGE SECTIONに取り込めません。

APに論理マップMAP301Oを取り込む例を次に示します。

（例）

7.2.4　帳票印刷命令

APからプリンタに対して帳票を印刷するには，次に示す方法があります。

日立COBOLのSEND文による方法

COBOLのCALL文による方法

＜この項の構成＞

(1)　SEND文による印刷

(2)　CALL文による印刷

(1)　SEND文による印刷

ここでは，日立COBOLのSEND文によって帳票を印刷する方法について，指定例を使用して説明します。なお，詳細については，マニュアル「COBOL2002 言語 拡張仕様編」またはマニュアル「COBOL85 言語」を参照してください。

(a)　通信記述項

帳票の印刷に必要な情報をCOMMUNICATION SECTION中に指定します。

（例）

（例の説明）

通信記述名
SEND文で使用する名称を定義します。ここでは例として「PRT」を指定します。
PRT：プリンタ用

通信種別
通信種別を定義します。必ず「FOR OUTPUT WS」と指定してください。

物理マップ名称格納エリア
SEND文で出力する物理マップ名称を格納する領域を定義します。格納するマップ名には，ドローで指定したマップ名に，次に示すIDを付けて格納します。このIDをデバイスIDといいます。

定義対象 | マップ名が6文字のとき | マップ名が7文字のとき
けい線帳票（カット紙／連続紙） | 6A | P
プレプリント帳票（カット紙／連続紙） | 6H | L
網掛け帳票 | 6B | R
グラフィック帳票 | 6G | G
書式オーバレイ | 6G | F

データ有無コード格納エリア
データ有無コードを設定するときにデータ有無コードを格納する領域を定義します。データ有無コードは，最初のSEND文の前に必ず格納しておきます。なお，省略すると(1F)₁₆が仮定されます。

実行状態コード格納エリア
SEND文の実行状態を格納する領域を定義します。AP中でSEND文が正常に処理されたかどうかを判定するときに，この領域を参照します。STATUS KEY句の実行状態コードを次の表に示します。

表7-5　STATUS KEY句の実行状態コード

コード
意味
状態／要因／対処方法

'00000'
正常終了
データの出力が正常に終了しました。

'00008'
論理エラー
COBOLのAPに誤りがあります。APの誤りを調べて修正します。

'10008'
マッピングエラー
帳票データのマッピング中にエラーが発生しました。
STATUS KEY句の指定がない場合，実行を中止します。
STATUS KEY句の指定がある場合，処理を続行します。エラーコードの内容を調査して対処する必要があります※。

'20008'
出力エラー
帳票データの出力中にエラーが発生しました。
STATUS KEY句の指定がない場合，実行を中止します。
STATUS KEY句の指定がある場合，処理を続行します。エラーコードの内容を調査して対処する必要があります※。

注※

エラーコードの内容については，「付録E　リターンコードの詳細」を参照してください。

仮想端末名格納エリア
出力する端末を指定したい場合に，端末に対応づけてある仮想端末名を格納する領域を定義します。

帳票端末名：プリンタ用
帳票端末名には，最初のSEND文の前に，次に示す仮想端末名称を格納しておきます。

1台目の標準プリンタ：PRT001

2台目以降のプリンタ：PRT002～（環境設定が必要）

なお，AP中で仮想端末名を指定していない場合，仮想端末名の先頭1バイト目にスペースを指定している場合，または「SYMBOLIC TERMINAL IS」を省略している場合，環境変数「CBLPRNTID」で指定された仮想端末名称が仮定されます。環境変数「CBLPRNTID」も指定されていない場合は，仮想端末として画面を仮定して動作するため，デバイス不一致（(1400)₁₆）エラーとなります。
また，環境変数「CBLPRNT_xxx」を指定することで，出力先の仮想端末名称を変更することもできます。
CBLPRNTID，CBLPRNT_xxxの詳細については，マニュアル「COBOL2002 ユーザーズガイド」またはマニュアル「COBOL85 ユーザーズガイド」を参照してください。

(b)　SEND文

プリンタへの帳票印刷をします。

（例）

(c)　DISABLE文

APで帳票印刷をする場合，プログラム終了までプリンタを解放しません。このため，印刷していないときには，DISABLE文を使用してプリンタを解放し，ほかのプログラムで印刷できるようにします。

（例）

(d)　その他

XMAP3オープンの引き継ぎ

XMAP3に対するオープン命令は，最初のSEND文が発行されたときに認識されます。また，APが終了する場合は，クローズ命令が発行されたと仮定されます。

別々にコンパイルしたAP間では，XMAP3のオープン状態を引き継げます。AP間でオープンを引き継ぐ方法については，「7.2.5　COBOL開発マネージャを使用したコンパイルと実行のポイント」を参照してください。

(2)　CALL文による印刷

ここでは，COBOLのCALLインタフェースによってマッピングライブラリを使用する場合の説明をします。

(a)　環境部

CALLインタフェースを使用する場合の環境部（ENVIRONMENT DIVISION）の定義を次に示します。

環境部に上記の指定をした場合には，コンパイル時に次の注意が必要です。

コンパイラオプションに次の指定をします。

COBOL2002の場合

'-Comp5'

'-JPN,Alnum'

COBOL85の場合

'-X5'

'-Na'

リンカオプションに次の指定をします。

リンカオプション：指定しない

インポートライブラリ／ユーザ指定ライブラリ：
XMAP3インストール先¥Lib¥X3mwdr32.lib
（COBOL2002，COBOL85 Version 7およびVersion 6の場合）
XMAP3インストール先¥LIB¥V3Compatible¥x3mwdr32.lib
（COBOL85 Version 5.0の場合）

環境部に上記のコーディングを追加しない場合は，コンパイル時に次の指定をする必要があります。

エディタを使用してファイルを作成します。

ファイル内容：jsvwadrv

ファイル名　：XXXX.cbw（XXXXは任意）

ファイルの格納場所：APと同じディレクトリ（またはフォルダ）

コンパイラオプションに次の指定をします。

COBOL2002の場合

'-Comp5'

'-StdCall'

'-JPN,Alnum'

COBOL85の場合

'-X5'

'-Cp'

'-Na'

stdcall呼び出し指示ファイル名には，1.で作成したファイル名を指定します。

リンカオプションに次の内容を指定します。

リンカオプション：指定しない

インポートライブラリ／ユーザ指定ライブラリ：
XMAP3インストール先¥Lib¥X3mwdr32.lib
（COBOL2002，COBOL85 Version 7およびVersion 6の場合）
XMAP3インストール先¥LIB¥V3Compatible¥x3mwdr32.lib
（COBOL85 Version 5.0の場合）

(b)　CALL文の発行順序

マッピングライブラリの機能と命令の発行順序を次の図に示します。

図7-4　マッピングライブラリの機能と命令の発行順序

(c)　CALL命令

CALL命令の形式を次に示します。

XMAP-COM
共通インタフェース領域を指定します。共通インタフェース領域の形式を次の表に示します。この領域は，帳票を出力したい端末単位に作成し，オープンしたときの領域をクローズ要求まで引き継いで使用します。また，次に示す各要求時にマッピング，および出力に必要な情報をセットします。

オープン要求時：仮想端末名，通信種別を指定します。

出力要求時：物理マップ名称を指定します。

表7-6　共通インタフェース領域の形式（XMAP-COM）

データ項目名
長さ
（位置）
データ形式
指定内容（データ名）

アイキャッチャ
4
X(4)
'＊XP△'とします（XMAP-COM-ID）

リターンコード
2(4)
9(4)COMP-5
2進形式で格納します（XMAP-COM-RTN）

リターンコード詳細
2(6)
9(4)COMP-5
2進形式で格納します（XMAP-COM-RSN）

未使用
3(8)
X(3)
(00)₁₆とします（XMAP-COM-RSV1）

id区分
1(11)
X
必ず'I'とします（XMAP-COM-ITYPE）

仮想端末名称
8(12)
X(8)
仮想端末定義ファイルで指定した名称を左詰めで指定し，残りは空白とします
（XMAP-COM-TNAME）※

未使用
4(20)
X(4)
(00)₁₆とします（XMAP-COM-RSV2）

通信種別
4(24)
X(4)
プリンタ要求時は'OWS△'とします
（XMAP-COM-MSG）

未使用
44(28)
X(44)
(00)₁₆とします（XMAP-COM-RSV3）

マップ名称
8(72)
X(8)
物理マップ名を左詰めでデバイスID付きで指定し，残りは空白とします
（XMAP-COM-MAPNAME）

未使用
8(80)
X(8)
(00)₁₆とします（XMAP-COM-RSV4）

未使用
4(88)
S9(8)COMP-5
0とします（XMAP-COM-INLNG）

未使用
68(92)
X(68)
(00)₁₆とします（XMAP-COM-RSV5）

注※

仮想端末名を省略できるのは，画面定義時だけです。

XMAP-REQ
要求インタフェース領域を指定します。要求インタフェース領域の形式を次の表に示します。この領域は，必ず指定します。この領域に指定した内容によって，要求種別が決まります。

表7-7　要求インタフェース領域の形式（XMAP-REQ）

データ項目名
長さ
（位置）
データ形式
指定内容（データ名）

要求種別
4
X(4)
'OPEN'：オープン要求
'CLOS'：クローズ要求
'SEND'：出力要求
（XMAP-REQ-TYPE）

未使用
1(4)
X
'△'とします（XMAP-REQ-OPT1）

SEND
オプション
1(5)
X
'1'：出力要求
'△'：上記以外（XMAP-REQ-OPT2）

未使用
2(6)
X(2)
'△△'とします（XMAP-REQ-RSV）

データ名3
次に示す各要求に対応する情報を指定します。

出力要求時：出力論理マップを指定します。

クローズ要求時：0を指定します。

オープン要求時：オープンインタフェース領域を指定します。オープンインタフェース領域の形式を次の表に示します。この領域は，必ず指定します。

表7-8　オープンインタフェース領域の形式（XMAP-OPN）

データ項目名
長さ
（位置）
データ形式
指定内容（データ名）

データ有無コード
使用選択
1
X
'1'：データ有無コードを指定します
その他：データ有無コードを指定しません（標準値「1F」を仮定）
（XMAP-OPN-DCODE-SET）

データ有無コード
1(1)
X
データ有無コードを指定する場合，2桁の16進数（00～FF）で指定します
（XMAP-OPN-DCODE）

未使用
2(6)
X(2)
'△△'とします（XMAP-OPN-RSV）

なお，データ有無コード使用選択項目でデータ有無コードを無効にする指定をした場合は，標準値「1F」が仮定されます。

データ名4
次に示す各要求に対応する情報を指定します。

出力要求時：0を指定します。

クローズ要求時：0を指定します。

オープン要求時：0を指定します。

(d)　インタフェース領域の取り込み方法

XMAP3が提供しているインタフェース領域（Jsvwatbl.cbl）をAPに取り込むには，COPY文を使用します。COPY文は，WORKING-STORAGE SECTION，またはLINKAGE SECTIONに指定します。また，コンパイルする前にJsvwatbl.cblのフォルダ名をCBLLIBに設定しておきます。インタフェース領域を次の図に示します。

図7-5　インタフェース領域

(e)　オープン要求

CALL命令を使用する場合，帳票を印字したいプリンタに付けた仮想端末名称単位にオープン要求をします。複数の仮想端末（プリンタ）をオープン要求する場合，インタフェース領域は，各端末に用意します。一つのAP（プロセス）内で同時にオープンできる端末数の上限は15個です。

（例）

(f)　出力要求

オープン要求した仮想端末へ帳票印刷をします。オープン要求で使用した共通インタフェース領域を引き継いで使用します。

（例）

(g)　クローズ要求

仮想端末をクローズします。オープン要求，および出力要求で使用したインタフェース領域を引き継いで使用します。

（例）

7.2.5　COBOL開発マネージャを使用したコンパイルと実行のポイント

COBOL開発マネージャを使用したコンパイルと実行のポイントについて説明します。

＜この項の構成＞

(1)　COBOL開発マネージャの概要

(2)　コンパイル時のポイント

(3)　リンケージ時のポイント

(4)　実行時のポイント

(5)　XMAP3で使用できる日立COBOL

(1)　COBOL開発マネージャの概要

COBOL開発マネージャは，日立COBOLから提供されているCOBOLプログラムの統合的な開発環境です。COBOLでAPを開発するときに必要なCOBOLソースや登録集原文などの資産を依存関係に従って管理し，コンパイルなどの作業を自動化します。

COBOL開発マネージャを使用する場合，次の手順でAPを作成します。

プロジェクトの作成

資産の登録，定義

ビルド，リビルド

次に，それぞれの手順について説明します。

(a)　プロジェクトの作成

COBOL開発マネージャでは，一つの.exeまたは.dllファイルの開発単位を「プロジェクト」と呼んでいます。COBOL開発マネージャを使用してAPを作成する場合，このプロジェクトを定義する必要があります。

(b)　資産の登録，定義

COBOL開発マネージャでは，プロジェクトで作成される実行のファイル（.exe，または.dll）やそれを構成する要素を「資産」と呼んでいます。また，COBOL開発マネージャでは，その依存関係を定義する必要があります。

資産の依存関係を定義すると，COBOL開発マネージャではどのように表されるかを次の図に示します。

図7-6　COBOL2002，COBOL85 Version 7およびVersion 6の場合

図7-7　COBOL85 Version 5.0の場合

(c)　ビルド，リビルド

COBOL開発マネージャでは，「7.2.5(1)(b)　資産の登録，定義」で定義した資産の依存関係に基づいてコンパイルとリンケージをします。

その方法として，各資産の依存関係とタイムスタンプ（ファイル作成／修正日時）の前後関係に基づいてコンパイルとリンケージをする「ビルド」があります。例えば，「実行ファイルの作成／修正日時」より実行ファイルが取り込んでいる「COBOLソースの作成／修正日時」の方が新しい場合にコンパイルとリンケージが実行されます。

また，タイムスタンプには関係なくコンパイルとリンケージをする「リビルド」もあります。

(2)　コンパイル時のポイント

(a)　XMAP3と連携するためのコンパイラオプションを指定する

指定が必要なコンパイラオプションを次に示します。

COBOL2002の場合

-Comp5：COBOLプログラム中のCOMP-5を利用できるようにするオプション

-JPN,Alnum：論理マップ内で日本語項目を扱えるようにするオプション

COBOL85の場合

-X5：COBOLプログラム中のCOMP-5を利用できるようにするオプション

-Na：論理マップ内で日本語項目を扱えるようにするオプション

(b)　AP間でオープンを引き継ぐ

APを分割してコンパイルするときは，コンパイル単位でXMAP3のオープン・クローズ要求が毎回発行されないようにします。日立COBOLでは，日立COBOLの実行支援の環境変数で，「CBLTERMSHAR=YES」を指定して，オープンを各プログラムで引き継ぐようにします。「CBLTERMSHAR=YES」は，SENDインタフェースのときだけ有効です。CALLインタフェースでは無効になります。

なお，使用できる日立COBOLについては，「7.2.5(5)　XMAP3で使用できる日立COBOL」を参照してください。

(c)　登録集原文を格納するフォルダを確認

APのCOPY文に，論理マップ（マップ生成時に付けられた名称）を間違って指定してないか確認してください。

論理マップがフォルダ中に用意されているか確認してください。ソースプログラムと登録集原文を同じフォルダで管理している場合は，論理マップが同一フォルダに格納されていないことが考えられます。また，ソースプログラムと登録集原文を別のフォルダで管理している場合は，環境変数（CBLLIB）に指定した登録集原文のフォルダに誤りがあったり，指定したフォルダに論理マップが格納されてなかったりすることが考えられます。なお，フォルダの指定については，ヘルプを参照してください。

データ名，または変数名に不当な文字を指定していることが考えられます。データ名，および変数名に不当な文字をAPで指定していないか確認してください。

(3)　リンケージ時のポイント

(a)　XMAP3使用時のリンケージオプションを指定する

インポートライブラリ／ユーザ作成ライブラリに次のファイルを指定します。

COBOL2002，COBOL85 Version 7およびVersion 6の場合

XMAP3インストール先¥Lib¥X3mwdr32.lib

COBOL85 Version 5.0の場合

XMAP3インストール先¥Lib¥V3Compatible¥X3mwdr32.lib

(b)　XMAP3のライブラリを設定する

コンパイル環境（CALL文のインタフェースを使用するAPの場合は，リンケージ環境）のPCには，XMAP3の開発環境をインストールしておく必要があります。

(4)　実行時のポイント

APを実行する前に，物理マップを実行可能ファイルと同じフォルダに格納してください。

また，マップパスを指定する方法もあります。マップパスの指定については，マニュアル「XMAP3 開発・実行ガイド」を参照してください。

(5)　XMAP3で使用できる日立COBOL

XMAP3で使用できる日立COBOLは，COBOL2002，COBOL85 Version 5.0，Version 6，およびVersion 7です。ただし，使用できる日立COBOLは，OSによって異なります。XMAP3で使用できる日立COBOLを，OSごとに次の表に示します。

表7-9　使用できる日立COBOL

OS名 | COBOL2002 | COBOL85
Version 5.0 | Version 6 | Version 7
Windows 95 | × | ○ | ○ | ×
Windows 98 | ○ | ○※1 | ○ | ○
Windows Me | ○ | × | ○※2 | ○
Windows NT 4.0 | ○ | ○ | ○ | ○
Windows 2000 | ○ | × | ○※3 | ○
Windows XP | ○ | × | × | ○
Windows Server 2003 | ○※4 | × | × | ×
Windows Server 2003 x64 | ○※4 | × | × | ×

（凡例）

○：使用できる。

×：使用できない。

注※1

使用できるバージョンは05-01以降となります。

注※2

使用できるバージョンは06-03以降となります。

注※3

使用できるバージョンはOSによって異なります。

・Windows 2000 Server，およびWindows 2000 Professional：06-01以降

・Windows 2000 Advanced Server：06-03以降

・Windows 2000 Datacenter Server：06-04以降

注※4

使用できるバージョンの詳細については，関連するプログラムプロダクトでご確認ください。

7.2.6　COBOL開発マネージャでのXMAP3の利用方法

COBOL開発マネージャとXMAP3との両方をインストールしている場合，COBOL開発マネージャからXMAP3の機能を呼び出せます。XMAP3の資産を登録，定義すれば，ビルド，またはリビルドによってコンパイルとリンケージをしてAPを作成できます。

また，AP作成時にソースプログラムや登録集原文を格納したりするフォルダを作成しておいてください。

次に，COBOL開発マネージャからXMAP3を利用する方法について説明します。

＜この項の構成＞

(1)　COBOL開発マネージャ上での資産の登録，定義

(2)　マップ定義ファイルの作成と修正

(3)　マップ生成

(1)　COBOL開発マネージャ上での資産の登録，定義

COBOL開発マネージャ上では，XMAP3の資産を扱う場合，XMAP3でのファイル名の規則に従います。また，XMAP3の「マップ名」を基に作成します。

XMAP3の資産をCOBOL開発マネージャで利用するときのファイル名称の規則を次の表に示します。

表7-10　XMAP3の資産をCOBOL開発マネージャで利用するときのファイル名称の規則

XMAP3の
資産
COBOL開発マネージャでの名称
COBOL開発マネージャで付けるファイル名称
内容

マップ定義
マップ定義
マップ名.imp
ユーザが定義した帳票の情報を格納している。定義を修正するときにはこのファイル名を指定。

論理マップ
登録集原文
マップ名＋O.cbl
APで取り込む出力情報の登録原文集。

物理マップ
－
マップ名＋XX※.pmp
ユーザが定義した帳票のうち，APではアクセスしない，固定部分の情報。
COBOL開発マネージャの管理対象外。

（凡例）

－：なし。

注※

XXは，デバイスIDを示します。

また，COBOL開発マネージャからXMAP3の資産を登録，定義した場合，どのように表されるかを次の図に示します。

図7-8　COBOL2002，COBOL85 Version 7およびVersion 6の場合

図7-9　COBOL85 Version 5.0の場合

これを基にして，XMAP3で作成した帳票をCOBOL開発マネージャで利用してAPを作成する場合の例を次の図に示します。

図7-10　COBOL2002，COBOL85 Version 7およびVersion 6の場合

図7-11　COBOL85 Version 5.0の場合

《注意》

ファイル名は，表7-10の規則に従って定義する必要があります。

ファイル名は，XMAP3のマップ名を使用して作成してください。XMAP3のファイル名を使用しないと，上記に示す資産定義と一致しなくなります。

このように資産を登録，定義しておけば，定義ファイルに変更があった場合，ビルドによってコンパイル，リンケージされ，自動的に登録集原文（論理マップ）が生成し直されます。

(2)　マップ定義ファイルの作成と修正

マップ定義ファイルを作成，または修正したい場合，次に示すどちらかの操作をすることでXMAP3の帳票定義ができます。

COBOL開発マネージャ上で，マップ定義ファイル（xxx.imp）をダブルクリックします。

COBOL開発マネージャ上で，マップ定義ファイル（xxx.imp）をクリックして，［ツール］－［マップ定義］を選びます（COBOL85 Version 5.0の場合だけ）。

(3)　マップ生成

COBOL開発マネージャのビルド，またはリビルドを使用しないで単独にマップ生成をする場合，次の操作をすることでマップ生成ができます。生成される論理マップや物理マップのファイル名については，「表7-10　XMAP3の資産をCOBOL開発マネージャで利用するときのファイル名称の規則」を参照してください。

マップ生成時に使用するリトルエンディアン，およびビッグエンディアンは，オプションで指定してください。

《操作方法》

COBOL2002，COBOL85 Version 7およびVersion 6の場合

特定のマップ定義ファイルからマップ生成をするときにだけ有効とする場合
COBOL開発マネージャ上で，マップ定義ファイル（xxx.imp）をクリックして，［ファイル］－［ファイルの設定］を選択し，必要なコンパイルオプションを指定します。

すべてのマップ定義ファイルからマップ生成をするときに有効とする場合
COBOL開発マネージャ上で，［プロジェクト］－［プロジェクトの設定］を選択し，「製品連携」タブ※で必要なコンパイルオプションを指定します。

注※

COBOL2002の場合，「最適化」タブとなります。

COBOL85 Version 5.0の場合

特定のマップ定義ファイルからマップ生成をするときにだけ有効とする場合
COBOL開発マネージャ上で，マップ定義ファイル（xxx.imp）をクリックして，［プロジェクト］－［単一生成オプション］を選択し，必要なコンパイルオプションを指定します。

すべてのマップ定義ファイルからマップ生成をするときに有効とする場合
COBOL開発マネージャ上で，［オプション］－［マップ生成］を選択します。

《設定形式》

［-BigEndian,Bin］（COBOL2002の場合）

［-Bb］（COBOL85の場合）

《説明》

-BigEndian,Binまたは-Bbは，ビッグエンディアンを指定することを示します。指定がない場合，リトルエンディアンが仮定されます。

7.3　C言語での印刷命令

この節では，AP中に論理マップを取り込む方法，およびC言語インタフェースによるマッピングライブラリ用のjsvwadrv関数の使用方法を説明します。従来のC言語にないクラスなどの概念を持ったC++でAPを作成する場合には，「7.4　汎用APインタフェース」を参照してください。

＜この節の構成＞

7.3.1　仮想端末の自動割当て

7.3.2　論理マップの取り込み方法

7.3.3　帳票印刷命令

7.3.4　C言語固有のコーディング例

7.3.1　仮想端末の自動割当て

C/Sシステム構成の環境で，サーバ上のAPから複数のクライアントPCへ帳票印刷をする場合，仮想端末の自動割当て機能を利用できます。この機能は，C/Sシステム構成の場合だけ利用できる機能です。

仮想端末の自動割当て機能は，サーバAPが各クライアントPCに対応した仮想端末名を意識することなく一つの仮想端末名だけを意識していれば，各クライアントPCにあるXMAP3の印刷サービスが起動されたタイミングで，APから送信された情報を印刷できます。仮想端末の自動割当て機能を利用するときは，サーバ側のC/Sセットアップで，APで指定した自動割当て用の仮想端末名を設定します。

仮想端末の自動割当ての詳細については，マニュアル「XMAP3 開発・実行ガイド」を参照してください。

7.3.2　論理マップの取り込み方法

AP中に論理マップを取り込むには，#include指示語を使用します。

APに論理マップMAP003O.hを取り込む例を次に示します。

#include指示語によってAPに実領域が取られます。

7.3.3　帳票印刷命令

＜この項の構成＞

(1)　jsvwadrv関数の発行順序

(2)　jsvwadrv関数

(3)　リンケージ時の注意事項

(1)　jsvwadrv関数の発行順序

jsvwadrv関数の機能と発行順序を次の図に示します。

図7-12　jsvwadrv関数の機能と発行順序

(2)　jsvwadrv関数

jsvwadrv関数の形式を次に示します。

XMAP_COMアドレス
共通インタフェース領域のアドレスを指定します。形式の詳細を次の表に示します。この領域は，帳票を出力したい端末単位に作成し，オープンしたときの領域をクローズ要求まで引き継いで使用します。また，次に示す各要求時にマッピング，および出力に必要な情報をセットします。

オープン要求時：仮想端末名，通信種別を指定します。

出力要求時：物理マップ名称を指定します。

表7-11　共通インタフェース領域の形式（XMAP_COM）

データ項目名
長さ
（位置）
データ形式
指定内容（データ名）

アイキャッチャ
4
char[4]
'＊XP△'とします（xmap_com_id）

リターンコード
2(4)
unsigned short
2進形式で格納します（xmap_com_rtn）※

リターンコード
詳細
2(6)
unsigned short
2進形式で格納します（xmap_com_rsn）※

未使用
3(8)
char[3]
(00)₁₆とします（xmap_com_rsv1）

id区分
1(11)
char
必ず'I'とします（xmap_com_itype）

仮想端末名
8(12)
char[8]
仮想端末定義ファイルで指定した仮想端末名称を左詰めで指定し，残りは空白とします（xmap_com_tname）

未使用
4(20)
char[4]
(00)₁₆とします（xmap_com_rsv2）

通信種別
4(24)
char[4]
プリンタ要求時は'OWS△'とします
（xmap_com_msg）

未使用
44(28)
char[44]
(00)₁₆とします（xmap_com_rsv3）

マップ名称
8(72)
char[8]
物理マップ名を左詰めでデバイスID付きで指定し，残りは空白とします
（xmap_com_mapname）

未使用
8(80)
char[8]
(00)₁₆とします（xmap_com_rsv4）

未使用
4(88)
long
(00)₁₆とします（xmap_com_inlng）

未使用
68(92)
char[68]
(00)₁₆とします（xmap_com_rsv5）

注※

jsvwadrv関数のリターン値が12の場合，リターンコードおよびリターンコード詳細には何も設定できません。

XMAP_REQアドレス
要求インタフェース領域のアドレスを指定します。形式を次の表に示します。この領域は，必ず指定してください。この領域で指定した内容によって要求種別が決まります。

表7-12　要求インタフェース領域の形式（XMAP_REQ）

データ項目名
長さ
（位置）
データ形式
指定内容（データ名）

要求種別
4
char[4]
'OPEN'：オープン要求
'CLOS'：クローズ要求
'SEND'：出力要求（xmap_req_type）

未使用
1(4)
char
'△'とします（xmap_req_opt1）

SEND
オプション
1(5)
char
'1'：出力要求時
'△'：上記以外（xmap_req_opt2）

未使用
2(6)
char[2]
'△△'とします（xmap_req_rsv）

パラメタ3

出力要求時：出力論理マップのアドレスを指定します。

オープン要求時：オープンインタフェース領域のアドレスを指定します。

クローズ要求時：0を指定します。

オープンインタフェース領域の詳細を次の表に示します。

表7-13　オープンインタフェース領域の形式（XMAP_OPN）

データ項目名
長さ
（位置）
データ形式
指定内容（データ名）

データ有無コード使用選択
1
char
'1'：データ有無コードを指定します
その他：データ有無コードを指定しません（標準値「1F」を仮定）
（xmap_opn_dcode_set）

データ有無コード
1(1)
unsigned char
データ有無コードを指定する場合，2桁の16進数（00～FF）で指定します
（xmap_opn_dcode）

未使用
2(2)
char[2]
'△△'とします（xmap_opn_rsv）

なお，データ有無コード使用選択項目でデータ有無コードを無効にする指定をした場合は，標準値「1F」が仮定されます。

パラメタ4
各要求時ともに0を指定します。

(a)　リターン情報

共通インタフェース領域のxmap_com_rtnにリターン値が設定されます。リターン値を次に示します。

0：正常終了

4，8：異常終了（詳細については，共通インタフェース領域のxmap_com_rsnに設定される）

12：パラメタ不正

(b)　インタフェーステーブルの取り込み方法

XMAP3で用意しているインタフェーステーブル（jsvwatbl.h）をAPに取り込む場合，#include指示語を使用します。

ただし，jsvwatbl.h中のインタフェーステーブルは，構造体の形式などを定義しており，#include指示語によってAPに実領域は取られません。このため，AP中でインタフェース領域を取る必要があります。インタフェースを取る例を次に示します。

（例）

インタフェーステーブルを次の図に示します。

図7-13　インタフェーステーブル

(c)　オープン要求

jsvwadrv関数を使用する場合，帳票を出力したい端末に付けた仮想端末名称単位にオープン要求をします。複数の仮想端末をオープン要求する場合，インタフェース領域は各仮想端末に用意する必要があります。一つのAP（プロセス）内で同時にオープンできる端末数の上限は15個です。

（例）

(d)　クローズ要求

仮想端末をクローズします。オープン要求，および出力要求で使用したインタフェースを引き継いで使用します。

（例）

(e)　出力要求

オープン要求した仮想端末へ帳票を出力します。オープン要求で使用した共通インタフェース領域を引き継いで使用します。

（例）

(3)　リンケージ時の注意事項

ライブラリには，次に示すファイルを指定する必要があります。

Visual C++ .NET，Visual C++ 6.0の場合

XMAP3インストール先¥Lib¥X3mwdr32.lib

Visual C++ 5.0の場合

XMAP3インストール先¥Lib¥V3Compatible¥X3mwdr32.lib

7.3.4　C言語固有のコーディング例

C言語にはCOBOLのような編集項目（PIC Z,9）または文字項目（PIC X）という概念がありません。そのため，数を扱う場合，そのデータが文字（数字）か数値かをユーザが意識してAPを作成する必要があります。また，コンマを付けたりする出力数字編集もAPでする必要があります。

この項では，C言語でAPを作成する場合に注意が必要な固有のコーディングについて説明します。

＜この項の構成＞

(1)　memsetの使用

(2)　memcpyの使用

(3)　文字列変換関数atolまたはatofの使用

(4)　出力関数sprintfの使用

(1)　memsetの使用

エリアの一括クリアには，memsetを使用します。なお，エリアサイズを求めるには，sizeof演算子を使用します。

（例）

出力項目を空白でクリアする

(2)　memcpyの使用

データの一括コピーには，memcpyを使用します。

（例）

項目属性に'PROT'を設定する

(3)　文字列変換関数atolまたはatofの使用

数字から数値への変換には，文字列変換関数atolまたはatofを使用します。

（例）

入力論理マップMAP003中の項目（char MAP003_SU1_I[5];）に設定されている数字データを数値データに変換する

(4)　出力関数sprintfの使用

数値から数字への変換には，書式付き出力関数sprintfを使用します。

（例）

数値を文字に変換して出力論理マップの項目（char MAP003_GOUKEI_O[15];）に格納して計算結果などを画面に表示する

7.4　汎用APインタフェース

Windows専用の汎用入力関数について説明します。また，汎用関数を使用してAP（Visual Basic，AccessおよびDelphi）で印刷する方法について説明します。汎用関数は，C言語からも使用できます。

＜この節の構成＞

7.4.1　関数の機能概要

7.4.2　汎用関数を使用した場合のC言語での印刷方法

7.4.3　Visual BasicおよびAccessでの印刷方法

7.4.4　Delphiでの印刷方法

7.4.5　文字編集DLL

7.4.1　関数の機能概要

XMAP3を呼び出すための汎用APインタフェースを次に示します。以降，C言語ベースの記述で説明します。

関数 | 機能概要 | 備考
XmapDrvCreateOpen | ドライバ起動，仮想端末オープン（プリンタ） | オープン要求関数
XmapDrvClose | 仮想端末クローズ，ドライバ解放 | クローズ要求関数
XmapDrvSend | 帳票の出力 | なし
XmapDrvGetError | エラーコードの詳細を取得
XmapDrvCreate | ドライバ起動 | オープン要求関数
XmapDrvOpen | 端末オープン | オープン要求関数
XmapDrvSetDataCode | データ有無コードの設定 | オープン制御関数

＜この項の構成＞

(1)　関数の発行順序

(2)　XmapDrvCreateOpen関数

(3)　XmapDrvClose関数

(4)　XmapDrvSend関数

(5)　XmapDrvGetError関数

(6)　XmapDrvCreate関数

(7)　XmapDrvOpen関数

(8)　XmapDrvSetDataCode関数

(1)　関数の発行順序

関数の発行順序を次に示します。

(2)　XmapDrvCreateOpen関数

ドライバを起動し，仮想端末をオープンします。一つのAP（プロセス）内で同時にオープンできる端末数の上限は15個です。

データ有無コードには標準値「1F」が仮定されます。

(a)　形式の説明

仮想端末名称（tname）
仮想端末名を指定します。仮想端末名称（8バイト以下，9バイト以降は切り捨て）には，最後にNULLで終わる文字列を指定してください。

(b)　リターン情報

1以上：正常終了（仮想端末識別子）

0：異常終了

(3)　XmapDrvClose関数

仮想端末をクローズし，ドライバを解放します。

(a)　形式の説明

仮想端末識別子（termid）
オープン要求関数の戻り値を指定します。

(b)　リターン情報

0：正常終了

-1：異常終了

(4)　XmapDrvSend関数

帳票を出力します。

(a)　形式の説明

仮想端末識別子（termid）
オープン要求関数の戻り値を指定します。

物理マップ名称（pmpname）
出力する物理マップ名称を指定します。

出力論理マップ（olog）
出力論理セグメントを指定します。

(b)　リターン情報

0： 正常終了

-1： 異常終了

(5)　XmapDrvGetError関数

直前に発行した関数のエラー詳細を取得します。

(a)　リターン情報

0以上：正常終了（詳細エラーコード）

(6)　XmapDrvCreate関数

ドライバを起動します。

(a)　リターン情報

1以上：正常終了（仮想端末識別子）

0：異常終了

(7)　XmapDrvOpen関数

仮想端末をオープンします。一つのAP（プロセス）内で同時にオープンできる端末数の上限は15個です。

(a)　形式の説明

仮想端末識別子（termid）
XmapDrvCreateの戻り値を指定します。

仮想端末名称（tname）
仮想端末定義ファイルで指定した名称を指定します。

(b)　リターン情報

0：正常終了

-1：異常終了

(8)　XmapDrvSetDataCode関数

データの有無コードを設定します。この関数を発行しない場合，データ有無コードには標準値「1F」が仮定されます。

(a)　形式の説明

仮想端末識別子（termid）
オープン要求関数の戻り値を指定します。

データ有無コード（code）
データ有無コード（(00)₁₆～(1F)₁₆，または(FF)₁₆）を設定します。データ有無コードは，すべてのAPにかかわるコードのため，できるだけ標準値（(1F)₁₆）を利用することをお勧めします。

(b)　リターン情報

0：正常終了

7.4.2　汎用関数を使用した場合のC言語での印刷方法

汎用関数を使用した場合のC言語での印刷方法について説明します。

＜この項の構成＞

(1)　DLLの呼び出し

(1)　DLLの呼び出し

汎用APインタフェースでは，XMAP3が提供するDLLを使用します。このため，インタフェース宣言ファイル，およびリンケージライブラリを取り込む必要があります。

インタフェース宣言ファイルを取り込みます。

インタフェース宣言ファイルの格納先

XMAP3インストール先¥Include¥X3mwgd32.h

リンケージライブラリを取り込みます。リンケージライブラリの格納先を次に示します。

Visual C++ .NET，Visual C++ 6.0の場合

XMAP3インストール先¥Lib¥X3mwgd32.lib

Visual C++ 5.0の場合

XMAP3インストール先¥Lib¥V3Compatible¥X3mwgd32.lib

7.4.3　Visual BasicおよびAccessでの印刷方法

Visual BasicおよびAccessでの印刷方法について説明します。

＜この項の構成＞

(1)　論理マップの再定義

(2)　DLLの呼び出し

(1)　論理マップの再定義

XMAP3では，Visual BasicおよびAccess用の論理マップは生成できません。このため，C言語の論理マップを生成し，これを参照してVisual BasicまたはAccess用に論理マップを再定義する必要があります。ただし，Visual BasicとAccessの論理マップの再定義内容は同じです。

XmapDrvSend関数を使用する場合，再定義した論理マップの先頭2バイトには，正しい論理マップの長さが指定されている必要があります。論理マップの長さについては，再定義元の論理マップを参考にしてください。

C言語と，Visual BasicおよびAccessの変数型の互換表を次の表に示します。

表7-14　C言語と，Visual BasicおよびAccessの対応

C言語
Visual Basic，Access

unsigned char 項目名;
項目名 As Byte

short 項目名;
項目名 As Integer

long項目名;
項目名 As Long

struct {
　　　　項目定義
　　　　　　：
} 実体名;
Type 構造体名
　　　　項目定義
　　　　　　：
End Type
実体名 As 構造体名

unsigned char 項目名[10];
項目名(9) As Byte

(2)　DLLの呼び出し

汎用APインタフェースでは，XMAP3が提供するDLLを使用するため，インタフェース宣言ファイルを取り込む必要があります。Visual Basicでの，インタフェース宣言ファイルの取り込む例を次に示します。

［プロジェクト］－［ファイルの追加］を選択し，インタフェーステーブルを指定します。
x3mwgd32.bas‥‥インタフェース宣言ファイル

7.4.4　Delphiでの印刷方法

Delphiでの印刷方法について説明します。

＜この項の構成＞

(1)　論理マップの再定義

(2)　DLLの呼び出し

(1)　論理マップの再定義

XMAP3では，Delphi用の論理マップは生成できません。このため，C言語の論理マップを生成し，これを参照してDelphi用の論理マップを再定義する必要があります。

XmapDrvSend関数を使用する場合，再定義した論理マップの先頭2バイトには，正しい論理マップの長さが指定されている必要があります。論理マップの長さについては，再定義元の論理マップを参考にしてください。

C言語とDelphiの変数型の互換表を次の表に示します。

表7-15　C言語とDelphiの対応

C言語
Delphi

unsigned char 項目名;
項目名：Char;

short 項目名;
項目名：Short;

long項目名;
項目名：Integer;

struct {
　　　　項目定義
　　　　　　：
} 実体名;
構造体 = packed record
　　　　項目定義
　　　　　　：
End;
実体名：構造体名;

unsigned char 項目名[10];
実体名：array[0..9] of Char;

注

構造体名は，Typeセクションに定義する必要があります。

(2)　DLLの呼び出し

汎用APインタフェースでは，XMAP3が提供するDLLを使用するため，インタフェース宣言ファイルを取り込む必要があります。インタフェース宣言ファイルを取り込む例を次に示します。

インタフェース宣言ファイル「X3mwgd32.pas」をカレントフォルダにコピーします。

［プロジェクト］－［オプション］を選択し，「ディレクトリ／条件」の検索パスを指定します。

7.4.5　文字編集DLL

＜この項の構成＞

(1)　ファイルの取り込み

(2)　数字から数値に変換

(3)　数値から数字に変換

(4)　右寄せ配置の指定

(5)　左寄せ配置の指定

(1)　ファイルの取り込み

(a)　汎用関数を使用した場合のC言語でのファイルの取り込み

汎用APインタフェースでは，XMAP3が提供するDLLを使用するため，インタフェース宣言ファイル，およびリンケージライブラリを取り込む必要があります。

インタフェース宣言ファイルを取り込みます。

インタフェース宣言ファイルの格納先

XMAP3インストール先¥Include¥X3mwst32.h

リンケージライブラリを取り込みます。リンケージライブラリの格納先を次に示します。

Visual C++ .NET，Visual C++ 6.0の場合

XMAP3インストール先¥Lib¥X3mwst32.lib

Visual C++ 5.0の場合

XMAP3インストール先¥Lib¥V3Compatible¥X3mwst32.lib

(b)　Visual BasicおよびAccessでのファイルの取り込み

文字編集DLLでは，XMAP3が提供するDLLを使用するため，インタフェース宣言ファイルを取り込む必要があります。Visual BasicおよびAccessでの，インタフェース宣言ファイルを取り込む例を次に示します。

［プロジェクト］－［ファイルの追加］を選択し，インタフェーステーブルを指定します。
X3mwst32.bas…インタフェース宣言ファイル

(c)　Delphiでのファイルの取り込み

文字編集DLLでは，XMAP3が提供するDLLを使用するため，インタフェース宣言ファイルを取り込む必要があります。インタフェース宣言ファイルを取り込む例を次に示します。

インタフェース宣言ファイル「X3mwst32.pas」をカレントフォルダにコピーします。

［プロジェクト］－［オプション］を選択し，「ディレクトリ／条件」の検索パスを指定します。

(2)　数字から数値に変換

数字データを数値データに変換します。変換には，文字列変換関数「XmapStrAtoI」を使用します。

(a)　引数

unsigned char　　　*lpszIn：入力領域の先頭アドレス
long　　　　　 nInLng：入力文字の有効桁数

(b)　戻り値（4バイト）

long：数字から数値に変換した結果

(c)　補足説明

*lpszInが示すアドレスからnInLngバイト分で，「0～9」「＋」「－」「￥」「，」の文字だけを抜き出し，数字から数値変換します。不当な文字が検出された時点で，処理を中断し，値を返します。変換結果が，long型で表現できない数値の場合，0を返します。

変換例を次に示します。

入力数字 | 出力数値
"¥123,456" | 123456
"-¥123,456" | -123456
"123456" | 123456

(3)　数値から数字に変換

数値データを数字データに変換します。または，数値データを数字データに変換し，変換と同時に文字編集を設定します。変換には，文字列変換関数「XmapStrItoA」を使用します。

(a)　引数

unsigned char    *lpszOut　　出力領域の先頭アドレス
long             nOutLng　　出力領域の長さ
long             nIn　　　　入力数値
long             nFormat　　編集形式
     XMAPSTR_SUM　　　　　　　=0x00800000：コンマ編集
     XMAPSTR_SYMBOL　　　　　 =0x00400000：先頭に"¥"付加
     XMAPSTR_FRONT　　　　　　=0x00080000：先頭に符号付加
     XMAPSTR_BACK　　　　　　 =0x00040000：最後に符号付加
     XMAPSTR_PLUS　　　　　　 =0x00020000：プラス値も付加
     XMAPSTR_LEFT　　　　　　 =0x00008000：左寄せ
     XMAPSTR_RIGHT　　　　　　=0x00004000：右寄せ
unsigned char      cData　　埋字

(b)　戻り値

0：正常

1以上：異常（必要な出力領域の桁数）

(c)　補足説明

nInの数値を数字に変換し，nFormatが示す編集をします。*lpszOutからnOutLngの領域へ結果を格納します。余った領域をcDataで埋めます。変換結果よりも出力領域の桁数が短い場合，必要な桁数を返します。

変換例を次に示します。

入力数値 | nFormat | 出力数字
123456 | XMAPSTR_SUM | "123,456"
123456 | XMAPSTR_SYMBOL | "¥123456"
123456 | XMAPSTR_SUM|XMAPSTR_SYMBOL | "¥123,456"
123456 | XMAPSTR_FRONT|XMAPSTR_PLUS | "+123456"
-123456 | XMAPSTR_FRONT|XMAPSTR_PLUS | "-123456"
123456 | XMAPSTR_FRONT | "123456"
-123456 | XMAPSTR_FRONT | "-123456"
-123456 | XMAPSTR_BACK | "123456-"

nOutLng = 10でcData = " "の場合

入力数値 | nFormat | 出力数字
123456 | XMAPSTR_LEFT | "123456 "
123456 | XMAPSTR_RIGHT | " 123456"

(4)　右寄せ配置の指定

指定文字を指定領域へ，右寄せ配置します。右寄せ配置は，「XmapStrMoveRight」関数を使用します。

(a)　引数

unsigned char    *lpszOut　　出力領域の先頭アドレス
long              nOutLng　　出力領域の長さ
unsigned char    *lpszIn 　　入力領域の先頭アドレス
long              nInLng 　　入力文字列の有効桁数
unsigned char     cData　　　埋字

(b)　戻り値

0：正常

(c)　補足説明

*lpszInが示す領域の文字を，*lpszOutからnOutLngバイト分の領域へ右寄せ配置します。左側へは，cDataに指定した文字が埋められます。nInLng＞nOutLngの場合，桁寄せはしません。

右寄せの配置例を次に示します。

入力文字 | 出力文字（nOutLng=10,cData = " "）
"123456" | " 123456"

(5)　左寄せ配置の指定

指定文字を指定領域へ，左寄せ配置します。左寄せ配置は，「XmapStrMoveLeft」関数を使用します。

(a)　引数

unsigned char    *lpszOut　　出力領域の先頭アドレス
long              nOutLng　　出力領域の長さ
unsigned char    *lpszIn 　　入力領域の先頭アドレス
long              nInLng 　　入力文字列の有効桁数
unsigned char     cData　　　埋字

(b)　戻り値

0：正常

(c)　補足説明

*lpszInが示す領域の文字を，*lpszOutからnOutLngバイト分の領域へ左寄せ配置します。右側へは，cDataに指定した文字が埋められます。nInLng＞nOutLngの場合，桁寄せはしません。

左寄せの配置例を次に示します。

入力文字 | 出力文字（nOutLng=10,cData = " "）
"123456" | "123456 "

7.5　帳票のFAX出力

FAXC/SPOOL，または一般のFAX通信プログラムを使用して，プリンタ出力と同様にFAXに帳票出力ができます。FAXC/SPOOLと連携したFAX出力をする場合は，帳票出力APからXMAP3のFAX宛先ファイルへ宛先情報を書き込んでFAXの宛先を動的に変更します。

FAX出力についての詳細はマニュアル「XMAP3 開発・実行ガイド」を参照してください。なお，FAXC/SPOOLの詳細については，マニュアル「Windows NT FAXコネクション Version3.0 ユーザーズガイド」，または FAXC/SPOOLが提供する「使用の手引き.pdf」を参照してください。

7.6　 OLTPサーバ構成での帳票印刷

＜この節の構成＞

7.6.1　COBOLでの帳票印刷命令

7.6.2　C言語での帳票印刷命令

7.6.1　COBOLでの帳票印刷命令

＜この項の構成＞

(1)　SEND文による印刷

(2)　CALL文による印刷

(3)　コンパイル時のポイント

(1)　SEND文による印刷

ここでは，OLTPサーバ構成の環境で，日立COBOLのSEND文によって帳票を印刷する方法について説明します。なお，OLTPサーバ構成の環境は，XMAP3/NET，またはXMAP3/Enterprise Editionの場合に構築できます。

SEND文の詳細については，マニュアル「COBOL2002 言語 拡張仕様編」またはマニュアル「COBOL85 言語」を参照してください。

(a)　論理マップの取り込み

（形式）

(b)　通信記述項

（形式）

（形式の説明）

FOR句
OUTPUTを指定します。

MAP NAME句
表示する論理マップを指定するためのデータ項目を指定します。

SYMBOLIC TERMINAL句
プリンタに割り当てた論理端末名を指定するためのデータ項目を指定します。

STATUS KEY句
ステータスコードを受け取る場合に指定します。

(c)　送信命令（SEND文）

（形式）

（形式の説明）

物理マップ名
表示する物理マップ名を指定します。デバイスIDは含みません。

データ名1
通信記述項のMAP NAME句で指定したデータ名を指定します。

論理端末名
プリンタに割り当てた論理端末名を指定します。

データ名2
通信記述項のSYMBOLIC TERMINAL句で指定したデータ名を指定します。

通信記述名
通信記述項で指定した名称を指定します。

出力論理マップ名
COPY句で取り込んだ印刷帳票に対応した出力論理マップを指定します。

(2)　CALL文による印刷

ここでは，OLTPサーバ構成の環境で，COBOLのCALLインタフェースによって帳票を印刷する方法について説明します。

(a)　論理マップの取り込み

（形式）

(b)　インタフェース領域の作成

OLTPサーバ構成のインタフェース用の領域を作成します。詳細については，マニュアル「OpenTP1プロトコル TP1/NET/XMAP3編」を参照してください。

（形式）

(c)　送信命令（CALL　　'CBLDCMCF'）

（形式）

（形式の説明）

'SEND'
送信を命令するために指定します。必ず指定してください。

データ名1
インタフェース領域（一意名1）に定義した先頭のデータ項目名を指定します。

'EMI'
必ず指定してください。

データ名2
インタフェース領域（一意名1）に定義した9個目のデータ項目名を指定します。

論理端末名
プリンタに割り当てた論理端末名を指定します。

データ名3
インタフェース領域（一意名2）に定義した2個目のデータ項目名を指定します。

物理マップ名
表示する物理マップ名を指定します。デバイスIDは含みません。

データ名4
インタフェース領域（一意名2）に定義した3個目のデータ項目名を指定します。

一意名1
インタフェース領域（一意名1）を指定します。

一意名2
インタフェース領域（一意名2）を指定します。

出力論理マップ名
COPY句で取り込んだ印刷帳票に対応した出力論理マップを指定します。

(3)　コンパイル時のポイント

COBOL2002を使用するときはコンパイラオプション'-OpenTP1'を，COBOL85を使用するときはコンパイラオプション'-Ot'を指定してください。

7.6.2　C言語での帳票印刷命令

OLTPサーバ構成でのC言語の帳票印刷命令の形式を次に示します。

＜この項の構成＞

(1)　論理マップの取り込み

(2)　OpenTP1インタフェーステーブルの取り込み

(3)　送信命令（dc_mcf_send）

(1)　論理マップの取り込み

（形式）

(2)　OpenTP1インタフェーステーブルの取り込み

（形式）

(3)　送信命令（dc_mcf_send）

（形式）

8.　書式オーバレイでのAPのコーディング方法

この章では，書式オーバレイ用のAPでのXMAP3の使用方法，および言語種別ごとの印刷命令について説明します。

また，汎用のAPインタフェース関数の仕様について説明します。

＜この章の構成＞

8.1　書式を利用したAPでのXMAP3の使用方法

8.2　COBOLでの印刷命令

8.3　C言語での印刷命令

8.4　汎用APインタフェース

8.5　書式オーバレイの簡易印刷

8.6　書式オーバレイのFAX出力

8.1　書式を利用したAPでのXMAP3の使用方法

書式用AP中の命令と，XMAP3の関係，または日立COBOLやC言語などを使用してXMAP3を利用する方法について説明します。なお，XMAP3のAPインタフェース（ライブラリ）はマルチスレッドで動作するAPからの実行に対応していません。

＜この節の構成＞

8.1.1　XMAP3での書式出力の基本

8.1.2　スプール単位出力

8.1.3　帳票出力時のXMAP3とAPの関係

8.1.1　XMAP3での書式出力の基本

＜この項の構成＞

(1)　APインタフェースの種類

(2)　APインタフェースの概要

(1)　APインタフェースの種類

XMAP3実行支援には，四つのAPインタフェースがあります。

図8-1　APインタフェースの種類

日立COBOLインタフェース
レコード名，または一意名のCHARACTER TYPE句で行単位の表示属性を指定します。
WRITE文で書き出します。

C言語インタフェース
jstqlctp関数を使用して行単位の表示属性を指定します。

汎用APインタフェース
XmapFrmSet×××関数を使用して，行単位の表示属性を指定します。

書式オーバレイ印刷ユティリティ
行データをユーザ責任でテキストファイルに出力して，このユティリティの入力とします。

(2)　APインタフェースの概要

書式用APでのXMAP3を使用するときの命令を次の表に示します。

表8-1　XMAP3での書式の出力の基本

要求
日立COBOL
の命令
C言語
汎用APインタフェース

オープン
OPEN文
jstqlopn関数
XmapFrmCreateOpen

行の出力
WRITE文
jstqldat関数
XmapFrmSetPage

印刷要求
WRITE文（PAGE指定）またはCLOSE文
jstqllpt関数
XmapFrmSetLine

クローズ
CLOSE文
jstqlcls関数
XmapFrmClose

書式用APとXMAP3の間で渡される情報を次の図に示します。

図8-2　XMAP3とAP間のデータのやり取り

8.1.2　スプール単位出力

一つのAPで複数の帳票を出力する場合，スプールへの出力単位は，「表示・印刷セットアップ」の「プリンタタブ」の「スプール書き出し単位」の指定に従います。「スプール書き出し単位」には，「1ページ毎」と「アプリケーション毎」があります。詳細については，マニュアル「XMAP3 開発・実行ガイド」を参照してください。

「スプール書き出し単位」に「1ページ毎」を選択した場合と，「アプリケーション毎」を選択した場合の処理の流れを次に示します。

「1ページ毎」を選択した場合

「アプリケーション毎」を選択した場合

なお，PDFファイル出力の場合，「アプリケーション毎」を選択してください。1枚目に指定した印刷ドキュメント名のPDFファイルにすべての帳票が格納されます。「1ページ毎」を選択し，印刷ドキュメント名が同じ帳票を連続出力すると，出力のたびにPDFファイルが上書きされ，結果的に，クローズ直前に出力したPDFファイルだけが登録されます。

8.1.3　帳票出力時のXMAP3とAPの関係

XMAP3から帳票を印刷する場合の，印刷形態とAPのコーディング内容の関係を示します。なお，ここではプログラミング言語として日立COBOLが使用されていることを仮定します。

＜この項の構成＞

(1)　同じ内容のものを複数枚印刷（コピー印刷）

(2)　同じ帳票レイアウトで中身が異なるものを複数枚印刷

(3)　異なる帳票を交互に印刷

(4)　異なるプリンタに帳票を印刷

(1)　同じ内容のものを複数枚印刷（コピー印刷）

同じ内容のものを複数枚，印刷する場合です。例えば，3枚の帳票を印刷するときは，3回同じ印刷を繰り返します。スプールには，同じものが3部格納されます。なお，書式名称は，1回だけ指定します。

注

PDFファイルへ出力する場合，コピー印刷はできません。

(2)　同じ帳票レイアウトで中身が異なるものを複数枚印刷

書式オーバレイ名称は同じで，データを変えて3回改ページします。

（コーディング例）

(3)　異なる帳票を交互に印刷

（コーディング例）

(4)　異なるプリンタに帳票を印刷

書式オーバレイで一つのAPから異なるプリンタに印刷する場合には，印刷するプリンタごとに印刷サービスをオープンし，印刷要求をします。

ただし，スタンドアロン印刷の場合には，複数の印刷サービスを同時にオープンすることはできません。そのため，プリンタを切り替えるときには，すでにオープン済みの印刷サービスを一度クローズしたあと，出力したいプリンタに対応する印刷サービスをオープンしてから印刷する必要があります。

8.2　COBOLでの印刷命令

ここでは，COBOL言語を使用した書式オーバレイのAPのコーディング方法について説明します。なお，詳細については，マニュアル「COBOL2002 ユーザーズガイド」または「COBOL85 ユーザーズガイド」，およびマニュアル「COBOL2002 言語 拡張仕様編」または「COBOL85 言語」を参照してください。

＜この節の構成＞

8.2.1　プリンタ出力用ファイルの定義

8.2.2　印刷する書式の設定

8.2.3　行データの帳票印刷

8.2.4　COBOL開発マネージャを使用したコンパイルと実行のポイント

8.2.1　プリンタ出力用ファイルの定義

プリンタ出力するファイルは，INPUT-OUTPUT SECTIONで順編成を宣言します。

また，XMAP3で使用する印刷サービス名称を指定します。スタンドアロン環境で，プリントマネージャの標準プリンタを使用する場合は，表示・印刷セットアップの「プリンタ」タブの印刷モードに，ページプリンタ用として定義したサービス名を設定してください。C/Sシステム環境の場合は，C/Sセットアップの印刷サービス名と同じ名称を指定します。印刷サービス名称は，日立COBOLの環境変数「CBLX_外部装置名=印刷サービス名称」で指定します。AP実行時，印刷サービス名称は，SELECT句で宣言したプリンタ出力用ファイルのASSIGN句で指定した外部装置名に割り当てられます。

（例）

（例の説明）

プリンタ出力するファイルの宣言
プリンタ出力するファイルを順編成として宣言します。
ただし，次に示す指定をした場合，印刷サービス名称が物理ファイル名として扱われるため，注意してください。

ASSIGN句で定数，またはデータ名を指定した場合

外部装置名をCOBOLの環境変数「CBLX_外部装置名」で指定した場合

8.2.2　印刷する書式の設定

印刷する書式の名称（書式オーバレイ名称）を指定します。書式を設定する場合，I-O-CONTROLに，APPLY　FORMS-OVERLAY句で出力する書式オーバレイ名称を格納するエリアを指定します。このエリアに格納した書式オーバレイを重ねて印刷できます。

（例）

(a)　例の説明

書式名格納エリア
書式名のエリアに格納された書式オーバレイを使用して，プリンタに指定したプリンタ出力用ファイルに対して印刷します。

書式オーバレイ名称の格納
書式名格納エリアに書式オーバレイ名称を格納します。書式オーバレイ名称には，マップ名にID「6G（マップ名が6文字のとき），またはF（マップ名が7文字のとき）」を付けた名称を指定します。印刷する書式を変更する場合は，書式名格納エリアの内容を書き換えます。書式名はプログラム内で指定するほかに，環境変数「XMAP3_FMP」を使用する方法もあります。環境変数についてはマニュアル「XMAP3 開発・実行ガイド」を参照してください。

8.2.3　行データの帳票印刷

APからPCに対して書式印刷をする場合，印刷用ファイルへ行データを出力するためにPROCEDURE DIVISIONで指定する文を次に示します。

また，APで行データをコーディングするときに，印刷時のずれを防ぐために設定する行データの属性と指定値を「8.2.3(2)　行データの属性の設定」に示します。

＜この項の構成＞

(1)　書式印刷するときのPROCEDURE DIVISIONの指定

(2)　行データの属性の設定

(3)　推奨コーディング

(1)　書式印刷するときのPROCEDURE DIVISIONの指定

表8-2　PROCEDURE DIVISIONで指定する文

命令文
内容

オープン
（OPEN文）
プリンタ出力用ファイルの処理を開始する準備をします
OPEN文のモードに出力専用（OUTPUT）を指定して実行します

出力
（WRITE文）
レコードをプリンタ出力用ファイルに書き出します
明示的または間接的※にADVANCING指定をします

クローズ
（CLOSE文）
プリンタ出力用ファイルの処理を終了します

注※

同じファイルに対するほかのWRITE文にADVANCING指定されていることを意味します。

（例）

(a)　例の説明

プリンタのオープン
FILE-CONTROLで指定した出力先のプリンタをオープンします。

プリンタへのレコードの書き出し

データ名で指定した領域の内容が行データに指定した領域に格納されたあと，行データを出力先のプリンタに書き出します。WRITE文で書き出されたレコードの内容は，使用できなくなります。

AFTER：ADVANCING以降の記述内容を実行したあとで，WRITE文が実行されます。

BEFORE：WRITE文を実行したあとで，ADVANCING以降の記述内容が実行されます。

ADVANCING：行送り（改行）または改ページを指定します。

n LINE（S）：nに指定したページ分だけ改行します。nが1の場合は「1　LINE」になり，nが2以上の場合は「n　LINES」になります。

呼び名：CSP（改行しない），またはC01（改ページする）を指定します。

PAGE：改ページします。

プリンタのクローズ
オープンした出力先のプリンタをクローズします。

(2)　行データの属性の設定

書式印刷時にずれを生じさせないように，書式設計前にAPで行データの属性を決定しておきます。APで設定できる属性と指定値を次の表に示します。

表8-3　行データの属性と指定値

属性 | 指定値 | 内容
文字サイズ※ | 5／7／9／12 | 文字サイズを5，7，9，または12ポイントにして文字を配置します
文字の間隔※ | 0 | 文字の間隔を空けないで文字を配置します
1～7 | 文字の間隔を1～7ポイントにして文字を配置します
書体※ | 0 | 文字の書体を元に戻します
1 | 文字を明朝体にして配置します
2 | 文字をゴシック体にして配置します
9 | 文字をOCR体にして配置します
拡大 | 指定あり | 横方向に2倍に拡大した文字を配置します
指定なし | 横方向の拡大を解除した文字を配置します

注※

属性の指定がない場合で，上位の項目に属性の指定があるときは，その属性の指定値に戻して文字を配置します。上位の項目に属性の指定がないときは，ドローで定義した属性で文字を配置します。上位の項目とは，レベル番号が上位にあるデータ記述項を示します。

APで属性を設定する場合，レコード名または一意名にCHARACTER　TYPE句を指定します。CHARACTER　TYPE句の形式を次に示します。

(a)　形式の説明

POINT-l
文字サイズを指定します。lに指定できる文字サイズは，5／7／9／12です。指定値の意味については，「表8-3　行データの属性と指定値」を参照してください。

INTERVAL-m
文字の間隔（字間値）を指定します。mに指定できる文字の間隔は，0～7です。指定値の意味については，「表8-3　行データの属性と指定値」を参照してください。

FORMAT-n
書体を指定します。nに指定できる書体は，0／1／2／9です。指定値の意味については，「表8-3　行データの属性と指定値」を参照してください。

WIDE
文字を横方向に2倍に拡大します。

CHARACTER　TYPE句の詳細については，マニュアル「COBOL2002 言語 拡張仕様編」またはマニュアル「COBOL85 言語」を参照してください。また，WRITE文の形式によって，レコード名のCHARACTER　TYPE句を有効にするか，一意名のCHARACTER　TYPE句を有効にするかが異なります。

(b)　「WRITE　レコード名」の場合

「WRITE　レコード名」の場合は，レコード名にCHARACTER　TYPE句があるときだけ，行データの印刷制御をします。WRITE文と，CHARACTER　TYPE句との関係を次の図に示します。

図8-3　WRITE文と，CHARACTER　TYPE句との関係（「WRITE　レコード名」の場合）

レコード名にCHARACTER TYPE句を宣言
レコード名にCHARACTER TYPE句を宣言して，行データの印刷制御を行います。

プリンタへのレコード書き出し
1行改行したあとに，行データをプリンタに出力します。行データの印刷制御は，レコード名で宣言したCHARACTER TYPE句での設定を使用します。

(c)　「WRITE　レコード名　FROM　一意名」の場合

「WRITE　レコード名　FROM　一意名」の場合は，一意名にCHARACTER　TYPE句があるときだけ，行データの印刷制御をします。このとき，レコード名にCHARACTER　TYPE句があっても無視されます。WRITE文と，CHARACTER　TYPE句との関係を次の図に示します。

図8-4　WRITE文と，CHARACTER　TYPE句との関係（「WRITE　レコード名　FROM　一意名」の場合）

レコード名の宣言
レコード名を宣言します。

一意名にCHARACTER TYPE句を宣言
一意名にCHARACTER TYPE句を宣言して，行データの印刷制御を行います。

プリンタへのレコードの書き出し
1行改行したあとに，行データをプリンタに出力します。また，行データの印刷制御は，一意名で宣言したCHARACTER TYPE句での設定を使用します。

(3)　推奨コーディング

行データを出力する場合，行データおよびページデータの上限値によってデータを出力できない場合があります。必要に応じて，推奨コーディングを参考にしてください。

(a)　ページ単位で，文字サイズ，間隔，書体，拡張などがすべて同じ場合

ドローの書式作成時に，書式属性ダイアログ，および行データ属性ダイアログで文字サイズなどを設定します。APでCHARACTER TYPE句を指定する必要はありません。

(b)　行単位で，文字サイズ，間隔，書体，拡張などがすべて同じ場合

行データ設定用のテーブルと送信用のテーブルを用意します。WRITE文の直前で，データを送信用のテーブルにコピーしてから，送信用のテーブルを使用して，WRITE文を実行します。

行データ設定用のテーブルは，項目ごとに定義します。送信用のテーブルは，行データ設定用のテーブルの長さを1項目として定義します。CHARACTER TYPE句は，送信用のテーブルに指定します。

図8-5　推奨コーディング

(c)　ページ単位または行単位で，文字サイズ，間隔，書体，拡張などが揃っていない場合

1行中の行データを，行データの上限値を超えないようにデータを分けます。改行は，1行中の最終データを出力するときにします。1行中の最終データを出力するまでは，改行しないようにしてください。行データの上限値は，概算式を参考にします。概算式については，「付録D.3　書式オーバレイの1ページデータ量の制限」を参照してください。

文字サイズなど，同じ項目が連続する場合には，行データ設定用のテーブルと送信用のテーブルを用意します。WRITE文の直前で，送信用のテーブルにデータをコピーしてから，送信用のテーブルを使用してWRITE文を実行します。送信用のテーブルでは，文字サイズなど，同じ項目が連続する領域を一つの項目として定義してください。CHARACTER TYPE句は，送信用のテーブルに指定します。

図8-6　推奨コーディング

8.2.4　COBOL開発マネージャを使用したコンパイルと実行のポイント

COBOL開発マネージャを使用したコンパイルと実行のポイントについて説明します。

＜この項の構成＞

(1)　COBOL開発マネージャの概要

(2)　コンパイル時のポイント

(3)　リンケージ時のポイント

(4)　実行時のポイント

(5)　XMAP3で使用できる日立COBOL

(1)　COBOL開発マネージャの概要

COBOL開発マネージャは，日立COBOLから提供されているCOBOLプログラムの統合的な開発環境です。COBOLでAPを開発するときに必要なCOBOLソースや登録集原文などの資産をその依存関係に従って管理し※，コンパイルなどの作業を自動化します。

注※

ただし，書式オーバレイの場合，論理マップは生成されないため，マップの資産管理はできません。

COBOL開発マネージャを使用する場合，次の手順でAPを作成します。

プロジェクトの作成

ビルド，リビルド

次に，それぞれの手順について説明します。

(a)　プロジェクトの作成

COBOL開発マネージャでは，一つの.exeまたは.dllファイルの開発単位を「プロジェクト」と呼んでいます。COBOL開発マネージャを使用してAPを作成する場合，このプロジェクトを定義する必要があります。

(b)　ビルド，リビルド

ソースファイル名を指定し，コンパイルとリンケージをします。

その方法として，タイムスタンプ（ファイル作成／修正日時）の前後関係に基づいてコンパイルとリンケージをする「ビルド」があります。例えば，「実行ファイルの作成／修正日時」より実行ファイルが取り込んでいる「COBOLソースの作成／修正日時」の方が新しい場合にコンパイルとリンケージが実行されます。

また，タイムスタンプには関係なくコンパイルとリンケージをする「リビルド」もあります。

(2)　コンパイル時のポイント

XMAP3と連携するためのコンパイラオプションを指定します。COBOL2002またはCOBOL85を使用している場合，指定が必要なコンパイラオプションを次に示します。

COBOL2002の場合

-XMAP,LinePrint：書式オーバレイや印刷制御機能を利用できるようにするオプション

COBOL85の場合

-Ks：書式オーバレイや印刷制御機能を利用できるようにするオプション

(3)　リンケージ時のポイント

インポートライブラリ／ユーザ指定ライブラリに，次に示すファイルを指定する必要があります。

COBOL2002，COBOL85 Version 7およびVersion 6の場合

XMAP3インストール先¥LIB¥x3klib32.lib

COBOL85 Version 5.0の場合

XMAP3インストール先¥LIB¥V3Compatible¥x3klib32.lib

(4)　実行時のポイント

(a)　書式データファイルおよび行制御データファイルの格納

APを実行する前に，書式データファイル（.fmp）と行制御データファイル（.pci）を実行可能ファイルと同じフォルダに格納してください。

また，表示・印刷セットアップでマップパスを指定する方法もあります。マップパスの指定については，マニュアル「XMAP3 開発・実行ガイド」を参照してください。

(b)　COBOLでの環境変数の指定

XMAP3で使用するプリンタの識別名称（印刷サービス名称）を，COBOLの環境変数によって指定します。指定形式を次に示します。

(c)　形式の説明

外部装置名
COBOLソース中のSELECT句で宣言したプリンタ出力用ファイルのASSIGN句で指定した名称です。

印刷サービス名称
スタンドアロン環境でプリンタマネージャの標準プリンタを使用する場合は表示・印刷セットアップの「プリンタ」タブの印刷モードに，ページプリンタ用として定義したサービス名称を指定します。C/Sシステム環境では，C/Sセットアップの印刷サービス名と同じ名称を指定します。

(5)　XMAP3で使用できる日立COBOL

XMAP3で使用できる日立COBOLは，COBOL2002，COBOL85 Version 5.0，Version 6，およびVersion 7です。ただし，使用できる日立COBOLは，OSによって異なります。XMAP3で使用できる日立COBOLを，OSごとに次の表に示します。

表8-4　使用できる日立COBOL

OS名 | COBOL2002 | COBOL85
Version 5.0 | Version 6 | Version 7
Windows 95 | × | ○ | ○ | ×
Windows 98 | ○ | ○※1 | ○ | ○
Windows Me | ○ | × | ○※2 | ○
Windows NT 4.0 | ○ | ○ | ○ | ○
Windows 2000 | ○ | × | ○※3 | ○
Windows XP | ○ | × | × | ○
Windows Server 2003 | ○※4 | × | × | ×
Windows Server 2003 x64 | ○※4 | × | × | ×

（凡例）

○：使用できる。

×：使用できない。

注※1

使用できるバージョンは05-01以降となります。

注※2

使用できるバージョンは06-03以降となります。

注※3

使用できるバージョンはOSによって異なります。

・Windows 2000 Server，およびWindows 2000 Professional：06-01以降

・Windows 2000 Advanced Server：06-03以降

・Windows 2000 Datacenter Server：06-04以降

注※4

使用できるバージョンの詳細については，関連するプログラムプロダクトでご確認ください。

8.3　C言語での印刷命令

ここでは，C言語を使用した書式オーバレイのAPのコーディング方法について説明します。

＜この節の構成＞

8.3.1　印刷する書式の設定

8.3.2　行データの帳票印刷

8.3.1　印刷する書式の設定

印刷する書式の名称（書式オーバレイ名称）を指定します。書式の名称は，jstqlpag関数の＊ovlnameで指定します。jstqlpag関数については，「8.3.2　行データの帳票印刷」を参照してください。行データは，この関数で指定した書式に重ねて印刷されます。

8.3.2　行データの帳票印刷

APからPCに対して書式印刷をする場合，行データを出力するために，次の図に示す関数を発行します。関数の機能と発行順序を示します。

図8-7　関数の機能と発行順序

＜この項の構成＞

(1)　jstqlopn関数

(2)　jstqlpag関数

(3)　jstqlctp関数

(4)　jstqldat関数

(5)　jstqllpt関数

(6)　jstqlcls関数

(7)　リンケージ時の注意事項

(1)　jstqlopn関数

環境変数を取り込んで，行データの編集を開始します。なお，環境変数については，マニュアル「XMAP3 開発・実行ガイド」を参照してください。

(a)　形式の説明

JSTQL_COMアドレス
APで確保したユーザインタフェース領域の先頭アドレスを指定します。ユーザインタフェース領域の形式を次の表に示します。

表8-5　ユーザインタフェース領域の形式

属性および名称
位置
長さ
内容
備考

（バイト）

unsigned char lcomid
0
4
テーブル
ID：'XMP3'
jstqlopn関数を呼び出す前に設
定します

unsigned char *lcomsvnm
4
4
印刷サービス名称のアドレス

unsigned char lcomdevnm
8
6
予備
jstqlopn関数を呼び出す前に必
ず，NULL（0x00）でクリア
します※¹

unsigned char lcomrsv1
14
2
予備

unsigned char lcompgcnm
16
8
予備

unsigned char lcomrsv2
24
4
予備

unsigned char *lcompgedr
28
4
予備

long　lcomrc
32
4
リターンコード
関数呼び出し後に参照します
※³

long　lcomerr
36
4
エラー詳細コード※²

unsigned char lcomsync
40
1
予備
jstqlopn関数を呼び出す前に
必ずNULL（0x00）でクリア
します※¹

unsigned char lcomrsv3
41
1
予備

unsigned char lcomrsv4
42
1
予備

unsigned char lcomrsv5
43
1
予備

unsigned char lcomrsv6
44
12
予備

unsigned char *lcomxppdr
56
4
予備

unsigned char lcomperr
60
4
ページ制御エラー情報
ページ制御のエラー発生時に参照します※³

unsigned char *lcomxperr
64
4
予備
jstqlopn関数を呼び出す前に必ずNULL（0x00）でクリアします※¹

unsigned char lcomwrk
68
188
XMAP3の作業領域
jstqlopn関数を呼び出す前に必ずNULL（0x00）でクリアします※¹

注※1

NULL（0x00）でクリアしたあとは，使用しないでください。

注※2

エラー詳細コードについては，「付録E　リターンコードの詳細」を参照してください。

注※3

各関数を呼び出す前に，必ずNULL（0x00）でクリアしてください。

ユーザインタフェース領域には，次に示す項目に情報を設定し，そのほかの項目はNULL（0x00）でクリアします。

lcomid（テーブルID）
テーブルIDとして文字列'XMP3'を設定します。

lcomsvnm（印刷サービス名アドレス）
印刷サービス名は，14バイト以内の文字列で，NULLを終端とします。印刷サービス名は，スタンドアロン環境では，必ず，「表示・印刷セットアップ」の［プリンタ］タブの印刷モードに，ページプリンタ用として定義したサービス名称を指定します。C/Sシステム環境の場合は，C/Sセットアップの印刷サービス名と同じ名称を指定します。
Windows NT 4.0，Windows 2000，Windows XP，Windows Server 2003，またはWindows Server 2003 x64の場合で，印刷サービス名アドレスの指定がNULLポインタのとき，文字列がNULLまたはスペースだけのときは，環境変数「XMAP3_PSNAME」で指定した名称が仮定されます。環境変数の指定がない場合や，Windows 95，Windows 98またはWindows Meの場合は，印刷サービス名として「#PRT」が仮定されます。

(b)　リターン情報

関数のリターン値を次に示します。

0：正常終了

8：異常終了（ユーザインタフェース領域内のエラー詳細コードを参照してください）

12：パラメタ不正（ユーザインタフェース領域のアドレスまたはIDが不正です）

(2)　jstqlpag関数

ページ制御情報を作成して，ページバッファに格納します。

(a)　形式の説明

JSTQL_COMアドレス
jstqlopn関数で指定したユーザインタフェース領域の先頭アドレスを指定します。

予備
必ず，NULLを指定します。

予備
必ず，NULLを指定します。

書式名格納領域のアドレス
書式名（マップ名にIDを付けた名称（IDはマップ名が6文字のときは6G，7文字のときはF））が格納されている領域のアドレスを必ず指定します。書式名は，8バイト以内の文字列で，NULLを終端とします。書式名を9バイト以上で指定した場合は，先頭から8バイト分を書式名とみなします。
ただし，Windows NT 4.0，Windows 2000，Windows XP，Windows Server 2003，またはWindows Server 2003 x64の場合，書式名の指定がNULLポインタのとき，文字列がNULLまたは空白だけのときは，環境変数「XMAP3_FMP」で指定した名称が仮定されます。

(b)　リターン情報

関数のリターン値を次に示します。

0：正常終了

8：異常終了（ユーザインタフェース領域内のエラー詳細コードを参照してください）

12：パラメタ不正（ユーザインタフェース領域のアドレスまたはIDが不正です）

(c)　注意事項

jstqldat関数での行データをjstqllpt関数で出力していない場合，この関数によって出力されます。また，この関数を発行するjstqlcls関数を発行するまでは，前に発行した関数の情報（書式マップ名など）が引き継がれます。

(3)　jstqlctp関数

書式印刷時にずれを生じさせないように，行データの制御情報を作成して，行バッファに格納します。ここで指定した制御情報は，jstqllpt関数の発行，または改ページまで有効です。

(a)　形式の説明

JSTQL_COMアドレス
jstqlopn関数で指定したユーザインタフェース領域の先頭アドレスを指定します。

JSTQL_CTLアドレス
行データの制御情報を設定する制御情報テーブルの先頭アドレスを指定します。制御情報テーブルの形式と，制御情報テーブルに指定できる定数と値を次の図に示します。

図8-8　行データの制御情報テーブル（JSTQL_CTL）の形式

表8-6　行データの制御情報テーブル（JSTQL_CTL）に指定できる定数と値

制御情報の
種類
定数（ctl_type）
指定値
（ctl_val）
意味

文字サイズ
JSTQ_TYPE_PNT
50
文字サイズに5ポイントを指定します

70
文字サイズに7ポイントを指定します

90
文字サイズに9ポイントを指定します

120
文字サイズに12ポイントを指定します

文字の間隔
JSTQ_TYPE_INT
0
文字の間隔を指定しません

1～7
文字の間隔に1～7ポイントを指定します

書体
JSTQ_TYPE_FMT
0
書体を元に（標準値に）戻します

1
書体に明朝体を指定します

2
書体にゴシック体を指定します

9
書体にOCR体を指定します※

拡大（平体）
JSTQ_TYPE_WID
0
拡大を指定しません

1
拡大を指定します

注※

OCR体は，文字サイズに9ポイントを指定したときだけ有効です。

項目数
制御情報テーブル中に設定した制御情報の項目数（1以上の値）を指定します。

（例）

(b)　リターン情報

関数のリターン値を次に示します。

0：正常終了

8：異常終了（ユーザインタフェース領域内のエラー詳細コードを参照してください）

12：パラメタ不正（ユーザインタフェース領域のアドレスまたはIDが不正です）

(c)　注意事項

行の先頭での制御情報の初期値は，文字サイズ，文字の間隔，および書体はドローで定義した値，平体は指定なしです。ただし，環境定数（XMAP3_FORMAT）で書体を指定している場合，環境変数で指定した書体が有効となります。ここで指定した制御情報は，jstqllpt関数の発行，または改ページまで有効です。制御情報の指定がない場合には，この関数を発行しないでください。

(4)　jstqldat関数

文字データを編集して，行バッファに格納します。

(a)　形式の説明

JSTQL_COMアドレス
jstqlopn関数で指定したユーザインタフェース領域の先頭アドレスを指定します。

文字データのアドレス
出力する文字データ（行データ）のアドレスを指定します。

文字データの長さ
出力する文字データ（行データ）の長さを，バイト数で指定します。

(b)　リターン情報

関数のリターン値を次に示します。

0：正常終了

8：異常終了（ユーザインタフェース領域内のエラー詳細コードを参照してください）

12：パラメタ不正（ユーザインタフェース領域のアドレスまたはIDが不正です）

(c)　注意事項

この関数では，印刷する文字データ（行データ）だけを指定し，行送りなどはjstqllpt関数で指定します。

(5)　jstqllpt関数

行バッファに格納されている行データに行送り情報を付けて，1行分のデータをページバッファに出力します。ただし，改ページを指定したときや，改ページが発生したときは，ページバッファに格納されている1ページ分のデータをプリンタに出力します。

(a)　形式の説明

JSTQL_COMアドレス
jstqlopn関数で指定したユーザインタフェース領域の先頭アドレスを指定します。

JSTQL_CTLアドレス
行送り情報を設定する制御情報テーブルの先頭アドレスを指定します。制御情報テーブルの形式と，制御情報テーブルに指定できる定数と値を次に示します。

図8-9　行送りの制御情報テーブル（JSTQL_CTL）の形式

表8-7　行送りの制御情報テーブル（JSTQL_CTL）に指定できる定数と値

制御情報の
種類
定数（ctl_type）
指定値
（ctl_val）
意味

改行
JSTQ_TYPE_NLN
1～99
1～99行分改行します

チャネル
スキップ
JSTQ_TYPE_CNL
0
行送りをしません

1
紙送りチャネル番号C01（改ページ）を指定します

行出力と行送りのタイミング
行データを行送り後に出力するか，または行送り前に出力するかを指定します。
行送り後に行データを出力する場合は「0」を，行送り前に出力する場合は「1」を指定します。0または1以外の値を指定した場合は「0」を仮定します。

(b)　リターン情報

関数のリターン値を次に示します。

0：正常終了

8：異常終了（ユーザインタフェース領域内のエラー詳細コードを参照してください）

12：パラメタ不正（ユーザインタフェース領域のアドレスまたはIDが不正です）

(c)　注意事項

この関数を発行しない場合でも，ページバッファに格納された行データの数が1ページに印刷できる行数を超えるとき，またはページバッファに格納できるデータ長の制限を超えるときは，自動的に改ページされます。

(6)　jstqlcls関数

行データの編集を終了します。

(a)　形式の説明

JSTQL_COMアドレス
jstqlopn関数で指定したユーザインタフェース領域の先頭アドレスを指定します。

(b)　リターン情報

関数のリターン値を次に示します。

0：正常終了

8：異常終了（ユーザインタフェース領域内のエラー詳細コードを参照してください）

12：パラメタ不正（ユーザインタフェース領域のアドレスまたはIDが不正です）

(c)　注意事項

この関数を発行したとき，バッファ中に残っている行データは，すべて出力されます。なお，行バッファの文字データは，ページバッファに格納され，ページバッファから出力されます。

(7)　リンケージ時の注意事項

ライブラリには，次に示すファイルを指定する必要があります。

Visual C++ .NET，Visual C++ 6.0の場合

XMAP3インストール先¥Lib¥X3klib32.lib

Visual C++ 5.0の場合

XMAP3インストール先¥Lib¥V3Compatible¥X3klib32.lib

8.4　汎用APインタフェース

Windows専用の汎用入力関数について説明します。また，汎用関数を使用してAP（Visual Basic，Access，およびDelphiなど）で印刷する方法について説明します。汎用関数は，C言語からも使用できます。

＜この節の構成＞

8.4.1　関数の機能概要

8.4.2　文字編集DLL

8.4.3　汎用APインタフェースを使用したコーディング例

8.4.1　関数の機能概要

XMAP3を呼び出すための汎用APインタフェースを次に示します。以降，C言語ベースの記述で説明します。

関数 | 機能概要 | 備考
XmapFrmCreateOpen | ドライバ起動，サービスオープン | オープン要求関数
XmapFrmClose | ドライバ解放，サービスクローズ | クローズ要求関数
XmapFrmSetPage | ページ制御情報の設定 | なし
XmapFrmSetData | 行データをバッファリング
XmapFrmSetLine | バッファデータを出力
XmapFrmGetError | エラーコードの詳細を取得
XmapFrmSetPoint | 文字サイズの設定 | フィールド制御関数
XmapFrmSetInterval | 字間値の設定 | フィールド制御関数
XmapFrmSetFont | 書体の設定 | フィールド制御関数
XmapFrmSetWidth | 平体の設定 | フィールド制御関数
XmapFrmSetNewLine | 改行数の設定 | 行制御関数
XmapFrmSetChannel | チャネルスキップの設定 | 行制御関数

＜この項の構成＞

(1)　ファイルの取り込み

(2)　関数の発行順序

(3)　XmapFrmCreateOpen関数

(4)　XmapFrmClose関数

(5)　XmapFrmSetPage関数

(6)　XmapFrmSetData関数

(7)　XmapFrmSetLine関数

(8)　XmapFrmGetError関数

(9)　XmapFrmSetPoint関数

(10)　XmapFrmSetInterval関数

(11)　XmapFrmSetFont関数

(12)　XmapFrmSetWidth関数

(13)　XmapFrmSetNewLine関数

(14)　XmapFrmSetChannel関数

(1)　ファイルの取り込み

(a)　汎用関数を使用した場合のC言語でのファイルの取り込み

汎用APインタフェースでは，XMAP3が提供するDLLを使用するため，インタフェース宣言ファイルおよびリンケージライブラリを取り込む必要があります。

インタフェース宣言ファイルを取り込みます。

インタフェース宣言ファイルの格納先

XMAP3インストール先¥Include¥X3mwgd32.h

リンケージライブラリを取り込みます。リンケージライブラリの格納先を次に示します。

Visual C++ .NET，Visual C++ 6.0の場合

XMAP3インストール先¥Lib¥X3mwgd32.lib

Visual C++ 5.0の場合

XMAP3インストール先¥Lib¥V3Compatible¥X3mwgd32.lib

(b)　Visual BasicおよびAccessでのファイルの取り込み

汎用APインタフェースでは，XMAP3が提供するDLLを使用するため，インタフェース宣言ファイルを取り込む必要があります。Visual BasicおよびAccessでの，インタフェース宣言ファイルを取り込む例を次に示します。

［プロジェクト］－［ファイルの追加］を選択し，インタフェーステーブルを指定します。
x3mwgd32.bas…インタフェース宣言ファイル

(c)　Delphiでのファイルの取り込み

汎用APインタフェースでは，XMAP3が提供するDLLを使用するため，インタフェース宣言ファイルを取り込む必要があります。インタフェース宣言ファイルを取り込む例を次に示します。

インタフェース宣言ファイル「x3mwgd32.pas」をカレントフォルダにコピーします。

［プロジェクト］－［オプション］を選択し，「ディレクトリ／条件」の検索パスを指定します。

(2)　関数の発行順序

(3)　XmapFrmCreateOpen関数

ドライバを起動し，サービスをオープンします。

(a)　形式の説明

サービス名称（tname）
印刷サービス名称を指定します。
印刷サービス名は，14バイト以内の文字列でNULLを終端とします。スタンドアロンの環境では，表示・印刷セットアップの「プリンタ」タブの印刷モードに，ページプリンタ用として定義したサービス名称を指定します。C/Sシステム環境の場合は，C/Sセットアップの印刷サービス名と同じ名称を指定します。
また，印刷サービス名アドレスの指定がNULLポインタ，文字列がNULL，またはスペースだけの場合，Windows NT 4.0，Windows 2000，Windows XP，Windows Server 2003，またはWindows Server 2003 x64の場合は環境変数「XMAP3_PSNAME」で指定した名称が仮定されます。環境変数の指定がない場合や，Windows 95，Windows 98，またはWindows Meの場合は，印刷サービス名称として「#PRT」が仮定されます。

(b)　リターン情報

1以上：正常終了（端末識別子）

0：異常終了

(4)　XmapFrmClose関数

サービスをクローズし，ドライバを解放します。

(a)　形式の説明

端末識別子（termid）
オープン要求関数の戻り値を指定します。

(b)　リターン情報

0：正常終了

-1：異常終了

(c)　注事事項

この関数を発行したとき，バッファ内に残っている行データは，すべて出力されます。なお，行バッファの文字データは，ページバッファに格納され，ページバッファから出力されます。

(5)　XmapFrmSetPage関数

ページ制御情報を作成して，ページバッファに格納します。

(a)　形式の説明

端末識別子（termid）
オープン要求関数の戻り値を指定します。

予備（pagec）
必ずNULLを指定します。

書式マップ名（fmpname）
書式マップ名称を指定します。
書式名（マップ名にIDを付けた名称（IDはマップ名が6文字のときは6G，7文字のときはF））が格納されている領域のアドレスを必ず指定します。書式名は，8バイト以内の文字列で，NULLを終端とします。書式名を9バイト以上で指定した場合は，先頭から8バイト分を書式名とみなします。
ただし，Windows NT 4.0，Windows 2000，Windows XP，Windows Server 2003，またはWindows Server 2003 x64の場合は，書式名の指定がNULLポインタ，文字列がNULLまたは空白だけのとき，環境変数「XMAP3_FMP」で指定した名称が仮定されます。

(b)　リターン情報

0：正常終了

-1：異常終了

(c)　注意事項

XmapFrmSetData関数での行データをXmapFrmSetLine関数で帳票出力していない場合，この関数によって帳票が出力されます。また，この関数を発行するかまたはXmapFrmClose関数を発行するまでは，前に発行した関数の情報（書式マップ名など）が引き継がれます。

(6)　XmapFrmSetData関数

文字データを編集して行バッファに格納します。

(a)　形式の説明

端末識別子（termid）
オープン要求関数の戻り値を指定します。

文字データのアドレス（datp）
出力する文字データ（行データ）のアドレスを指定します。

文字データの長さ（datl）
出力する文字データ（行データ）の長さをバイト数で指定します。

(b)　リターン情報

0：正常終了

-1：異常終了

(c)　注意事項

この関数では，印刷する文字データ（行データ）だけを指定し，行送りなどはXmapFrmSetLine関数で指定します。

(7)　XmapFrmSetLine関数

行バッファに格納されている行データに行送り情報を付けて，1行分のデータをページバッファに出力します。ただし，改ページを指定したときや，改ページが発生したときは，ページバッファに格納されている1ページ分のデータをプリンタに出力します。

(a)　形式の説明

端末識別子（termid）
オープン要求関数の戻り値を指定します。

行送りタイミング（timing）
行送りのタイミングを指定します。

0：行送り後に，行データを出力します。

1：行送り前に，行データを出力します。

(b)　リターン情報

0：正常終了

-1：異常終了

(c)　注意事項

この関数を発行していないとき，XmapFrmSetData関数での行データの数が1ページに印刷できる行数を超えるている，またはページバッファに格納できるデータ長の制限を超えている場合は，自動的に改ページされます。

また，この関数の前に，XmapFrmSetChannelまたはXmapFrmSetNewLineを発行しなかった場合，チャネル「0：（行送りをしない）」を仮定します。

(8)　XmapFrmGetError関数

直前に発行した関数のエラー詳細を取得します。

(a)　リターン情報

0以上：正常終了（詳細エラーコード）

(9)　XmapFrmSetPoint関数

文字サイズを指定します。

(a)　形式の説明

端末識別子（termid）
オープン要求関数の戻り値を指定します。

文字サイズ（val）
文字サイズを指定します。

内容 | 指定値
5ポイント | 50
7ポイント | 70
9ポイント | 90
12ポイント | 120

(b)　リターン情報

0：正常終了

(c)　注意事項

文字サイズだけを変更します。以降のXmapFrmSetDataで有効になります。指定の有効範囲は，XmapFrmSetLineの発行または改ページされるまでです。

この関数を発行しない場合は，ドローの書式属性ダイアログで設定した文字サイズが有効となります。

(10)　XmapFrmSetInterval関数

文字の間隔を指定します。

(a)　形式の説明

端末識別子（termid）
オープン要求関数の戻り値を指定します。

文字の間隔（val）
文字の間隔を指定します。

内容 | 指定値
文字間隔なし | 0
1I～7I | 1～7

(b)　リターン情報

0：正常終了

(c)　注意事項

文字間隔だけを変更します。以降のXmapFrmSetDataで有効になります。指定の有効範囲は，XmapFrmSetLineの発行または改ページされるまでです。

この関数を発行しない場合は，ドローの書式属性ダイアログで設定した文字間隔が有効となります。

(11)　XmapFrmSetFont関数

文字の書体を指定します。

(a)　形式の説明

端末識別子（termid）
オープン要求関数の戻り値を指定します。

書体（val）
書体を指定します。

内容 | 指定値
書体復帰 | 0
明朝 | 1
ゴシック | 2
OCR※ | 9

注※

OCR体は，文字サイズに9ポイントを指定したときだけに有効です。

(b)　リターン情報

0：正常終了

(c)　注意事項

書体だけを変更します。以降のXmapFrmSetDataで有効になります。

指定の有効範囲は，XmapFrmSetLineの発行または改ページされるまでです。

(12)　XmapFrmSetWidth関数

文字の拡大を指定します。

(a)　形式の説明

端末識別子（termid）
オープン要求関数の戻り値を指定します。

横倍角有無（val）
横倍角の有無を指定します。

内容 | 指定値
横倍角する | 1
横倍角しない | 0

(b)　リターン情報

0：正常終了

(c)　注意事項

横倍指定だけを変更します。以降のXmapFrmSetDataで有効になります。

指定の有効範囲は，XmapFrmSetLineの発行または改ページされるまでです。

(13)　XmapFrmSetNewLine関数

改行数を指定します。

(a)　形式の説明

端末識別子（termid）
オープン要求関数の戻り値を指定します。

改行数（val）
改行数を指定します。

内容 | 指定値
改行数 | 0～99

(b)　リターン情報

0：正常終了

(c)　注意事項

改行数だけを変更します。以降のXmapFrmSetLineで有効になります。

指定の有効範囲は，XmapFrmSetLineまでです。

また，XmapFrmSetNewLineとXmapFrmSetChannelは一緒に指定できません。

(14)　XmapFrmSetChannel関数

チャネルスキップを指定します。

(a)　形式の説明

端末識別子（termid）
オープン要求関数の戻り値を指定します。

チャネル番号（val）
チャネル番号を指定します。

内容 | 指定値
行送りしない | 0
紙送りチャネル番号（改ページ）C01を指定します | 1

(b)　リターン情報

0：正常終了

(c)　注意事項

チャネルスキップだけを変更します。以降のXmapFrmSetLineで有効になります。

指定の有効範囲は，XmapFrmSetLineまでです。

また，XmapFrmSetNewLineとXmapFrmSetChannelは一緒に指定できません。

8.4.2　文字編集DLL

＜この項の構成＞

(1)　ファイルの取り込み

(2)　数字から数値に変換

(3)　数値から数字に変換

(4)　右寄せ配置の指定

(5)　左寄せ配置の指定

(1)　ファイルの取り込み

(a)　汎用関数を使用した場合のC言語でのファイルの取り込み

汎用APインタフェースでは，XMAP3が提供するDLLを使用するため，インタフェース宣言ファイルおよびリンケージライブラリを取り込む必要があります。

インタフェース宣言ファイルを取り込みます。

インタフェース宣言ファイルの格納先

XMAP3インストール先¥Include¥X3mwst32.h

リンケージライブラリを取り込みます。リンケージライブラリの格納先を次に示します。

Visual C++ .NET，Visual C++ 6.0の場合

XMAP3インストール先¥Lib¥X3mwst32.lib

Visual C++ 5.0の場合

XMAP3インストール先¥Lib¥V3Compatible¥X3mwst32.lib

(b)　Visual BasicおよびAccessでのファイルの取り込み

文字編集DLLでは，XMAP3が提供するDLLを使用するため，インタフェース宣言ファイルを取り込む必要があります。Visual BasicおよびAccessでの，インタフェース宣言ファイルを取り込む例を次に示します。

［プロジェクト］－［ファイルの追加］を選択し，インタフェーステーブルを指定します。
X3mwst32.bas…インタフェース宣言ファイル

(c)　Delphiでのファイルの取り込み

文字編集DLLでは，XMAP3が提供するDLLを使用するため，インタフェース宣言ファイルを取り込む必要があります。インタフェース宣言ファイルを取り込む例を次に示します。

インタフェース宣言ファイル「X3mwst32.pas」をカレントフォルダにコピーします。

［プロジェクト］－［オプション］を選択し，「ディレクトリ／条件」の検索パスを指定します。

(2)　数字から数値に変換

数字データを数値データに変換します。変換には，文字列変換関数「XmapStrAtoI」を使用します。

(a)　引数

unsigned char　　　*lpszIn：入力領域の先頭アドレス

long　　　　　 nInLng：入力文字の有効桁数

(b)　戻り値（4バイト）

long：数字から数値に変換した結果

(c)　補足説明

*lpszInが示すアドレスからnInLngバイト分で，「0～9」「＋」「－」「￥」「，」の文字だけを抜き出し，数字から数値変換します。不当な文字が検出された時点で，処理を中断し値を返します。変換結果が，long型で表現できない数値の場合，0を返します。

変換例を次に示します。

入力数字 | 出力数値
"¥123,456" | 123456
"-¥123,456" | -123456
"123456" | 123456

(3)　数値から数字に変換

数値データを数字データに変換します。または，数値データを数字データに変換し，変換と同時に文字編集を設定します。変換には，文字列変換関数「XmapStrItoA」を使用します。

(a)　引数

unsigned char    *lpszOut　　出力領域の先頭アドレス
long             nOutLng　　出力領域の長さ
long             nIn　　　　入力数値
long             nFormat　　編集形式
     XMAPSTR_SUM　　　　　　　=0x00800000：コンマ編集
     XMAPSTR_SYMBOL　　　　　 =0x00400000：先頭に"¥"付加
     XMAPSTR_FRONT　　　　　　=0x00080000：先頭に符号付加
     XMAPSTR_BACK　　　　　　 =0x00040000：最後に符号付加
     XMAPSTR_PLUS　　　　　　 =0x00020000：プラス値も付加
     XMAPSTR_LEFT　　　　　　 =0x00008000：左寄せ
     XMAPSTR_RIGHT　　　　　　=0x00004000：右寄せ
unsigned char      cData　　埋字

(b)　戻り値

0：正常

1以上：異常（必要な出力領域の桁数）

(c)　補足説明

nInの数値を数字に変換し，nFormatが示す編集をします。*lpszOutからnOutLngの領域へ結果を格納します。余った領域をcDataで埋めます。変換結果よりも出力領域の桁数が短い場合，必要な桁数を返します。

変換例を次に示します。

入力数値 | nFormat | 出力数字
123456 | XMAPSTR_SUM | "123,456"
123456 | XMAPSTR_SYMBOL | "¥123456"
123456 | XMAPSTR_SUM|XMAPSTR_SYMBOL | "¥123,456"
123456 | XMAPSTR_FRONT|XMAPSTR_PLUS | "+123456"
-123456 | XMAPSTR_FRONT|XMAPSTR_PLUS | "-123456"
123456 | XMAPSTR_FRONT | "123456"
-123456 | XMAPSTR_FRONT | "-123456"
-123456 | XMAPSTR_BACK | "123456-"

nOutLng = 10でcData = " "の場合

入力数値 | nFormat | 出力数字
123456 | XMAPSTR_LEFT | "123456 "
123456 | XMAPSTR_RIGHT | " 123456"

(4)　右寄せ配置の指定

指定文字を指定領域へ，右寄せ配置します。右寄せ配置は，「XmapStrMoveRight」関数を使用します。

(a)　引数

unsigned char    *lpszOut　　出力領域の先頭アドレス
long              nOutLng　　出力領域の長さ
unsigned char    *lpszIn 　　入力領域の先頭アドレス
long              nInLng 　　入力文字列の有効桁数
unsigned char     cData　　　埋字

(b)　戻り値

0：正常

(c)　補足説明

*lpszInが示す領域の文字を，*lpszOutからnOutLngバイト分の領域へ右寄せ配置します。左側へは，cDataに指定した文字が埋められます。nInLng＞nOutLngの場合，桁寄せはしません。

右寄せの配置例を次に示します。

入力文字 | 出力文字（nOutLng=10,cData = " "）
"123456" | " 123456"

(5)　左寄せ配置の指定

指定文字を指定領域へ，左寄せ配置します。左寄せ配置は，「XmapStrMoveLeft」関数を使用します。

(a)　引数

unsigned char    *lpszOut　　出力領域の先頭アドレス
long              nOutLng　　出力領域の長さ
unsigned char    *lpszIn 　　入力領域の先頭アドレス
long              nInLng 　　入力文字列の有効桁数
unsigned char     cData　　　埋字

(b)　戻り値

0：正常

(c)　補足説明

*lpszInが示す領域の文字を，*lpszOutからnOutLngバイト分の領域へ左寄せ配置します。右側へは，cDataに指定した文字が埋められます。nInLng＞nOutLngの場合，桁寄せはしません。

左寄せの配置例を次に示します。

入力文字 | 出力文字（nOutLng=10,cData = " "）
"123456" | "123456 "

8.4.3　汎用APインタフェースを使用したコーディング例

汎用APインタフェースを使用したコーディング例について説明します。

＜この項の構成＞

(1)　サンプル概要

(2)　Visual BasicおよびAccessでのコーディング例

(3)　Delphiでのコーディング例

(1)　サンプル概要

各APで汎用の関数を使用し，印刷したサンプル例を次に示します。

(2)　Visual BasicおよびAccessでのコーディング例

Visual BasicおよびAccessでは，C言語のコーディング例と同様のインタフェースで，APを作成できます。Visual BasicでのAPのコーディング例については，「9.3.12　Visual Basicを使用した書式印刷例」を参照してください。また，Accessについても，Visual Basicと同様のコーディングでAPを作成できます。なお，Accessを使用する場合は，表示・印刷セットアップの「アプリケーション1」タブの「マップ」に，書式イメージファイルを格納しているフォルダを指定してください。

(3)　Delphiでのコーディング例

Delphiでは，C言語のコーディング例と同様のインタフェースで，APを作成できます。DelphiでのAPのコーディング例については，「9.3.13　Delphiを使用した書式印刷例」を参照してください。

8.5　書式オーバレイの簡易印刷

指定された書式をテキストファイル中の行データと重ねて印刷する書式オーバレイ印刷ユティリティの実行方法について説明します。このユティリティを利用することで，テキストファイルがあれば簡単に書式付き帳票を印刷できます。また，書式だけをテスト印刷することもできます。

＜この節の構成＞

(1)　書式オーバレイ印刷ユティリティコマンド

(2)　使用例

(1)　書式オーバレイ印刷ユティリティコマンド

(a)　処理の流れ

(b)　形式の説明

書式オーバレイ印刷ユティリティコマンドは，次に示す方法のうちどれかの方法で実行します。

スタートメニューの［ファイル名を指定して実行］

DOSプロンプト

バッチファイル（拡張子：.bat）

APからの実行

書式オーバレイ印刷ユティリティコマンドの形式を次に示します。

-s　印刷サービス名

出力先の印刷サービス名を指定します。

サービス名ファイルの詳細については，マニュアル「XMAP3 開発・実行ガイド」を参照してください。

-f　書式名

出力する書式名を指定します。書式名は，拡張子（.fmp）を除いた8文字以内の文字列で指定します。

書式名を省略したときは，Windows NT 4.0，Windows 2000，Windows XP，Windows Server 2003，またはWindows Server 2003 x64の場合は環境変数「XMAP3_FMP」で指定した名称が仮定されます。

テキストファイル

テキストファイルの名称を指定します。テキストファイルは，ASCIIコードおよびシフトJISコードから構成されるファイルで，文字，数字，記号だけのファイルとします。制御コードは，改行，および改ページコードだけで，テキストファイルの先頭から行データとして印刷します。なお，有効となるのは，一行につき1,024文字までです。1,025文字以降は，入力しても無効になります。

-T　書式名

テスト印刷する書式名を指定します。書式名は，拡張子（.fmp）を除いた8文字以内の文字列で指定します。テスト印刷の場合は，必ず書式名を指定します。

コマンド終了コード

書式オーバレイ印刷ユティリティコマンドの終了コードを次に示します。

0：正常終了

1：異常終了

(c)　注意事項

テスト印刷，またはAP実行環境で書式オーバレイをシリアルプリンタに印刷する場合，プリンタの設定が必要になります。表示・印刷セットアップのプリンタの種類で「ページ帳票／書式印刷」のプリンタを選んでください。

テスト印刷の実行環境で，書式イメージファイルと行制御データファイルは，同じフォルダに格納してください。

書式オーバレイなしの行データだけの印刷はできません。ただし，何も定義していない空の書式を作成すると，行データだけの印刷ができます。

印刷時には，表示・印刷セットアップで設定したAP環境ファイル（X3MWDRV）のmapPathで指定されているフォルダが参照されます。mapPathで指定されているフォルダに指定した書式ファイルがない場合は，実行時フォルダが参照されます。

指定したテキストファイルの内容は，1行ごとに行データとして印刷されます。指定できる行データには上限があります。指定できる行データおよび1ページデータ量の上限値を算出する概算式については，「付録D.3(2)　使用言語がC言語の場合」を参照してください。なお，概算式での「項目データの数」は「1」となります。

(2)　使用例

次に，書式オーバレイ印刷ユティリティで出力した印刷例と指定例を示します。

(a)　印刷例

(b)　指定例

Visual Basicで作成した印刷ユディリティの指定例を示します。

なお，XMAP3のインストール先¥Samples¥other¥Vb¥JYUTUKU.vbpに，Visual Basicの例題プログラムを提供しています。

8.6　書式オーバレイのFAX出力

FAXC/SPOOLまたは一般のFAX通信プログラムを使用して，プリンタ出力と同様にFAXに書式オーバレイ帳票出力ができます。FAXC/SPOOLと連携したFAX出力をする場合は，書式オーバレイ帳票出力APからXMAP3のFAX宛先ファイルへ宛先情報を書き込んでFAXの宛先を動的に変更します。

FAX出力についての詳細はマニュアル「XMAP3 開発・実行ガイド」を参照してください。なお，FAXC/SPOOLの詳細については，マニュアル「Windows NT FAXコネクション Version3.0 ユーザーズガイド」，または FAXC/SPOOLが提供する「使用の手引き.pdf」を参照してください。

9.　標準パターンを使用したAPの作成

XMAP3が用意している帳票の定義サンプルとAPパターンとを組み合わせることで，帳票を出力するAPを作成できます。

この章では，帳票の定義サンプルやAPパターンにユーザ独自の処理を加える際のポイントを，目的別の例題に沿って説明します。

＜この章の構成＞

9.1　標準パターン

9.2　APパターンを使用した機能別の作成例

9.3　ユーザAP例

9.1　標準パターン

XMAP3では，APを効率良く開発する目的で標準パターンを用意しています。標準パターンには，AP作成時に利用できる「APパターン」があります。

この節では，COBOLエディタからのAPパターンの利用とC言語パターンの利用方法について説明します。

なお，OLTPサーバ構成の環境では，OLTPサーバ構成専用の標準パターンだけ使用できます。

＜この節の構成＞

9.1.1　帳票のパターンとプログラムのパターン

9.1.2　COBOLエディタからのAPパターンの利用

9.1.3　C言語用パターンの利用方法

9.1.1　帳票のパターンとプログラムのパターン

＜この項の構成＞

(1)　APパターンとAP部品

(2)　定義サンプルとAPパターンの組み合わせ

(1)　APパターンとAP部品

XMAP3では，APの定型的な型として，COBOL用とC言語用のAPパターンとAP部品を用意しています。

APパターン

COBOLの場合
COBOLソースプログラムの見出し部，データ部，手続き部など，プログラム全体の標準的な骨組みが記述されているので，メインプログラムとして利用できます。

C言語の場合
C言語ソースプログラムの標準的な骨組みが記述されているので，メインプログラムとして利用できます。

AP部品
業務共通に，頻繁に使用すると考えられる処理の手続きが記述されているので，サブルーチンとして利用できます。

XMAP3で作成した帳票を取り込むソースプログラム作成時には，これらのパターンを組み合わせて使用することで，APを効率良く開発できるほか，コーディングの統一を図れます。コーディング時には，マップ名を8文字以内の半角英数字に変更するほか，ユーザ独自の処理を加えてください。

AP部品をAPパターンへ組み込む方法については，「9.1.2　COBOLエディタからのAPパターンの利用」または「9.1.3　C言語用パターンの利用方法」を参照してください。

(2)　定義サンプルとAPパターンの組み合わせ

業務目的に合った帳票の定義サンプルとAPパターンの組み合わせを次の表に示します。

表9-1　帳票の定義サンプルとAPパターンの組み合わせ

業務目的
定義サンプルの
マップ名
APパターン名
例題の
説明個所

COBOL同一帳票の複数枚印刷
PTABL5
GENREP01
9.2.2

COBOL複数種類の帳票印刷
PTABL5
PTABL7
GENREP01
NXTREP01
9.2.3

C言語同一帳票の複数枚印刷
PTABL5
GENREP01
9.2.4

CALLインタフェースを使用した
COBOL同一帳票の複数枚印刷
PTABL5
GENREP02
9.2.5

書式オーバレイを使用した帳票の複数枚印刷（COBOL）
FORMA4
GENOVL01
9.2.6

書式オーバレイを使用した帳票の複数枚印刷（C言語）
STD1FH
GENOVL01
9.2.7

OLTPサーバ構成での帳票印刷
（COBOL，C言語）
MCF1G
MCF1P
MCF2G
MCF3G
MCF4G
MCF5G
MCFDP01
マニュアル
「画面編」※

注

定義サンプルのマップは，XMAP3インストール先の「¥Samples¥Dspmap」または「¥Samples¥Prtmap」に，APパターンは「¥Patterns」にそれぞれ格納されています。

注※

マニュアル「画面編」の正式名称は，マニュアル「XMAP3 プログラミングガイド 画面編」です。

9.1.2　COBOLエディタからのAPパターンの利用

日立COBOLを利用する場合，COBOLエディタを使用してXMAP3のAPパターンおよびAP部品を編集できます。エディタウィンドウで［ファイル］－［開く］を選択し，XMAP3インストール先¥Patternsの下にあるファイル名（拡張子が.cbl）を指定するとソースプログラムを編集できる状態になります。なお，エディタウィンドウでの操作方法については，マニュアル「COBOL2002 操作ガイド」またはマニュアル「COBOL85 操作ガイド」を参照してください。

また，日立COBOLと連携すると，COBOLエディタでXMAP3のプログラムテンプレート（拡張子が.cetのファイル）を利用できます。プログラムテンプレートの内容は，XMAP3のAPパターンと同じです。

なお，XMAP3で使用できる日立COBOLは，COBOL2002，COBOL85 Version 5.0，Version 6，またはVersion 7です。ただし，使用できる日立COBOLは，OSによって異なります。XMAP3で使用できる日立COBOLを，OSごとに次の表に示します。

表9-2　使用できる日立COBOL

OS名 | COBOL2002 | COBOL85
Version 5.0 | Version 6 | Version 7
Windows 95 | × | ○ | ○ | ×
Windows 98 | ○ | ○※1 | ○ | ○
Windows Me | ○ | × | ○※2 | ○
Windows NT 4.0 | ○ | ○ | ○ | ○
Windows 2000 | ○ | × | ○※3 | ○
Windows XP | ○ | × | × | ○
Windows Server 2003 | ○※4 | × | × | ×
Windows Server 2003 x64 | ○※4 | × | × | ×

（凡例）

○：使用できる。

×：使用できない。

注※1

使用できるバージョンは05-01以降となります。

注※2

使用できるバージョンは06-03以降となります。

注※3

使用できるバージョンはOSによって異なります。

・Windows 2000 Server，およびWindows 2000 Professional：06-01以降

・Windows 2000 Advanced Server：06-03以降

・Windows 2000 Datacenter Server：06-04以降

注※4

使用できるバージョンの詳細については，関連するプログラムプロダクトでご確認ください

＜この項の構成＞

(1)　プログラムテンプレートを使用したファイルの編集方法

(2)　COBOLエディタでのAP部品の利用方法

(1)　プログラムテンプレートを使用したファイルの編集方法

COBOLエディタでXMAP3のプログラムテンプレートを使用してファイルを編集する方法を説明します。

なお，この方法でプログラムテンプレートを使用すると，そのつど，ファイル名を指定して参照する必要があります。COBOLエディタが提供しているテンプレート以外のファイルを，常にテンプレートファイルのリストに表示したい場合の設定方法については，マニュアル「COBOL2002 操作ガイド」またはマニュアル「COBOL85 操作ガイド」を参照してください。

(a)　COBOL2002，COBOL85 Version 7およびVersion 6の場合

COBOLエディタのエディタウィンドウで，［ファイル］－［新規作成］を選択する。
新規作成ダイアログが表示されます。

作成したいファイルの種類を選ぶ。
必要に応じてファイルの拡張子も選びます。

ファイルの種類に対応するプログラムテンプレートの［...］ボタンをクリックする。

ファイルを開くダイアログで，「ファイルの場所」に「XMAP3インストール先￥Patterns￥Cobol」を指定する。
XMAP3のプログラムテンプレートが表示されます。

使用したいプログラムテンプレートのファイルを選択する。
テンプレートファイルのリストに選択したファイル名が追加されます。

［OK］ボタンをクリックする。
新規にファイルが作成され，プログラムテンプレートの内容がソースウィンドウに表示されます。

(b)　COBOL85 Version 5.0の場合

COBOLエディタのエディタウィンドウで，［ファイル］－［新規作成］を選択する。
新規作成ダイアログが表示されます。

エディタウィンドウのテンプレートで［参照...］ボタンをクリックする。

ファイルの参照ダイアログで，「ファイルの場所」に「XMAP3インストール先￥Patterns￥Cobol」を指定する。
XMAP3のプログラムテンプレートが表示されます。

使用したいプログラムテンプレートのファイルを選択する。
テンプレートファイルのリストに選択したファイル名が追加されます。

［OK］ボタンをクリックする。
新規にファイルが作成され，プログラムテンプレートの内容がソースウィンドウに表示されます。

(2)　COBOLエディタでのAP部品の利用方法

XMAP3のAP部品をCOBOLエディタで利用する方法を説明します。AP部品は，拡張子が.cblのファイルとして提供されています。このため，COBOLエディタでは，AP部品を一つのソースファイルとして扱います。

ソースウィンドウで，部品パターンを挿入したい位置にカーソルを移動する。

［編集］－［ファイルの挿入］を選択する。
挿入するソースファイルを指定するダイアログが表示されます。

「XMAP3インストール先￥Patterns￥Cobol」を指定し，使用したいAP部品のファイルを選択する。

［OK］ボタンをクリックする。
指定したソースファイルのすべての内容が，カーソル位置に挿入されます。

9.1.3　C言語用パターンの利用方法

XMAP3のAP部品をVisual C++で利用する方法を説明します。

AP部品は，拡張子が.cのファイルとして提供されています。AP部品は一つのソースファイルとして扱われます。

ソースウィンドウで，AP部品を挿入したい位置にカーソルを移動する。

［挿入］－［ファイル］を選択する。
挿入するソースファイルを指定するダイアログが表示されます。

「XMAP3インストール先￥Patterns￥C」を指定し，使用したいAP部品のファイルを選択する。

［OK］ボタンをクリックする。
指定したソースファイルのすべての内容が，カーソル位置に挿入されます。

9.2　APパターンを使用した機能別の作成例

APパターンを使用した機能別の作成例について説明します。

＜この節の構成＞

9.2.1　APパターンの一覧

9.2.2　GENREP01パターン（COBOL）を使用した同一帳票の複数枚印刷

9.2.3　GENREP01パターン（COBOL）を使用した複数種類の帳票印刷

9.2.4　GENREP01パターン（C言語）を使用した同一帳票の複数枚印刷

9.2.5　GENREP02パターン（COBOL）を使用した同一帳票の複数枚印刷

9.2.6　GENOVL01パターン（COBOL）を使用した複数枚印刷

9.2.7　GENOVL01パターン（C言語）を使用した同一帳票の複数枚印刷

9.2.8　MODATR02部品を使用したフィールド属性およびけい線属性の変更

9.2.1　APパターンの一覧

XMAP3が提供するAPパターンの一覧を次の表に示します。

表9-3　APパターンの一覧

APパターン名
言語
業務目的
例題の
説明個所

GENREP01
COBOL
COBOLのSEND文を使用した帳票印刷
9.2.2，9.2.3

C
CのCALL文を使用した帳票印刷
9.2.4

GENREP02
COBOL
COBOLのCALL文を使用した帳票印刷
9.2.5

GENOVL01
COBOL
COBOLのWRITE文を使用した書式付き帳票印刷
9.2.6

C
CのCALL文を使用した書式付き帳票印刷
9.2.7

MODATR02
COBOL
COBOLのSEND文を使用して，文字属性やけい線の種別を動的に変更した帳票印刷
9.2.8

9.2.2　GENREP01パターン（COBOL）を使用した同一帳票の複数枚印刷

1種類の帳票を一つのAPから複数枚印刷する方法について説明します。

＜この項の構成＞

(1)　処理の概要

(2)　帳票定義上のポイント

(3)　AP作成上のポイント

(4)　コーディング例

(1)　処理の概要

注文書3ページ分のデータを読み込み，帳票を無条件に3部印刷します。

注文書を印刷するときの処理概要を次の図に示します。

図9-1　注文書の印刷

(2)　帳票定義上のポイント

作成する帳票の基になる定義サンプルを次に示します。

注文書の定義サンプル：PTABL5

この定義サンプルは，ページプリンタ　網掛け帳票用です。印刷部数は1部で指定してあります。

(3)　AP作成上のポイント

作成するAPの基になるAPパターンを次に示します。

メインプログラムで使用するAPパターン名：GENREP01
このAPパターンでは，帳票に出力するデータは固定データを代入して，無条件に帳票を3部印刷する仕様になっています。ファイルからデータを読み込む仕様にする場合は，別にコーディングを追加する必要があります。

このほかに，AP作成時には次の注意が必要です。

出力先がページプリンタであるため，物理マップ名は「マップ名6B」を指定します。

印刷データがない場合に出力論理マップをクリアする処理を追加します。

印刷処理の繰り返し方法，および印刷を終了するタイミングを指定します。

(4)　コーディング例

この例題のソースプログラムを'PRTREP03.cbl'として標準提供しています。ソースプログラムからコーディング上のポイントを抜粋して次に示します。

マップ名の変更
プログラム中の'¥¥¥111'を'PTABL5'に，'XX'を'6B'に変更します。

出力データの代入

帳票の印刷

9.2.3　GENREP01パターン（COBOL）を使用した複数種類の帳票印刷

2種類以上の帳票を一つのAPで印刷する方法について説明します。

＜この項の構成＞

(1)　処理の概要

(2)　帳票定義上のポイント

(3)　AP作成上のポイント

(4)　コーディング例

(1)　処理の概要

注文書を印刷したあとで，商品管理台帳を印刷します。

図9-2　2種類の帳票の印刷

(2)　帳票定義上のポイント

作成する帳票の基になる定義サンプルを次に示します。

注文書の定義サンプル：PTABL5

商品管理台帳の定義サンプル：PTABL7

上記のどちらの帳票も，ページプリンタ　網掛け帳票用です。印刷部数は1部で指定してあります。

(3)　AP作成上のポイント

作成するAPの基になるAPパターンを次に示します。

メインプログラムで使用するAPパターン名：GENREP01

サブルーチンで使用するAP部品名：NXTREP01
このプログラムでは，帳票に出力するデータは固定データを代入して，「注文書」印刷後，無条件に「商品管理台帳」を印刷する仕様になっています。ファイルからデータを読み込む仕様にする場合は，別にコーディングを追加する必要があります。このほかに，AP作成時には，印刷データがない場合に出力論理マップをクリアする処理を追加する必要があります。

(4)　コーディング例

この例題のソースプログラムを'PRTPAGES.cbl'として標準提供しています。ソースプログラムからコーディング上のポイントを抜粋して次に示します。

マップ名の変更
プログラム中の'¥¥¥111'を'PTABL5'に，'¥¥¥333'を'PTABL7'に，'XX'を'6B'に変更します。

出力データの代入および部品パターン「NXTPRT01」の取り込み

帳票の印刷

9.2.4　GENREP01パターン（C言語）を使用した同一帳票の複数枚印刷

1種類の帳票を一つのAPから複数枚印刷する方法について説明します。

＜この項の構成＞

(1)　処理概要

(2)　帳票定義上のポイント

(3)　AP作成上のポイント

(4)　コーディング例

(1)　処理概要

注文書3ページ分のデータを読み込み，帳票を無条件に3部印刷します。

注文書を印刷するときの処理概要を次の図に示します。

図9-3　注文書の印刷

(2)　帳票定義上のポイント

作成する帳票の基になる定義サンプルを次に示します。

注文書の定義サンプル：PTABL5

この定義サンプルは，ページプリンタ　網掛け帳票用です。印刷部数は1部で指定してあります。

(3)　AP作成上のポイント

作成するAPの基になるAPパターンを次に示します。

メインプログラムで使用するAPパターン名：GENREP01
このAPパターンでは，帳票に出力する出力データは固定データを代入して，無条件に帳票を3部印刷する仕様になっています。ファイルからデータを読み込む仕様にする場合は，別にコーディングを追加する必要があります。

このほかに，AP作成時には次の注意が必要です。

出力先がページプリンタであるため，物理マップ名は「マップ名6B」を指定します。

印刷データがない場合に出力論理マップをクリアする処理を追加します。

印刷処理の繰り返し方法，および印刷を終了するタイミングを指定します。

(4)　コーディング例

この例題のソースプログラムを'PRTREP03.c'として標準提供しています。

ソースプログラムからコーディング上のポイントを抜粋して次に示します。

マップ名の変更
プログラム中の'¥¥¥111'を'PTABL5'に，'XX'を'6B'に変更します。

印刷処理の繰り返し回数の指定

出力データの代入

9.2.5　GENREP02パターン（COBOL）を使用した同一帳票の複数枚印刷

COBOLのCALLインタフェースを使用して，1種類の帳票を一つのAPから複数枚印刷する方法について説明します。

＜この項の構成＞

(1)　処理の概要

(2)　帳票定義上のポイント

(3)　AP作成上のポイント

(4)　コーディング例

(1)　処理の概要

注文書3ページ分のデータを読み込み，帳票を無条件に3部印刷します。

注文書を印刷するときの処理概要を次の図に示します。

図9-4　注文書の印刷

(2)　帳票定義上のポイント

作成する帳票の基になる定義サンプルを次に示します。

注文書の定義サンプル：PTABL5

この定義サンプルは，ページプリンタ　網掛け帳票用です。印刷部数は1部で指定してあります。

(3)　AP作成上のポイント

作成するAPの基になるAPパターンを次に示します。

メインプログラムで使用するAPパターン名：GENREP02
このAPパターンでは，帳票に出力するデータは固定データを代入して，無条件に帳票を1部印刷する仕様になっています。ファイルからデータを読み込む仕様にする場合は，別にコーディングを追加する必要があります。

このほかに，AP作成時には次の注意が必要です。

出力先がページプリンタ　網掛け帳票であるため，物理マップ名は「マップ名6B」で指定します。

印刷データがない場合に出力論理マップをクリアする処理を追加します。

印刷処理の繰り返し方法，および印刷を終了するタイミングを指定します。

(4)　コーディング例

この例題のソースプログラムを'PRTREP04.cbl'として標準提供しています。ソースプログラムからコーディング上のポイントを抜粋して次に示します。

マップ名の変更
プログラム中の'¥¥¥111'を'PTABL5'に，'XX'を'6B'に変更します。

出力データの代入

帳票の印刷

9.2.6　GENOVL01パターン（COBOL）を使用した複数枚印刷

書式オーバレイを使用して帳票を複数枚印刷するときの方法を説明します。

＜この項の構成＞

(1)　処理の概要

(2)　書式定義上のポイント

(3)　AP作成上のポイント

(4)　コーディング例

(1)　処理の概要

書式付き帳票を3部印刷します。納品書兼請求書の書式に3ページ分の出力データを重ねてページプリンタに印刷します。

書式付き帳票を複数枚印刷する処理の概要を次の図に示します。

図9-5　書式付き帳票の複数枚印刷

(2)　書式定義上のポイント

作成する書式の基になる書式サンプルを次に示します。

納品書兼請求書の定義サンプル：FORMA4

(3)　AP作成上のポイント

作成するAPの基になるAPパターンを次に示します。

メインプログラムで使用するAPパターン名：GENOVL01

このプログラムでは，帳票に出力するデータは固定データを代入して，帳票を無条件に3部印刷する仕様になっています。

AP作成時には，ヘッダ，ボディ（明細），トレイラ部分を印刷するタイミングを考慮する必要があります。また，ファイルからデータを読み込む仕様にする場合は，ファイルの入出力処理を追加してください。

(4)　コーディング例

この例題のソースプログラムを'FORMOVLY.cbl'として標準提供しています。ソースプログラムからコーディング上のポイントを抜粋して次に示します。

9.2.7　GENOVL01パターン（C言語）を使用した同一帳票の複数枚印刷

C言語のAPから書式オーバレイを使用して帳票を複数枚印刷するときの方法を説明します。

＜この項の構成＞

(1)　処理の概要

(2)　書式定義上のポイント

(3)　AP作成上のポイント

(4)　コーディング例

(1)　処理の概要

書式付き帳票を3部印刷します。納品書兼請求書の書式に3ページ分の出力データを重ねてページプリンタに印刷します。

書式付き帳票を複数枚印刷する処理の概要を次の図に示します。

図9-6　書式付き帳票の複数枚印刷

(2)　書式定義上のポイント

作成する書式の基になる書式サンプルを次に示します。

納品書兼請求書の定義サンプル：STD1FH

(3)　AP作成上のポイント

作成するAPの基になるAPパターンを次に示します。

メインプログラムで使用するAPパターン名：GENOVL01

このプログラムでは，帳票に出力するデータは固定データを代入して，帳票を無条件に1部印刷する仕様になっています。

AP作成時には，ヘッダ，ボディ（明細），トレイラ部分を印刷するタイミングを考慮する必要があります。また，ファイルからデータを読み込む仕様にする場合は，ファイルの入出力処理を追加してください。

(4)　コーディング例

この例題のソースプログラムを'FORMOVLY.c'として標準提供しています。ソースプログラムからコーディング上のポイントを抜粋して次に示します。

9.2.8　MODATR02部品を使用したフィールド属性およびけい線属性の変更

ページプリンタのグラフィック帳票では，帳票印刷時にフィールド属性（強調，網掛け，抹消線など）や，けい線の種別（引くまたは引かないなど）を変更できます。

ここでは，けい線の属性変更について説明します。

＜この項の構成＞

(1)　処理の概要

(2)　書式定義上のポイント

(3)　AP作成上のポイント

(4)　コーディング例

(1)　処理の概要

DBなどから何行分かの印字データを読み込みます。そのあと，印字データのある行にだけ横けい線を引くようにします。印字データのない行については，横けい線を引きません。

図9-7　けい線の属性変更処理

(2)　書式定義上のポイント

作成する書式の基になる定義サンプルを次に示します。

けい線の属性変更の定義サンプル：MDL1PC
なお，帳票作成時には，次の注意が必要です。

けい線の種類として，「見えない線」を選択します。

「動的変更」をチェックします。

(3)　AP作成上のポイント

作成するAPの基になるAPパターンおよびAP部品を次に示します。

メインプログラムで使用するAPパターン名：GENREP01

属性変更として使用するAP部品：MODATR02

このAP部品は，フィールド属性変更およびけい線の属性変更の両ケースに対応できるようになっています。使用するケースに合わせて使い分けてください。この例では，けい線の属性変更だけを使用します。

(4)　コーディング例

この例題のソースプログラムを'MDLINPC.cbl'として標準提供しています。ソースプログラムからコーディング上のポイントを抜粋して次に示します。

マップ名の変更
プログラム中の'¥¥¥111'を'MDL1PC'に，'XX'を'6G'に変更します。

動的変更用テーブルの取り込み

印字データの設定

AP部品「MODATR02」の取り込み
6行分，横けい線を引きます。

帳票の印刷

9.3　ユーザAP例

XMAP3が提供するユーザAP例について説明します。なお，OLTPサーバ構成の環境では，OLTPサーバ構成用のAP例だけ使用できます。

＜この節の構成＞

9.3.1　APサンプルのコンパイルと実行手順

9.3.2　COBOLでのグラフィック帳票出力例（標準帳票例題）

9.3.3　C言語でのグラフィック帳票出力例（帳票入門例題）

9.3.4　COBOLによるけい線の動的変更例（表サイズ変更例題）

9.3.5　COBOLによるフィールド属性の動的変更例（文字強調変更例題）

9.3.6　COBOLによるフィールドの重ね印字例（重ね印刷例題）

9.3.7　日立運用管理システムJP1を使用した例

9.3.8　COBOLでの標準的な書式オーバレイ例（標準書式例題）

9.3.9　COBOLでのコントロールブレークを利用した例（ブレーク項目例題）

9.3.10　COBOLでのCSVファイルを利用した書式印刷例（CSVファイル印刷例題）

9.3.11　FAX印刷例

9.3.12　Visual Basicを使用した書式印刷例

9.3.13　Delphiを使用した書式印刷例

9.3.1　APサンプルのコンパイルと実行手順

APサンプルのコンパイルと実行手順について説明します。

＜この項の構成＞

(1)　COBOLを使用したプログラムサンプル

(2)　 C言語を使用したプログラムサンプル

(3)　プログラムサンプルを実行するための設定

(1)　COBOLを使用したプログラムサンプル

COBOLを使用したプログラムサンプルは，日立COBOLの開発マネージャを利用することで，コンパイルおよび実行ができます。

(a)　COBOL用サンプルの準備

COBOL用プログラムサンプルは，次に示すフォルダに格納されているので，別の任意のフォルダにコピーしてお使いください。なお，帳票印刷ではインクルードファイルとして次のファイルも使用します。このため，これらのファイルをコピーするか，または環境変数CBLLIBにフォルダを割り当ててください。

プログラムサンプルの格納先（プロジェクトファイル，ソースファイル，定義ファイル，テキストファイル）
XMAP3インストール先¥Samples¥Cobol

インクルードファイルの格納先
XMAP3インストール先¥Include¥X3modtbl.cbl

(b)　プログラムサンプルのプロジェクトファイル名

COBOL用として提供しているプログラムサンプルのプロジェクトファイルと関連するファイルを次の表に示します。

表9-4　COBOLのサンプル例題と関連ファイル名一覧

種
別
プログラム
サンプル名称
プロジェクト
ファイル名※
ソース
ファイル名
定義
ファイル名
テキスト
ファイル

ペ
｜
ジ
帳票入門例題
JYUTUPC.pmi
JYUTUPC.cbl
JYU1PC.imp
－

標準帳票例題
STDPRPC.pmi
STDPRPC.cbl
STD1PC.imp
－

表サイズ変更例題
MDLINPC.pmi
MDLINPC.cbl
MDL1PC.imp
－

文字強調変更例題
MDCHRPC.pmi
MDCHRPC.cbl
MDC1PC.imp
－

重ね印刷例題
OVCHRPC.pmi
OVCHRPC.cbl
OVC1PC.imp
－

OLTPサーバ構成での受発注業務
－
MCF1G.cbl
MCF2G.cbl
MCF3G.cbl
MCF4G.cbl
MCF5G.cbl
MCF1G.imp
MCF2G.imp
MCF3G.imp
MCF4G.imp
MCF5G.imp
－

書
式
書式入門例題
JYUTUFC.pmi
JYUTUFC.cbl
JYU1FC.ifm
JYUTUFC.txt

標準書式例題
STDPRFC.pmi
STDPRFC.cbl
STD1FC.ifm
STDPRFC.txt

ブレーク項目例題
BRKPTFC.pmi
BRKPTFC.cbl
BRK1FC.ifm
JYUDEN
JYUSHO

CSVファイル印刷例題
CSVPRFC.pmi
CSVPRFC.cbl
CSV1FC.ifm
CSVPRFC.csv

（凡例）

－：ファイルなし。

注※

XMAP3で提供しているプロジェクトファイルは，COBOL85 Version 5.0形式ですが，COBOL2002，COBOL85 Version 7またはVersion 6でも使用できます。提供しているファイルをCOBOL2002，COBOL85 Version 7またはVersion 6のCOBOL開発マネージャで開くと，COBOL2002，COBOL85 Version 7またはVersion 6対応のプロジェクトファイルを自動生成します。

(c)　プログラムサンプルのコンパイルと実行手順

コンパイル
日立COBOLのCOBOL開発マネージャを使用して，プログラムサンプルをコンパイルします。

COBOL2002，COBOL85 Version 7およびVersion 6の場合
COBOL開発マネージャのツリービューウィンドウで，各プログラムサンプルに応じたプロジェクト名を選び，右クリックで表示されるメニューから［選択中のプロジェクトのビルド］を選ぶと，自動的にコンパイルされ，実行ファイルが生成されます。

COBOL85 Version 5.0の場合
各プログラムサンプルに応じたプロジェクトファイル名を選び，COBOL開発マネージャの［プロジェクト］－［ビルド］を選択すると，自動的にコンパイルがされ，実行ファイルが作成されます。
コンパイル時には，次のフォルダにあるインポートライブラリを使用してください。
XMAP3インストール先¥Lib¥V3Compatible

実行手順
日立COBOLのCOBOL開発マネージャを使用して，プログラムサンプルを実行します。

COBOL2002，COBOL85 Version 7およびVersion 6の場合
プログラムの実行には，実行支援を使用して実行環境を設定して実行する方法と，実行環境を使用しないでそのまま実行する方法があります。
＜実行環境を設定して実行する＞
COBOL開発マネージャのウィンドウの［ビルド］－［実行支援］を選び，表示されるダイアログで実行環境を設定して実行します。
＜実行環境を設定しないで実行する＞
COBOL開発マネージャのウィンドウの［ビルド］－［実行］を選び，表示されるダイアログで実行プログラム名を指定して実行します。

COBOL85 Version 5.0の場合
各プログラムサンプルに応じたプロジェクトファイル名を選び，COBOL開発マネージャの［実行］－［実行］を選ぶと，実行ダイアログ上のコマンドライン上に実行ファイル名が表示されるので，［OK］ボタンを選んで，プログラムサンプルを実行します。

なお，各プログラムサンプルの実行ファイル名は，プロジェクトファイル名と同じです。
すでに実行ファイルを作成している場合は，エクスプローラまたはファイルマネージャから，実行ファイルを起動することでプログラムサンプルを実行できます。

(2)　 C言語を使用したプログラムサンプル

C言語を使用したプログラムサンプルは，以下の手順でコンパイルおよび実行できます。

(a)　C言語用サンプルの準備

C言語用プログラムサンプルは，次のフォルダに格納されているので，別の任意のフォルダにコピーしてお使いください。なお，インクルードファイルとして次のファイルも使用するので，これらのファイルもコピーしてください。

プログラムサンプルの格納先（MAKEファイル，ソースファイル，定義ファイル，テキストファイル）
XMAP3インストール先¥Samples¥C

インクルードファイルの格納先
XMAP3インストール先¥Include¥X3modtbl.h
XMAP3インストール先¥Include¥Jsvwatbl.h
XMAP3インストール先¥Include¥Jstqlcom.h（書式用のプログラムサンプルだけに必要）

(b)　プログラムサンプルのソースファイル名とマップ定義ファイル名

C言語用として提供しているプログラムサンプルのソースファイル名と関連するマップ定義ファイル名を次の表に示します。

表9-5　C言語のサンプル例題と関連ファイル名一覧

種
別
プログラム
サンプル名称
実行
ファイル名
ソース
ファイル名
定義
ファイル名
テキスト
ファイル

ペ
｜
ジ
帳票入門例題
JYUTUPH.exe
JYUTUPH.c
JYU1PH.imp
－

標準帳票例題
STDPRPH.exe
STDPRPH.c
STD1PH.imp
－

表サイズ変更例題
MDLINPH.exe
MDLINPH.c
MDL1PH.imp
－

文字強調変更例題
MDCHRPH.exe
MDCHRPH.c
MDC1PH.imp
－

重ね印刷例題
OVCHRPH.exe
OVCHRPH.c
OVC1PH.imp
－

OLTPサーバ構成での受発注業務
－
MCF1G.c
MCF2G.c
MCF3G.c
MCF4G.c
MCF5G.c
MCF1G.imp
MCF2G.imp
MCF3G.imp
MCF4G.imp
MCF5G.imp
－

書
式
書式入門例題
JYUTUFH.exe
JYUTUFH.c
JYU1FH.ifm
JYUTUFH.txt

標準書式例題
STDPRFH.exe
STDPRFH.c
STD1FH.ifm
STDPRFH.txt

CSVファイル印刷例題
CSVPRFH.exe
CSVPRFH.c
CSV1FH.ifm
CSVPRFH.txt

（凡例）

－：ファイルなし。

(c)　プログラムサンプルで使用するマップの生成

プログラムサンプルを実行する場合，プログラムサンプルに対応したマップを作成する必要があります。実行プログラムサンプルとマップ定義ファイルとの対応は，「表9-4　COBOLのサンプル例題と関連ファイル名一覧」を参照してください。

(d)　プログラムサンプルのコンパイルと実行手順

コンパイル
コンパイルするには，製品に対応したMAKEファイルを使用します。次に，コンパイル手順を示します。

MAKEファイル中の，「XMAP3INSTALL=..¥」を，XMAP3インストール先に変更します※。

MS-DOSプロンプトを開いて，プログラムサンプルのファイルをコピーしたフォルダに移動します。
（例）
　　cd c:¥temp¥sample

実行したいプログラムサンプルに応じて，次に示すコマンドを実行します。
NMAKE　/F　MAKEREP　xxxxxx.EXE
「xxxxxx.EXE」には，実行したいプログラムサンプルの実行ファイル名を入れてください。実行ファイル名については，「表9-5　C言語のサンプル例題と関連ファイル名一覧」を参照ください。

注※

Visual C++ 5.0でコンパイルする場合は，次のフォルダに提供されているインポートライブラリを使用するように，MAKEファイルの「XMAPLIBDIR」を変更してください。

　　XMAP3インストール先¥Lib¥V3Compatible

実行手順
プログラムサンプルを実行します。実行手順は次のどちらかです。なお，実行ファイル名については，表9-5を参照してください。

スタートメニューの［ファイル名を指定して実行］で，各プログラムサンプルに応じた実行ファイル名を指定して，実行します。

エクスプローラまたはファイルマネージャから，プログラムサンプルをコピーしたフォルダに移動し，実行ファイルを起動することで，プログラムサンプルを実行できます。

(3)　プログラムサンプルを実行するための設定

プログラムサンプルを実行するための設定について，次に示します。

(a)　用紙サイズ，印刷向きの設定，および表示・印刷セットアップの実行

プログラムサンプル実行の前に，印刷に必要なプリンタの接続や適切なプリンタドライバの設定をしてください。また，表示・印刷セットアップの「プリンタ」タブで次の設定をしてください。帳票は「通常使うプリンタ」に出力されます。

仮想端末名：PRT001

サービス名：#PRT

印刷モード：「GDI：ページプリンタ」，またはプリンタがLIPS対応の場合は「PDLスルー：LIPS準拠ページプリンタ」

9.3.2　COBOLでのグラフィック帳票出力例（標準帳票例題）

ページプリンタのグラフィック帳票で使用するオブジェクトを利用した，標準的な帳票の出力例について説明します。

帳票を使用したユーザAP例として，家電販売で受注した家電用品の発注商品管理台帳を出力する処理を想定した業務を，COBOLで作成した例題について説明します。

(a)　出力例

注

物理マップサイズの目安は，約19KBです。

(b)　コーディング例

コーディング例を次に示します。マップ名は，「STD1PC」です。

プログラムサイズは，約49KBです。

なお，この例題では，印字データもMOVE文で設定しているので，DBなどから読み込むよう，変更してください。

000100**********************************************************
000200*       ページプリンタ グラフィック帳票用標準帳票ＡＰ例          *
000300**********************************************************
000400 IDENTIFICATION    DIVISION.                      
000500 PROGRAM-ID.       STDPRPC.                        
000600                                                  
000700 ENVIRONMENT       DIVISION.                
000800                                      
000900 DATA              DIVISION.          
001000 WORKING-STORAGE   SECTION.            
001100   01  DB-AREA.                        
001200     02  DB-MEISAI      OCCURS  40.        
001300       03  MEI-NUM      PIC  X(2).        
001400       03  MEI-S-CODE    PIC  X(10).      
001500       03  MEI-S-NAME    PIC  N(10).      
001600       03  MEI-TANKA    PIC  9(7).        
001700       03  MEI-SURYOU       PIC  9(3).    
001800   01  FLG-FS           PIC  9(2).        
001900   01  R-CNT            PIC  9(2).
002000   01  WORK             PIC  9(2).        
002100   01  ADDR.                              
002200     02  DUMMY1         PIC  N(16) VALUE N'東京都○×区○×△'.
002300     02  DUMMY2         PIC  X(9) VALUE '546-9'.
002400   01  SYOKEI           PIC  9(10)  COMP.
002500   01  GOUKEI           PIC  9(18)  COMP.
002600   01  PAGENO           PIC  X(3)  VALUE '001'.        
002700   01  H-NAME           PIC  N(6)  VALUE N'港支店'.    
002800   01  H-CODE           PIC  X(2)  VALUE 'S1'.        
002900   01  NEN              PIC  9(2)  VALUE 9.            
003000   01  TSUKI            PIC  9(2)  VALUE 9.            
003100   01  HINICHI          PIC  9(2)  VALUE 30.          
003200   01  NYUUKIN1         PIC  N(8)  VALUE N'銀行振込'.  
003300   01  NYUUKIN2         PIC  N(4)  VALUE N'手形'.      
003400   01  WARI1            PIC  N(6)  VALUE N'カード'.  
003500   01  WARI2            PIC  N(6)  VALUE N'セール'.
003600*
003700*      （以下，省略）
003800*                            
008100   01  回数             PIC  S9(4).                    
008200   77  正常             PIC  X(5)  VALUE '00000'.      
008300                                                      
008400************************************************************
008500*  論理マップと動的変更テーブルの取り込み                        *
008600************************************************************
008700* 論理マップのＣＯＰＹ展開                  
008800   COPY                 STD1PCO.            
008900* 動的変更テーブルのＣＯＰＹ展開          
009000   COPY                 X3MODTBL.          
009100************************************************************
009200*  通信記述                                                    *
009300************************************************************
009400 COMMUNICATION  SECTION.
009500*  ワークステーションプリンタに対する通信記述項
009600 CD  PRT  FOR  OUTPUT  WS
009700     MAP       NAME     IS  帳票マップ名
009800     SYMBOLIC  TERMINAL IS  帳票端末名
009900     STATUS    KEY      IS  帳票-RC.
010000
010100************************************************************
010200*  プログラム開始                                                *
010300************************************************************
010400 PROCEDURE          DIVISION.
010500 初期設定.  
010600************************************************************
010700*  帳票プリント処理                                              *
010800************************************************************
010900 帳票処理.
011000*       帳票端末名（出力先）の設定
011100        MOVE  'PRT001'  TO  帳票端末名.
011200
011300*       出力エリアのクリア
011400        MOVE ALL X'1F' TO STD1PCG.
011500
011600*       マップ名を設定
011700        MOVE  'STD1PC6B'  TO   帳票マップ名
011800
011900************************************************************
012000******  印刷データの設定                                    ******
012100******    本来はＤＢなどから読み込みますが                  ******
012200******    本例ではＭＯＶＥ文を使用して設定しています         ******
012300************************************************************
012400        PERFORM  印刷データ設定
012500
012600*       帳票印刷                                  
012700        SEND  PRT  FROM  STD1PCO  WITH  EMI.        
012800
012900*       結果確認                                      
013000        IF  帳票-RC  =  正常                          
013100          THEN                                        
013200            CONTINUE                                  
013300          ELSE                                        
013400            DISABLE PRT                                
013500            MOVE  12  TO RETURN-CODE                  
013600            STOP  RUN                                  
013700        END-IF.                                        
013800                                                      
013900        GO TO  正常終了.                              
014000************************************************************
014100*  プログラムの終了                                              *
014200************************************************************
014300 正常終了.                                          
014400*  プリンタのクローズ                              
014500        DISABLE PRT.                                
014600        MOVE    +0  TO RETURN-CODE.                
014700        STOP  RUN.                                
014800                                                
015300************************************************************
015400*      印刷データの設定処理                                      *
015500*********  本来ならＤＢなどから読み込みますが，  *****************
015600*********  本例ではＭＯＶＥ文を使用して設定しています   ***********
015700************************************************************
015800 印刷データ設定 SECTION.                        
015900*  データ読み込み                              
016000　      PERFORM  データ読み込み                
016100*                                              
016200*  データ設定
016300        MOVE  PAGENO               TO  STD1PC-PAGEO.
016400        MOVE  H-NAME               TO  STD1PC-H-NAMEO.
016500        MOVE  H-CODE               TO  STD1PC-H-CODEO.
016600        MOVE  NEN                  TO  STD1PC-NENO.
016700        MOVE  TSUKI                TO  STD1PC-TSUKIO.
016800        MOVE  HINICHI              TO  STD1PC-HINICHIO.
016900*
017000*          （以下，省略）
017100*                              
031600 印刷データ設定-END.                              
031700        EXIT.                                  
031800                                        
041100*********************************************************
041200 END  PROGRAM  STDPRPC.

9.3.3　C言語でのグラフィック帳票出力例（帳票入門例題）

ページプリンタのグラフィック帳票を利用した，帳票の出力例について説明します。

帳票を使用したユーザAP例として，マニュアル「XMAP3 入門」で紹介している帳票入門例題をC言語で作成した場合について説明します。

(a)　出力例

注

物理マップサイズの目安は，約2KBです。

(b)　コーディング例

コーディング例を次に示します。マップ名は，「JYU1PH」です。

プログラムサイズは約29KBです。

/********************************************************/
/* ＜ページプリンタ けい線帳票用入門例題＞                    */
/********************************************************/
#include <windows.h>
#include <stdio.h>

/* XMAP3が生成した論理マップの取り込み    */
#include "JYU1PHO.h"

/* 動的変更テーブル，インタフェーステーブルの取り込み          */
/*     （XMAP3インストール先￥INCLUDEに入っています）          */
#include "x3modtbl.h"
#include "jsvwatbl.h"

/* 変数宣言 */
char map_name[9];                               /* 帳票マップ名 */
char term_name[9];                              /* 帳票端末名 */
long rtn_code;                                  /* リターンコード */

XMAP_COM com;                                   /* 共通インタフェース領域 */

long  goukei = 0;                               /* 合計 */

/* 帳票印刷用商品情報 */
typedef struct tagSYOHIN_DB {
   char    *scode;
   char    *sname;
   int            tanka;
   int            suuryo;
   int            waribiki;
} SYOHIN_DB;
SYOHIN_DB        syohin_db[] = {
   "V0001",    "BS/CSチューナー付S-VHSビデオ",
                115000,    17,   1,        /* 商品名 ビデオ１ */
   "T0002",    "35型高精細テレビ",
                238000,     8,   0,        /* 商品名 テレビ  */
   "V0002",    "８ミリビデオ",
                 95980,    24,   0,        /* 商品名 ビデオ２ */
   "A0001",    "再生専用MDプレーヤー",
                 47000,    51,   1,        /* 商品名 オーディオ */
    NULL,       NULL,
                     0,     0,   0};       /* 終了値 */

/* 関数宣言 */
/* ファイル読み込み処理 */
static void read_file();
/* 数字編集処理 */
static void numedit(int                in,
                   char               *out,
                   int                outsize);
/* 仮想端末オープン処理 */
static long xmap_open(XMAP_COM    *cp,
                                   char           *termname,
                                   char           datacode,
                                   char           devkind);
/* 仮想端末クローズ処理 */
static long xmap_close(XMAP_COM   *cp);
/* 帳票出力処理 */
static long xmap_send(XMAP_COM    *cp,
                                   char           *mapname,
                                   char           *outlmap);

/* マクロ定義 */
#define NORMAL    0                                       /* 正常   */
#define ABNORMAL 12                                       /* 異常   */

/* 納品伝票印刷プログラム開始 */
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
                   LPSTR lpCmdLine, int nShowCmd)
{

   /* 仮想端末名の設定 */
   strcpy(term_name, "PRT001");

   /* 物理マップ名の設定 */
   strcpy(map_name, "JYU1PH6G");

   /* 出力論理マップの初期化 */
   memset(&JYU1PHO, XMAP_PRT_NODATA, sizeof(JYU1PHO));
   JYU1PHO.JYU1PHL = JYU1PHT;
   memset(JYU1PHO.JYU1PHZ, 0x00, sizeof(JYU1PHO.JYU1PHZ));

   /* 出力データの格納 */
   read_file();

   numedit(goukei, JYU1PHO.JYU1PH_FIELD0008_O,
           sizeof(JYU1PHO.JYU1PH_FIELD0008_O));

   /* オープン要求 */
   rtn_code = xmap_open(&com, term_name, XMAP_PRT_NODATA, 1);

   /* 結果確認 */
   if (NORMAL != rtn_code) {
   return (ABNORMAL);
   }

   /* 出力要求 */
   rtn_code = xmap_send(&com, map_name, (char *)&JYU1PHO);

   /* 結果確認 */
   if (NORMAL != rtn_code) {
       /* クローズ要求 */
       xmap_close(&com);
       return (ABNORMAL);
       }

   /* クローズ要求 */
   rtn_code = xmap_close(&com);

   /* 結果確認 */
   if (NORMAL != rtn_code) {
       return (ABNORMAL);
   } else {
       return (NORMAL);
   }
}

/* read_file : ファイルからデータを読み込みます */
static void read_file()
{
   SYOHIN_DB            *sdp;
   char                 wk[5];
   int                 i, syoukei, tanka_work;
   /* ここでは実際にファイル入力せず，                           */
   /* 固定データを設定しています                                 */
   memcpy(JYU1PHO.JYU1PH_FIELD0001_O, "SD004040", 8);
   memcpy(JYU1PHO.JYU1PH_FIELD0002_O, "Ｄ商事", 6);
   for (i = 0, sdp = syohin_db; NULL != sdp->scode; i++, sdp++) {
       memcpy(JYU1PHO.JYU1PH_FIELD0003_O[i], sdp->scode,
              strlen(sdp->scode));

       memcpy(JYU1PHO.JYU1PH_FIELD0004_O[i],
              sdp->sname, strlen(sdp->sname));

       numedit(sdp->tanka, JYU1PHO.JYU1PH_FIELD0006_O[i],
                    sizeof(JYU1PHO.JYU1PH_FIELD0006_O[i]));
       tanka_work = sdp->tanka;

       sprintf(wk, "%04d", sdp->suuryo);
       memcpy(JYU1PHO.JYU1PH_FIELD0005_O[i], wk, 4);

       /* 受注データ中の割引特典が「特典あり」ならば１割引き */
       /* として金額を計算します                                  */
       if (1 == sdp->waribiki) {
           tanka_work  = tanka_work * 90 / 100;
       }
       syoukei = tanka_work * sdp->suuryo;
       numedit(syoukei, JYU1PHO.JYU1PH_FIELD0007_O[i],
                 sizeof(JYU1PHO.JYU1PH_FIELD0007_O[i]));

       goukei += syoukei;
   }

   return;
}

/* xmap_open : 仮想端末をオープンします                             */
/*   dev_kind  0:画面                                          */
/*             1:帳票                                          */
static long xmap_open(XMAP_COM        *cp,
                                       char            *termname,
                                       char            datacode,
                                       char            devkind)
{
   XMAP_REQ        xmap_req;
   XMAP_OPN        xmap_opn;

   long            rc;

   memset(cp, 0x00, sizeof(XMAP_COM));
   memcpy(cp->xmap_com_id, "*XP ", 4);
   cp->xmap_com_itype = 'I';
   memcpy(cp->xmap_com_tname, termname, strlen(termname));
   if (devkind == 0)
       memcpy(cp->xmap_com_msg, "BWS ", 4);            /* 画面 */

       else
       memcpy(cp->xmap_com_msg, "OWS ", 4);            /* 帳票 */
       memset(&xmap_req, ' ', sizeof(XMAP_REQ));
       memcpy(xmap_req.xmap_req_type, "OPEN", 4);
       memset(&xmap_opn, ' ', sizeof(XMAP_OPN));
       xmap_opn.xmap_opn_dcode_set = '1';
       xmap_opn.xmap_opn_dcode = datacode;

       rc = jsvwadrv(cp, &xmap_req, &xmap_opn, 0L);

       return (rc);
}
/* xmap_close : 仮想端末をクローズします */
static long xmap_close(XMAP_COM                *cp)
{
       XMAP_REQ        xmap_req;
       long            rc;

       memset(&xmap_req, ' ', sizeof(XMAP_REQ));
       memcpy(xmap_req.xmap_req_type, "CLOS", 4);
       rc = jsvwadrv(cp, &xmap_req, 0L, 0L);

       return (rc);
}

/* xmap_send : 帳票の出力を行います */
static long xmap_send(XMAP_COM        *cp,
                                       char            *mapname,
                                       char            *outlmap)
{
   XMAP_REQ        xmap_req;
   long            rc;

   /** 帳票の出力 **/
   memset(cp->xmap_com_mapname, ' ', sizeof(cp->xmap_com_mapname));
   memcpy(cp->xmap_com_mapname, mapname, strlen(mapname));
   memset(&xmap_req, ' ', sizeof(XMAP_REQ));
   memcpy(xmap_req.xmap_req_type, "SEND",
          sizeof(xmap_req.xmap_req_type));
   xmap_req.xmap_req_opt2 = '1';
   rc = jsvwadrv(cp, &xmap_req, outlmap, 0L);

   return (rc);
}

/* numedit : 数字編集処理                                    */
/*           数値を右寄せの￥９９９，９９９形式に変換します。*/
static void numedit(int           in,
                                 char    *out,
                                 int      outsize)
{
   int                           i, j, k, len;
   char                          wk[40], wkedit[40], *pout;

   sprintf(wk, "%d", in);
   wkedit[0] = '¥¥';

   for (i=0, j=1, k=strlen(wk); k; i++, j++, k--) {
       wkedit[j] = wk[i];
       if ((k / 3) && (1 == k % 3)) wkedit[++j] = ',';
   }
   wkedit[j] = 0x00;

   memset(out, ' ', outsize);
   len = strlen(wkedit);
   pout = out + outsize - len;
   memcpy(pout, wkedit, len);

   return;
}

9.3.4　COBOLによるけい線の動的変更例（表サイズ変更例題）

ページプリンタのグラフィック帳票を利用した，帳票の出力例について説明します。

グラフィック帳票では，けい線の動的属性を変更（けい線を引くまたはけい線を引かない）できます。この例では，印字データのある行にだけ横けい線を引きます。印字データのない行には，横けい線を引きません。

(a)　出力例

注

物理マップサイズの目安は，約29KBです。

(b)　コーディング例

APからけい線を引くには，けい線用の制御項目に修飾名を格納します。この例では，「実線で細線のけい線を引く」修飾名である，「SL」を格納しています。

次に，コーディング例を示します。マップ名は，「MDL1PC」です。

プログラムサイズは約24KBです。

000100************************************************************
000200*    プログラム名 ： ページプリンタ－表サイズ変更例題              *
000300*        ファイル名 ： ＭＤＬＩＮＰＣ                            *
000400*        説明     ： けい線の種別を動的に変更する例題です          *
000500*                  グラフィック帳票でのみ使用できます            *
000600************************************************************
000700 IDENTIFICATION     DIVISION.
000800 PROGRAM-ID.        MDLINPC.
000900*
001000 ENVIRONMENT        DIVISION.
001100*
001200 DATA               DIVISION.
001300*
001400 WORKING-STORAGE    SECTION.
001500*
001600*  月次別売上データファイル
001700   01  売上データ.
001800    02  売上データファイル.
001900     03  FILLER    PIC  X(52)
002000     VALUE '  10   8   5  13   4   1  '.
     *       （途中省略）
002100    02  FILLER    
002200            REDEFINES   売上データファイル    OCCURS  12.
002300     03  売上データレコード    PIC  X(52).
002400
002500        77  ファイル状態       PIC  X(2).
002600        77  月次カウンタ       PIC  9(4).
002700        77  正常               PIC  X(5)  VALUE  '00000'.
002800        77  異常               PIC  X(2)  VALUE  X'0001'.
002900        77  データ件数         PIC  9(2)   COMP.
003000        77  行カウント         PIC  9(2)   COMP.
003100  
003200************************************************************
003300*       論理マップと動的変更テーブルの取込み                     *
003400************************************************************
003500*       論理マップの取り込み
003600        COPY    MDL1PCO.
003700
003800*動的変更テーブルの取り込み--"XMAP3インストール先¥INCLUDE"にあります
003900        COPY    X3MODTBL.
004000************************************************************
004100*       通信記述                                                 *
004200************************************************************
004300 COMMUNICATION      SECTION.
004400*       プリンタに対する通信記述項
004500   CD   PRT  FOR  OUTPUT  WS
004600        MAP  NAME           IS  帳票マップ名
004700        SYMBOLIC  TERMINAL  IS  帳票端末名
004800        STATUS  KEY         IS  帳票-RC.
004900************************************************************
005000*       プログラム開始                                           *
005100************************************************************
005200 PROCEDURE          DIVISION.
005300*  
005400        MOVE  正常    TO  帳票-RC.
005500  
005600*       出力プリンタの設定
005700        MOVE  'PRT001'  TO  帳票端末名.
005800  
005900*       出力エリアのクリア  
006000        MOVE ALL X'1F' TO MDL1PCG.
006100
006200*       マップ名の設定
006300        MOVE  'MDL1PC6G'  TO  帳票マップ名.
006400
006500*       印字データの設定
006600        PERFORM  印字データ設定処理.
006700
006800*       帳票印刷
006900        SEND  PRT  FROM  MDL1PCO  WITH  EMI.
007000
007100*       結果確認
007200        IF  帳票-RC  =  正常
007300          THEN
007400            CONTINUE
007500          ELSE
007600            DISABLE  PRT
007700            MOVE  12  TO  RETURN-CODE
007800            STOP  RUN
007900        END-IF.
008000*
008100        GO TO  正常終了.
008200
008300************************************************************
008400*       プログラムの終了                                         *
008500************************************************************
008600 正常終了.
008700
008800*       プリンタのクローズ
008900        DISABLE  PRT.
009000        MOVE        +0  TO  RETURN-CODE.
009100        STOP  RUN.
009200
009300************************************************************
009400*      本来なら，ＤＢファイルなどから入力しますが，                    *
009500*        本例では固定データをテーブルやファイルから取り込みます     *
009600************************************************************
009700 印字データ設定処理   SECTION.
009800
009900*    支店名称の設定＆けい線の種別変更
010000        MOVE  1       TO  データ件数.
010100        PERFORM WITH TEST BEFORE UNTIL データ件数 > 6
010200          EVALUATE データ件数
010300            WHEN  1
010400              MOVE N'港支店'   TO  MDL1PC-支店名称-O(データ件数)
010500**** けい線の種別の動的変更 ***********************************
010600*        印字データを設定した行にのみ引くようにします              *
010700*        本例では，６行分引きます （XMAP-LINE-SL：実線の細線）    *
010800************************************************************
010900              MOVE XMAP-LINE-SL    TO   MDL1PC-RLINE0001-A
011000            WHEN  2
011100              MOVE N'練馬支店' TO  MDL1PC-支店名称-O(データ件数)
011200              MOVE XMAP-LINE-SL    TO   MDL1PC-RLINE0002-A
011300            WHEN  3
011400              MOVE N'足立支店' TO  MDL1PC-支店名称-O(データ件数)
011500              MOVE XMAP-LINE-SL    TO   MDL1PC-RLINE0003-A
011600            WHEN  4
011700              MOVE N'豊島支店' TO  MDL1PC-支店名称-O(データ件数)
011800              MOVE XMAP-LINE-SL    TO   MDL1PC-RLINE0004-A
011900            WHEN  5
012000              MOVE N'板橋支店' TO  MDL1PC-支店名称-O(データ件数)
012100              MOVE XMAP-LINE-SL    TO   MDL1PC-RLINE0005-A
012200            WHEN  6
012300              MOVE N'荒川支店' TO  MDL1PC-支店名称-O(データ件数)
012400              MOVE XMAP-LINE-SL    TO   MDL1PC-RLINE0006-A
012500          END-EVALUATE
012600
012700          COMPUTE データ件数 = データ件数 + 1
012800        END-PERFORM.
012900
013000*       売上明細用の月次データをファイルから読み込みます
013100        PERFORM  WITH  TEST  AFTER
013200          VARYING  月次カウンタ
013300               FROM  1  BY  1  UNTIL (月次カウンタ  >=  12)
013400            MOVE  売上データレコード(月次カウンタ)
013500                          TO  MDL1PC-月次明細-O(月次カウンタ)
013600        END-PERFORM.
013700
013800 印字データ設定処理-END.  
013900        EXIT.
014000************************************************************
014100 END  PROGRAM  MDLINPC.

9.3.5　COBOLによるフィールド属性の動的変更例（文字強調変更例題）

ページプリンタのグラフィック帳票を利用した，帳票の出力例について説明します。

グラフィック帳票では，フィールドの表示属性を動的変更（強調，網掛け，抹消線など）できます。この例では，ある条件に見合ったフィールドに対してだけ，各フィールドの表示属性を変更します。

(a)　出力例

注

物理マップサイズの目安は，約33KBです。

(b)　コーディング例

APからフィールドの表示属性を変更するには，フィールド用の制御項目に修飾名を格納します。この例では，売上げが「12」以上のフィールドに対して，「太字」属性を示す「XMAP-FIELD-BL」を格納しています。また，売上げが「4」以上のフィールドに対して，「標準網掛け」属性を示す「XMAP-FIELD-SH」を格納しています。

次にコーディング例を示します。マップ名は，「MDC1PC」です。

プログラムサイズは約28KBです。

000100************************************************************
000200*    プログラム名 ： ページプリンタ－文字強調変更例題              *
000300*        ファイル名 ： ＭＤＣＨＲＰＣ                            *
000400*        説明     ： 文字の強調属性を動的に変更する例題です      *
000500*                  グラフィック帳票でのみ使用できます            *
000600************************************************************
000700 IDENTIFICATION     DIVISION.
000800 PROGRAM-ID.        MDCHRPC.
000900*                
001100*    
001200 DATA               DIVISION.
001300*        
001400 WORKING-STORAGE    SECTION.
001500*      
001600*  月次別売上データファイル
001700   01  売上データ.
001800    02  売上データファイル.
001900     03  FILLER    PIC  X(78)
002000     VALUE '                            10   8   5  13   4   1
002100-    '                    '.
     *       （途中省略）
002200    02  FILLER    
002300            REDEFINES   売上データファイル    OCCURS  12.
002400     03  売上データレコード    PIC  X(78).
002500
002600        77  正常　　           PIC  X(5)   VALUE  '00000'.
002700        77  異常               PIC  X(2)   VALUE  X'0001'.
002800        77  月次カウンタ       PIC  9(2)   COMP.
002900        77  支店カウンタ       PIC  9(2)   COMP.
003000        77  最小値             PIC  ZZZ9.
003100        77  最大値             PIC  ZZZ9.
003200*    
003300************************************************************
003400*       論理マップと動的変更テーブルの取込み                         *
003500************************************************************
003600*       論理マップの取り込み  
003700        COPY    MDC1PCO.  
003800
003900*動的変更テーブルの取り込み--"XMAP3インストール先¥INCLUDE"にあります
004000        COPY    X3MODTBL.  
004100*    
004200************************************************************
004300*       通信記述                                                 *
004400************************************************************
004500 COMMUNICATION      SECTION.
004600*       プリンタに対する通信記述項
004700   CD   PRT  FOR  OUTPUT  WS
004800        MAP  NAME           IS  帳票マップ名
004900        SYMBOLIC  TERMINAL  IS  帳票端末名
005000        STATUS  KEY         IS  帳票-RC.
005100************************************************************
005200*       プログラム開始                                           *
005300************************************************************
005400 PROCEDURE          DIVISION.
005500*
005600        MOVE  正常    TO  帳票-RC.
005700  
005800*       出力先プリンタの設定
005900        MOVE  'PRT001'  TO  帳票端末名.
006000  
006100*       出力エリアのクリア
006200        MOVE ALL X'1F' TO MDC1PCG.
006300  
006400*       マップ名の設定
006500        MOVE  'MDC1PC6G'  TO  帳票マップ名.
006600
006700*       印字データの設定
006800        PERFORM  印字データ設定処理.
006900
007000*       帳票印刷
007100        SEND  PRT  FROM  MDC1PCO  WITH  EMI.
007200
007300*       結果確認
007400        IF  帳票-RC  =  正常
007500          THEN
007600            CONTINUE
007700          ELSE
007800            DISABLE  PRT
007900            MOVE      12  TO  RETURN-CODE
008000            STOP  RUN
008100        END-IF.
008200*
008300        GO TO  正常終了.
008400  
008500************************************************************
008600*       プログラムの終了                                         *
008700************************************************************
008800 正常終了.
008900
009000*       プリンタのクローズ
009100        DISABLE  PRT.
009200
009300        MOVE      +0  TO  RETURN-CODE.
009400        STOP  RUN.
009500
009600************************************************************
009700*      本来なら，ＤＢファイルなどから入力しますが，               *
009800*        本例では固定データをテーブルやファイルから取り込みます     *
009900************************************************************
010000 印字データ設定処理   SECTION.
010100
010200*    支店名称の設定
010300        MOVE  1       TO  支店カウンタ.
010400        PERFORM WITH TEST BEFORE UNTIL 支店カウンタ > 6
010500          EVALUATE 支店カウンタ
010600            WHEN  1
010700              MOVE N'港支店'   TO  MDC1PC-支店名称-O(支店カウンタ)
010800            WHEN  2
010900              MOVE N'練馬支店' TO  MDC1PC-支店名称-O(支店カウンタ)
011000            WHEN  3
011100              MOVE N'足立支店' TO  MDC1PC-支店名称-O(支店カウンタ)
011200            WHEN  4
011300              MOVE N'豊島支店' TO  MDC1PC-支店名称-O(支店カウンタ)
011400            WHEN  5
011500              MOVE N'板橋支店' TO  MDC1PC-支店名称-O(支店カウンタ)
011600            WHEN  6
011700              MOVE N'荒川支店' TO  MDC1PC-支店名称-O(支店カウンタ)
011800          END-EVALUATE
011900
012000          COMPUTE 支店カウンタ = 支店カウンタ + 1
012100        END-PERFORM.
012200
012300*    月次データの設定(売上明細データをファイルから読み込みます)
012400        PERFORM  WITH  TEST  AFTER
012500          VARYING  月次カウンタ
012600               FROM  1  BY  1  UNTIL (月次カウンタ  >=  12)
012700            MOVE  売上データレコード(月次カウンタ)
012800                          TO  MDC1PC-月次明細-O(月次カウンタ)
012900        END-PERFORM.
013000
013100************************************************************
013200*    フィールド属性の動的変更                                    *
013300*      本来は設定したデータに対してある条件をもとに動的変更を       *
013400*      行いますが，ここでは以下のように属性を変更します            *
013500*        最小値(4)以下  ： 標準属性 → 網掛け属性(XMAP-FIELD-SH) *
013600*        最大値(12)以上 ： 標準属性 → 太字属性(XMAP-FIELD-BL)   *
013700************************************************************
013800        MOVE  1       TO    月次カウンタ
013900        MOVE  1       TO    支店カウンタ
014000        MOVE  4       TO    最小値
014100        MOVE  12      TO    最大値.
014200        PERFORM   WITH  TEST  BEFORE  UNTIL  月次カウンタ > 12
014300          PERFORM  WITH  TEST  BEFORE  UNTIL  支店カウンタ > 6
014400
014500*         最小値チェック
014600            IF MDC1PC-月次データ-O(月次カウンタ,支店カウンタ)
014700                <=  最小値
014800              THEN
014900                MOVE  XMAP-FIELD-SH  TO
015000                    MDC1PC-月次データ-A(月次カウンタ,支店カウンタ)
015100              ELSE
015200                CONTINUE
015300            END-IF
015400*         最大値チェック        
015500            IF MDC1PC-月次データ-O(月次カウンタ,支店カウンタ)
015600                >=  最大値
015700              THEN
015800                MOVE  XMAP-FIELD-BL  TO
015900                    MDC1PC-月次データ-A(月次カウンタ,支店カウンタ)
016000              ELSE
016100                CONTINUE
016200            END-IF
016300
016400            COMPUTE 支店カウンタ = 支店カウンタ + 1
016500          END-PERFORM
016600
016700          MOVE  1       TO  支店カウンタ
016800          COMPUTE 月次カウンタ = 月次カウンタ + 1
016900
017000        END-PERFORM.
017100
017200 印字データ設定処理-END.
017300        EXIT.
017400************************************************************
017500 END  PROGRAM  MDCHRPC.

9.3.6　COBOLによるフィールドの重ね印字例（重ね印刷例題）

ページプリンタのグラフィック帳票を利用した，帳票の出力例について説明します。

グラフィック帳票では，文字の重ね書きができます。この例では，重ね文字として「X」を使用しています。

(a)　出力例

注

物理マップサイズの目安は，約2KBです。

(b)　コーディング例

文字の重ね書きをするには，複数フィールドを同一位置に配置することで実現できます。

次にコーディング例を示します。マップ名は，「OVC1PC」です。

プログラムサイズは約24KBです。

000100************************************************************
000200*    プログラム名 ： ページプリンタ－重ね印刷例題                 *
000300*        ファイル名 ： ＯＶＣＨＲＰＣ                            *
000400*        説明     ： 文字と文字とを重ねて印刷する例題です         *
000500*                  グラフィック帳票でのみ使用できます            *
000600************************************************************
000700 IDENTIFICATION     DIVISION.
000800 PROGRAM-ID.        OVCHRPC.  
000900                
001000 ENVIRONMENT        DIVISION.
001100*        
001200 DATA               DIVISION.
001300*        
001400 WORKING-STORAGE    SECTION.
001500*    
001600*  支店名データファイル  *
001700   01  支店データ.
001800    02  支店データファイル.
001900     03  FILLER    PIC  X(84)
002000     VALUE '仙台支店      横浜支店      大阪支店
002100-    '                              '.
     *        （途中省略）
002200    02  FILLER    
002300            REDEFINES   支店データファイル    OCCURS  4.
002400     03  支店データレコード    PIC  X(84).
002500
002600
002700        77  支店カウンタ     PIC  9(4).
002800
002900        77  正常             PIC  X(5)  VALUE  '00000'.
003000        77  異常             PIC  X(2)  VALUE  X'0001'.
003100        77  重ね文字         PIC  X(14) VALUE  'xxxxxxxxxxxxxx'.
003200          
003300************************************************************
003400*       論理マップと動的変更テーブルの取込み                     *
003500************************************************************
003600*       論理マップの取り込み
003700        COPY    OVC1PCO.    
003800    
003900* 動的変更テーブルの取り込み--"XMAP3インストール先¥INCLUDE"にあります
004000        COPY    X3MODTBL.
004100***********************************************************
004200*  通信記述
004300***********************************************************
004400 COMMUNICATION  SECTION.  
004500*  ワークステーションプリンタに対する通信記述項
004600 CD  PRT  FOR  OUTPUT  WS
004700     MAP       NAME     IS  帳票マップ名
004800     SYMBOLIC  TERMINAL IS  帳票端末名
004900     STATUS    KEY      IS  帳票-RC.
005000************************************************************
005100*  プログラム開始  
005200************************************************************
005300 PROCEDURE          DIVISION.
005400
005500*       帳票端末名（出力先）の設定
005600        MOVE  'PRT001'  TO  帳票端末名.
005700      
005800*       出力エリアのクリア
005900        MOVE ALL X'1F' TO OVC1PCG.
006000  
006100*       マップ名を設定
006200        MOVE  'OVC1PC6G'  TO   帳票マップ名.
006300        
006400*       支店名の設定
006500        PERFORM  支店名称設定処理.
006600
006700*       帳票の印刷
006800        SEND  PRT  FROM  OVC1PCO  WITH  EMI.
006900
007000*       結果確認  
007100        IF  帳票-RC  =  正常
007200          THEN
007300            CONTINUE
007400          ELSE
007500            DISABLE PRT
007600            MOVE  12  TO RETURN-CODE
007700            STOP  RUN
007800        END-IF.
007900
008000        GO TO  正常終了.
008100
008200************************************************************
008300*  プログラムの終了                                              
008400************************************************************
008500 正常終了.  
008600*       プリンタのクローズ
008700        DISABLE PRT.
008800        MOVE    +0  TO RETURN-CODE.
008900        STOP  RUN.
009000  
009100************************************************************
009200*      本来なら，ＤＢファイルなどから入力しますが，               *
009300*        本例では固定データをファイルから取り込みます             *
009400************************************************************
009500 支店名称設定処理   SECTION.
009600
009700*    支店データの設定(支店データをファイルから読み込みます)
009800        PERFORM  WITH  TEST  AFTER
009900          VARYING  支店カウンタ
010000               FROM  1  BY  1  UNTIL (支店カウンタ  >=  4)
010100            MOVE  支店データレコード(支店カウンタ)
010200                          TO  OVC1PC-支店一覧-O(支店カウンタ)
010300        END-PERFORM.
010400
010500***** データの重ねがき ****************************************
010600**    本来は設定したデータに対してある条件をもとに重ね処理を行い     *
010700**    ますが，ここでは'x'を決められたフィールドに対して重ねています  *
010800        MOVE  重ね文字   TO   OVC1PC-重ね文字-O(1,2)
010900        MOVE  重ね文字   TO   OVC1PC-重ね文字-O(2,1)
011000        MOVE  重ね文字   TO   OVC1PC-重ね文字-O(4,3).
011100************************************************************
011200                                  
011300 支店名称設定処理-END.
011400        EXIT.
011500************************************************************
011600 END  PROGRAM  OVCHRPC.

9.3.7　日立運用管理システムJP1を使用した例

(a)　概要

帳票を使用したユーザ業務例として，家電販売で受注した家電用品の発注商品管理台帳を出力する処理を想定した業務について説明します。帳票を使用した発注台帳出力業務の流れと，発注商品管理台帳の出力例を次の図に示します。

図9-8　発注台帳出力業務の流れ

＜説明＞

クライアント側で，JP1/Automatic Job Management System 2 - Client Toolkitを使用してバッチジョブを入力します。これを受けて，サーバ側のJP1/Automatic Job Management System 2 - Managerがバッチ業務の実行，および監視をします。その後，XMAP3/NETから，JP1/Network Printing Systemに印刷要求をします。サーバ側のAPは，ファイルからデータを読み込み，発注台帳を印刷します。

図9-9　発注商品管理台帳の出力例

(b)　システムの構成

バッチ環境で，ユーザ業務を処理する場合のシステム構成を次に示します。

ハードウェア構成
ハードウェア構成例を次の図に示します。

図9-10　ハードウェア構成例

ソフトウェア構成例
サーバ側

日立COBOL

XMAP3/NET

JP1/Automatic Job Management System 2 - Manager

JP1/Network Printing System

クライアント側

JP1/Automatic Job Management System 2 - Client Toolkit

(c)　処理の概要

三つの索引ファイルである「受注ファイル（ORDER）」，「得意先ファイル（CUST）」，「支店ファイル（SHITEN）」を使用して発注台帳を出力します。

発注台帳出力業務の概要を次の図に示します。

図9-11　発注台帳出力業務の処理概要

(d)　コーディング例

コーディングの概要を次に示します。なお，このコーディングの全体は，製品中にソースプログラムとして提供しています。

***********************************************************
* 発注商品管理台帳印刷プログラム      (SEND)*
***********************************************************
　IDENTIFICATION　　DIVISION.
　PROGRAM-ID.　　　 HATCHU.

　ENVIRONMENT　　　 DIVISION.
　INPUT-OUTPUT　　　SECTION.
　FILE-CONTROL.
　　　SELECT  CUST-FILE ASSIGN TO 'CUST'
　　　        ORGANIZATION IS INDEXED
　　　        ACCESS MODE IS DYNAMIC
　　　        RECORD KEY IS KOUBAN-C
　　　        ALTERNATE RECORD KEY IS CHIKU-NO-C
　　　　　　　　　　　　WITH DUPLICATES
　　　        ALTERNATE RECORD KEY IS CUST-NO-C
　　　　　　　　　　　　WITH DUPLICATES.
　　　SELECT  ORDER-FILE ASSIGN TO 'ORDER'
　　　        ORGANIZATION IS INDEXED
　　　        ACCESS MODE IS DYNAMIC
　　　        RECORD KEY IS DENPYOU-NO
　　　        ALTERNATE RECORD KEY IS SHITEN-NO
　　　　　　　　　　　　WITH DUPLICATES.
　　　SELECT  SHITEN-FILE ASSIGN TO 'SHITEN'
　　　        ORGANIZATION IS INDEXED
　　　        ACCESS MODE IS DYNAMIC
　　　        RECORD KEY IS SHITEN-NO-H.
　DATA　　　　　　　DIVISION.
　FILE　　　　　　　SECTION.
　FD　CUST-FILE.
　COPY CUSTD.
　FD　ORDER-FILE.
　COPY ORDERD.
　FD　SHITEN-FILE.
　COPY SHITEND.
 *
　WORKING-STORAGE　 SECTION.
　　01　BK-TOTALL　　 PIC S9(4) COMP-5.
　　01　MAIN-END-FLG　PIC X(1) VALUE SPACE.
　　01　PAGE-CNT　　　PIC 9(4) VALUE 1.
　　01　OUT-LINE　　　PIC 9(2) VALUE ZERO.
　　01　BK-SHITEN-NO　PIC X(2) VALUE SPACE.
　　01　BK2-SHITEN-NO PIC X(2) VALUE SPACE.
　　01　ORDER-FLG　　 PIC X(2) VALUE 'NG'.
　　01　X　　　　　　 PIC 9(2).
　　01　FIRST-GET　　 PIC X(1) VALUE 'Y'.
　　01　DATE-WORK.
　　　02　DATE-YY　 PIC X(2).
　　　02　DATE-MM　 PIC X(2).
　　　02　DATE-DD　 PIC X(2).
 * 論理マップ
　　COPY　　　　　　　TOTALO.
 *
　COMMUNICATION　SECTION.
 *　ワークステーションプリンタに対する通信記述項
　CD  PRINTER　FOR　OUTPUT　WS
　    MAP　NAME　IS　MAP-NAME-P
　    STATUS　KEY　IS　ERR-CODEP
　    SYMBOLIC　TERMINAL　IS　PRTTERM.

*******************************************************
　　　　　　　　**　　業務開始　　**
********************************************************
　PROCEDURE　　　　　DIVISION.
　初期設定.
　　PERFORM　初期設定処理.
 *
　各種ファイルのオープン.
　　OPEN INPUT       CUST-FILE
　　                 ORDER-FILE
　　                 SHITEN-FILE.
 *
 * 帳票出力処理
 *
　　PERFORM　帳票編集および出力処理.
 *
　各種ファイルのクローズ.
　　CLOSE             CUST-FILE
　　                  ORDER-FILE
　　                  SHITEN-FILE.
*********************************************************
**　　業務の終了　　　　　　　　　　　　 **
*********************************************************
　　STOP　RUN.
 *

*********************************************************
　　 帳票編集および出力処理 SECTION.
*********************************************************
 *
 *　支店番号で受注ファイルを検索する
 *
　　PERFORM 受注ファイルの検索処理.
　　MOVE SHITEN-NO-H TO BK-SHITEN-NO BK2-SHITEN-NO.
 *
 * 帳票編集および出力のメインループ
　　PERFORM UNTIL MAIN-END-FLG = 'E'
　　　　IF  SHITEN-NO-H NOT = BK2-SHITEN-NO AND
　　　　    OUT-LINE NOT = ZERO THEN
　　　　    PERFORM 帳票の出力処理
　　　　    MOVE SHITEN-NO-H TO BK-SHITEN-NO BK2-SHITEN-NO
　　　　END-IF
　　　　PERFORM 帳票出力データの設定
　　　　PERFORM 受注ファイルの検索処理
　　END-PERFORM.
 *
　　PERFORM 帳票の出力処理.
 *
　帳票編集および出力処理の終了.
　　EXIT.
 *

*********************************************************
　　 受注ファイルの検索処理 SECTION.
*********************************************************
 *
　　MOVE 'NG' TO ORDER-FLG.
　　PERFORM UNTIL ORDER-FLG = 'OK' OR
　　　　　　　　　MAIN-END-FLG = 'E'
 *　 支店情報の入力
　　　　IF  SHITEN-NO-H NOT = BK-SHITEN-NO OR
　　　　    BK-SHITEN-NO = SPACE THEN
　　　　    READ SHITEN-FILE NEXT
　　　　    AT END
　　　　　　　　MOVE 'E' TO MAIN-END-FLG
　　　　    NOT AT END
　　　　　　　　MOVE 'Y' TO FIRST-GET
　　　　    END-READ
　　　　END-IF
 *
 *　 受注ファイルの入力
　　　　IF　MAIN-END-FLG NOT = 'E' THEN
　　　　　　IF  FIRST-GET = 'Y' THEN
　　　　　　    MOVE SHITEN-NO-H TO SHITEN-NO
　　　　　　    START ORDER-FILE KEY IS = SHITEN-NO
　　　　　　　　　　INVALID KEY
　　　　　　　　　　　　MOVE SPACE TO BK-SHITEN-NO
　　　　　　　　　　NOT INVALID KEY
　　　　　　　　　　　　MOVE SHITEN-NO-H TO BK-SHITEN-NO
　　　　　　    END-START
　　　　　　    MOVE 'N' TO FIRST-GET
　　　　　　END-IF
　　　　　　IF  BK-SHITEN-NO NOT = SPACE THEN
　　　　　　    READ ORDER-FILE NEXT
　　　　　　    AT END
　　　　　　　　　　MOVE SPACE TO BK-SHITEN-NO
　　　　　　    NOT AT END
　　　　　　　　　　IF　BK-SHITEN-NO = SHITEN-NO THEN
　　　　　　　　　　　　MOVE 'OK' TO ORDER-FLG
　　　　　　　　　　ELSE
　　　　　　　　　　　　MOVE SPACE TO BK-SHITEN-NO
　　　　　　　　　　END-IF
　　　　　　    END-READ
　　　　　　END-IF
　　　　END-IF
　　END-PERFORM.
 *
　受注ファイルの検索処理終了.
　　EXIT.
 *

*********************************************************
　　 帳票出力データの設定 SECTION.
*********************************************************
 *
　　PERFORM VARYING X FROM 1 BY 1 UNTIL X > 40
　　　　IF　SHOUHIN-NO(X) NOT = SPACE THEN
　　　　　 COMPUTE OUT-LINE = OUT-LINE + 1
　　　　　 MOVE SHOUHIN-NAME(X) TO TOTAL-S-NAMEO(OUT-LINE)
　　　　　 MOVE SHOUHIN-NO(X)　 TO TOTAL-S-CODEO(OUT-LINE)
　　　　　 EVALUATE NYUUKIN
　　　　　　WHEN 1
　　　　　　　 MOVE N'現　　金' TO TOTAL-NYUUKINO(OUT-LINE)
　　　　　　WHEN 2
　　　　　　　 MOVE N'手　　形' TO TOTAL-NYUUKINO(OUT-LINE)
　　　　　　WHEN 3
　　　　　　　 MOVE N'銀行振込' TO TOTAL-NYUUKINO(OUT-LINE)
　　　　　　END-EVALUATE
　　　　　　IF　TOKUTAI = 'Y' THEN
　　　　　　　　MOVE N'特　待' TO TOTAL-WARIO(OUT-LINE)
　　　　　　ELSE
　　　　　　　　IF　CARD-INF = 'Y' THEN
　　　　　　　　　　MOVE N'カード' TO TOTAL-WARIO(OUT-LINE)
　　　　　　　　ELSE
　　　　　　　　　　MOVE N'セール' TO TOTAL-WARIO(OUT-LINE)
　　　　　　　　END-IF
　　　　　　END-IF
　　　　　　MOVE SURYOU(X)　　 TO TOTAL-SURYOUO(OUT-LINE)
　　　　　　MOVE TANKA(X)　　　TO TOTAL-TANKAO(OUT-LINE)
　　　　　　MOVE SYOUKEI(X)　　TO TOTAL-SGOUKEIO(OUT-LINE)
　　　　　　MOVE CUST-NO　　　 TO TOTAL-T-CODEO(OUT-LINE)
　　　　　　　　　　　　　　　 CUST-NO-C
　　　　　　READ CUST-FILE KEY IS CUST-NO-C
　　　　　　END-READ
　　　　　　MOVE CUST-NAME-C　 TO TOTAL-T-NAMEO(OUT-LINE)
　　　　　　MOVE DENPYOU-NO　　TO TOTAL-DEN-NOO(OUT-LINE)
　　　　　　MOVE SPACE　　　　 TO TOTAL-DUMMYO(OUT-LINE)
　　　　　　IF　OUT-LINE >= 34 THEN
　　　　　　　　PERFORM 帳票の出力処理
　　　　　　　　MOVE ZERO TO OUT-LINE
　　　　　　　　COMPUTE PAGE-CNT = PAGE-CNT + 1
　　　　　　END-IF
　　　　END-IF
　　END-PERFORM.
 *
　帳票出力データの設定の終了.
　　EXIT.
 *

*********************************************************
　　　　帳票の出力処理 SECTION.
*********************************************************
 *
　　MOVE PAGE-CNT TO TOTAL-PAGEOO.
　　MOVE SHITEN-NO-H TO TOTAL-H-CODEO.
　　MOVE SHITEN-NAME-H TO TOTAL-H-NAMEO.
 *
　　SEND　PRINTER　FROM　TOTALO　WITH　EMI.
 *
　　DISABLE PRINTER.
 *
　　PERFORM 初期設定処理.
 *
　帳票の出力処理終了.
　　EXIT.
 *
*********************************************************
　　 初期設定処理 SECTION.
*********************************************************
 *
 * 論理マップの初期値設定およびCD項の設定
　　MOVE　ALL X'1F'　 TO　TOTALO.
　　MOVE　TOTALT　　　TO　TOTALL.
　　MOVE　ZERO　　　　TO　TOTALZ.
　　MOVE　'00000'　　 TO　ERR-CODEP.
　　MOVE　'PRT001'　　TO　PRTTERM.
　　MOVE　'TOTAL6B '　TO　MAP-NAME-P.
 * 年月日の取得および論理マップへの設定
　　ACCEPT DATE-WORK FROM DATE.
　　MOVE DATE-YY　　　TO TOTAL-NENO.
　　MOVE DATE-MM　　　TO TOTAL-TSUKIO.
　　MOVE DATE-DD　　　TO TOTAL-HINICHIO.
 * 出力行数の初期化
　　MOVE ZERO　　　　 TO　OUT-LINE.
 *
　初期設定処理終了.
　　EXIT.

9.3.8　COBOLでの標準的な書式オーバレイ例（標準書式例題）

書式を利用したユーザ業務例について説明します。

書式を使用した業務例として，家電販売で受注した家電用品の納品書兼御請求書を出力する処理を想定した業務について説明します。納品書兼御請求書の出力例を次の図に示します。

図9-12　納品書兼御請求書の出力例

(a)　処理の流れ

ユーザ業務例での処理の流れを，フローチャートで示します。

(b)　コーディング例

コーディングの概要を次に示します。

000100************************************************************
000200*  ユーザ業務例－標準書式印刷ＡＰ                                *
000300*      指定環境  環境変数    CBLX_PRT001=#PRT                    *
000400*      コンパイルオプション  -XMAP,LinePrintまたは-Ks※          *
000500*      書式名                STD1FC6G.FMP                        *
000600*      行制御データ          STD1FC6G.PCI                        *
000700************************************************************
000800 IDENTIFICATION      DIVISION.
000900 PROGRAM-ID.         STDPRFC.
001000*  
001100 ENVIRONMENT         DIVISION.
001200*  
001300 INPUT-OUTPUT        SECTION.
001400 FILE-CONTROL.
001500   SELECT  プリンタ  ASSIGN  TO  PRT001
001600           ORGANIZATION IS SEQUENTIAL
001700           FILE  STATUS  IS  プリンタ状態.
001800*  
001900   SELECT  テキストファイル  ASSIGN  TO  ファイル名
002000           ORGANIZATION  IS  LINE  SEQUENTIAL
002100           FILE  STATUS  IS  ファイル状態.
002200************************************************************
002300*       書式印刷の定義                                               *
002400************************************************************
002500 I-O-CONTROL.  
002600   APPLY  FORMS-OVERLAY  TO  書式名  ON  プリンタ.
002700*    
002800 DATA  DIVISION.
002900 FILE  SECTION.
003000************************************************************
003100*       プリンタの定義                                               *
003200************************************************************
003300   FD  プリンタ  IS  GLOBAL
003400       RECORDING  MODE  IS  F
003500       LABEL  RECORD  IS  OMITTED
003600       DATA  RECORD  IS  行データ.
003700************************************************************
003800*       一行分のデータエリア                                         *
003900************************************************************
004000   01  行データ                PIC  X(122).
004100*  
004200   FD  テキストファイル.
004300   01  テキストレコード.
004400     02   FILLER               PIC  X(86).
004500     02   小計                 PIC  9(15).
004600     02   FILLER               PIC  X(21).
004700*  
004800 WORKING-STORAGE    SECTION.
004900*  
005000 01  書式名                    PIC  X(8).
005100 01  プリンタ状態              PIC  X(2).
005200 01  プログラム状態            PIC  X(2).
005300 01  行カウンタ                PIC  S9(4).
005400*  
005500 01  ファイル名                PIC  X(12) VALUE 'STDPRFC.TXT'.
005600 01  ファイル状態              PIC  X(2).
005700*  
005800 01   番号行.
005900   02   FILLER                 PIC  X(3).
006000   02   番号行-番号            PIC  X(12).
006100   02   FILLER                 PIC  X(107).
006200*  
006300 01   年月日行.
006400   02   FILLER                 PIC  X(101).
006500   02   年月日行-年1           PIC  X(2).
006600   02   年月日行-年2           PIC  X(2).
006700   02   FILLER                 PIC  X(4).
006800   02   年月日行-月            PIC  X(2).
006900   02   FILLER                 PIC  X(4).
007000   02   年月日行-日            PIC  X(2).
007100   02   FILLER                 PIC  X(5).
007200*  
007300 01   名前行.  
007400   02   FILLER                 PIC  X(3).
007500   02   名前行-名前            PIC  X(37).
007600   02   FILLER                 PIC  X(7).
007700   02   名前行-コード          PIC  X(10).
007800   02   FILLER                 PIC  X(65).
007900*  
008000 01   支店行.
008100   02   FILLER                 PIC  X(90).
008200   02   支店行-支店            PIC  X(13).
008300   02   FILLER                 PIC  X(8).
008400   02   支店行-担当            PIC  X(10).
008500   02   FILLER                 PIC  X(1).
008600*  
008700 01   住所行.
008800   02   FILLER                 PIC  X(12).
008900   02   住所行-住所            PIC  X(46).
009000   02   FILLER                 PIC  X(64).
009100*  
009200 01   合計行.
009300   02   FILLER                 PIC  X(83).
009400   02   合計行-合計            PIC  ¥¥,¥¥¥,¥¥¥,¥¥¥,¥¥9.
009500   02   FILLER                 PIC  X(21).
009600*  
009700 01  合計                      PIC  9(18).
009800*  
009900 01   日付.  
010000   02   年                     PIC  9(2).
010100   02   月                     PIC  9(2).
010200   02   日                     PIC  9(2).
010300*  
010400 77  正常                      PIC  X(2)  VALUE  '00'.
010500 77  異常                      PIC  X(2)  VALUE  '01'.
010600 77  正常終了                  PIC  S9(4) VALUE  +0.
010700 77  異常終了                  PIC  S9(4) VALUE  16.
010800*  
010900 77  明細行数                  PIC  S9(4) VALUE  25.
011000************************************************************
011100*       プログラムの開始                                             *
011200************************************************************
011300 PROCEDURE          DIVISION.
011400     MOVE  正常  TO  プログラム状態.
011500     MOVE  ZERO  TO  行カウンタ.
011600************************************************************
011700*       帳票プリント処理                                             *
011800************************************************************
011900 帳票処理.
012000*  
012100*       プリンタのオープン  
012200*            
012300     OPEN  OUTPUT  プリンタ.
012400     IF  プリンタ状態  =  正常
012500       THEN
012600*       １ページ分の印刷処理
012700         PERFORM  １ページ印刷
012800*
012900         CLOSE  プリンタ
013000         IF  プリンタ状態  NOT  =  正常
013100           THEN
013200             MOVE  異常  TO  プログラム状態
013300         END-IF
013400*
013500       ELSE
013600         MOVE  異常  TO  プログラム状態
013700     END-IF.  
013800************************************************************
013900*       プログラムの終了                                             *
014000************************************************************
014100*
014200     IF  プログラム状態  =  正常
014300       THEN
014400         MOVE  正常終了  TO  RETURN-CODE
014500       ELSE
014600         MOVE  異常終了  TO  RETURN-CODE
014700     END-IF.
014800*  
014900     STOP  RUN.
015000*
015100************************************************************
015200*       一ページ印刷                                                *
015300************************************************************
015400 １ページ印刷  SECTION.
015500*
015600     MOVE  'STD1FC6G'  TO  書式名.
015700*  
015800     PERFORM  ヘッダ印刷.
015900*
016000     IF  プログラム状態  =  正常
016100       THEN  
016200         PERFORM  明細印刷
016300     END-IF.
016400*
016500     IF  プログラム状態  =  正常
016600       THEN
016700         PERFORM  トレイラ印刷
016800     END-IF.
016900 １ページ印刷-END.
017000     EXIT.
017100************************************************************
017200*       ヘッダ印刷処理                                               *
017300************************************************************
017400 ヘッダ印刷  SECTION.
017500     MOVE  SPACE  TO  行データ.
017600*  
017700     WRITE  行データ  BEFORE  ADVANCING  4  LINES.
017800     IF  プリンタ状態  NOT  =  正常
017900       THEN
018000         MOVE  異常  TO  プログラム状態
018100     END-IF.
018200*    
018300     MOVE  SPACE       TO  番号行.
018400     MOVE '1234567890' TO  番号行-番号.
018500     MOVE  番号行      TO  行データ.
018600     WRITE  行データ  BEFORE  ADVANCING  3  LINES.
018700     IF  プリンタ状態  NOT  =  正常  
018800       THEN  
018900         MOVE  異常  TO  プログラム状態
019000     END-IF.  
019100*      
019200     MOVE  SPACE       TO  年月日行.
019300     ACCEPT  日付 FROM DATE.
019400     MOVE  '19'        TO  年月日行-年1.
019500     MOVE  年          TO  年月日行-年2.
019600     MOVE  月          TO  年月日行-月.
019700     MOVE  日          TO  年月日行-日.
019800     MOVE  年月日行    TO  行データ.
019900     WRITE  行データ  BEFORE  ADVANCING  1  LINE.
020000     IF  プリンタ状態  NOT  =  正常
020100       THEN
020200         MOVE  異常  TO  プログラム状態
020300     END-IF.
020400*  
020500     MOVE  SPACE  TO  名前行.
020600     MOVE  '○×Ａ１電器' TO  名前行-名前.  
020700     MOVE  'K0012345'     TO  名前行-コード.
020800     MOVE  名前行         TO  行データ.
020900     WRITE  行データ  BEFORE  ADVANCING  1  LINE.
021000     IF  プリンタ状態  NOT  =  正常
021100       THEN
021200         MOVE  異常  TO  プログラム状態
021300     END-IF.
021400*  
021500     MOVE   SPACE TO 支店行.
021600     MOVE '港支店'        TO  支店行-支店.
021700     MOVE '日立太郎'      TO  支店行-担当.
021800     MOVE   支店行        TO  行データ.
021900     WRITE  行データ  BEFORE  ADVANCING  1  LINE.
022000     IF  プリンタ状態  NOT  =  正常
022100       THEN  
022200         MOVE  異常  TO  プログラム状態
022300     END-IF.
022400*    
022500     MOVE SPACE TO 住所行.
022600     MOVE '○×市△□区2-50'  TO  住所行-住所.
022700     MOVE 住所行            TO  行データ.
022800     WRITE  行データ  BEFORE  ADVANCING  5  LINES.
022900     IF  プリンタ状態  NOT  =  正常  
023000       THEN
023100         MOVE  異常  TO  プログラム状態
023200     END-IF.
023300*        
023400 ヘッダ印刷-END.
023500     EXIT.  
023600************************************************************
023700*       明細印刷処理                                                 *
023800************************************************************
023900 明細印刷  SECTION.
024000     MOVE  +0  TO  合計.
024100     OPEN  INPUT  テキストファイル.
024200*
024300     PERFORM  WITH  TEST  AFTER  
024400          VARYING  行カウンタ
024500          FROM  1  BY  1  
024600          UNTIL  ((プログラム状態  =  異常)  OR
024700                   (行カウンタ  >=  明細行数))
024800       MOVE  SPACE  TO  行データ  
024900       READ  テキストファイル
025000         IF  ファイル状態  =  正常
025100           THEN
025200             COMPUTE    合計  =  合計  +  小計
025300             MOVE  テキストレコード  TO  行データ
025400             WRITE  行データ  BEFORE  ADVANCING  1  LINE
025500             IF  プリンタ状態  NOT  =  正常  
025600               THEN  
025700                 MOVE  異常  TO  プログラム状態
025800             END-IF
025900           ELSE
026000             MOVE  SPACE  TO  行データ
026100             WRITE  行データ  BEFORE  ADVANCING  1  LINE
026200             IF  プリンタ状態  NOT  =  正常
026300               THEN
026400                 MOVE  異常  TO  プログラム状態
026500             END-IF
026600         END-IF
026700*    
026800     END-PERFORM.
026900*  
027000     CLOSE  テキストファイル.
027100*      
027200 明細印刷-END.
027300     EXIT.
027400************************************************************
027500*       トレイラ印刷処理                                             *
027600************************************************************
027700 トレイラ印刷  SECTION.  
027800     MOVE  SPACE  TO  行データ.
027900*    
028000     WRITE  行データ  BEFORE  ADVANCING   2  LINE.  
028100     IF  プリンタ状態  NOT  =  正常
028200       THEN
028300         MOVE  異常  TO  プログラム状態
028400     END-IF.
028500*
028600     MOVE  SPACE   TO  合計行.
028700     MOVE  合計    TO  合計行-合計.
028800     MOVE  合計行  TO  行データ.
028900     WRITE  行データ  BEFORE  ADVANCING   PAGE.
029000     IF  プリンタ状態  NOT  =  正常
029100       THEN
029200         MOVE  異常  TO  プログラム状態
029300     END-IF.
029400*
029500 トレイラ印刷-END.
029600     EXIT.    
029700************************************************************
029800 END  PROGRAM  STDPRFC.  

注※

COBOL2002の場合は-XMAP,LinePrint，COBOL85の場合は-Ksとなります。

9.3.9　COBOLでのコントロールブレークを利用した例（ブレーク項目例題）

書式オーバレイでは，AP実行時に出力形式を決められます。例えば，キーデータが変わったところで見出しやけい線によって区切りを付けたり，文字サイズを変更したりして印刷できます。

ここでは，書式オーバレイ機能を使用した集計表でブレークキーによって，出力形式を変更する例を示します。

(a)　出力例

図9-13　コントロールブレークで出力される帳票の出力例

注

書式オーバレイのサイズの目安は，約1KBです。

(b)　処理の流れ

処理の概要を示します。

(c)　コーディング

コントロールブレークを利用した書式オーバレイのコーディングパターンの例（一部抜粋）を次に示します。プログラムサイズは，約32KBです。

000100************************************************************
000200* ＜書式ブレークポイント＞                                       *
000300************************************************************
000400************************************************************
000500* 指定環境  環境変数    CBLX_PRT001=#PRT                             *
000600* コンパイルオプション  -XMAP,LinePrintまたは-Ks※                    *
000700* 書式名                BRK1FC6G.FMP                                 *
000800* 行制御データ          BRK1FC6G.PCI                                 *
000900************************************************************
001000 IDENTIFICATION      DIVISION.
001100 PROGRAM-ID.         BRKPTFC.
001200 ENVIRONMENT         DIVISION.
001300 INPUT-OUTPUT        SECTION.
001400 FILE-CONTROL.
001500   SELECT  プリンタ  ASSIGN  TO  PRT001
001600           ORGANIZATION IS SEQUENTIAL
001700           FILE  STATUS  IS  プリンタ状態.
001800                       :
001900*      
002000************************************************************
002100*       書式印刷の定義                                               *
002200************************************************************
002300 I-O-CONTROL.  
002400   APPLY  FORMS-OVERLAY  TO  書式名  ON  プリンタ.
002500*  
002600 DATA  DIVISION.
002700 FILE  SECTION.
002800************************************************************
002900*       プリンタの定義                                               *
003000************************************************************
003100   FD  プリンタ  IS  GLOBAL
003200       RECORDING  MODE  IS  F
003300       LABEL  RECORD  IS  OMITTED
003400       DATA  RECORD  IS  行データ.
003500************************************************************
003600*       一行分のデータエリア                                         *
003700************************************************************
003800   01  行データ                PIC  X(71).
003900*    
004000   FD  伝票ファイル.
004100*  
004200   FD  商品マスタファイル.
004300   01  商品レコード.
004400          :  
004500 WORKING-STORAGE    SECTION.
004600 01  書式名                    PIC  X(8).
004700        :  
004800 01   ブレーク行１.  
004900   02   FILLER                 PIC  X(2)    VALUE SPACE.
005000   02   ハイフンフィールド     PIC  X(66)   VALUE
005100 '－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－
005200 '－'.  
005300                          :
005400 77  明細最終行                PIC  S9(4) VALUE  60.
005500************************************************************
005600*       プログラムの開始                                             *
005700************************************************************
005800 PROCEDURE          DIVISION.
005900 帳票処理.
006000*  
006100*       プリンタのオープン
006200     OPEN  OUTPUT  プリンタ.  
006300     IF  プリンタ状態  =  正常
006400       THEN
006500*        書式マップ名の設定
006600         MOVE  'BRK1FC6G'  TO  書式名
006700*  
006800         PERFORM  ファイルオープン
006900*
007000*       １ページ分の印刷処理
007100         PERFORM  １ページ印刷  UNTIL  印刷終了 = 1
007200*    
007300         PERFORM  ファイルクローズ
007400*
007500         CLOSE  プリンタ
007600         IF  プリンタ状態  NOT  =  正常
007700           THEN
007800             MOVE  異常  TO  プログラム状態
007900         END-IF
008000*
008100       ELSE
008200         MOVE  異常  TO  プログラム状態
008300     END-IF.
008400************************************************************
008500*       プログラムの終了                                             *
008600************************************************************
008700     IF  プログラム状態  =  正常
008800       THEN  
008900         MOVE  正常終了  TO  RETURN-CODE
009000       ELSE
009100         MOVE  異常終了  TO  RETURN-CODE
009200     END-IF.
009300*  
009400     STOP  RUN.
009500*  
009600************************************************************
009700*       一ページ印刷                                                *
009800************************************************************
009900 １ページ印刷  SECTION.
010000*
010100        ：
010200
010300     PERFORM  ヘッダ印刷.
010400*  
010500     IF  プログラム状態  =  正常
010600       THEN  
010700         PERFORM  明細印刷
010800     END-IF.
010900*
011000     IF  プログラム状態  =  正常
011100       THEN  
011200         PERFORM  トレイラ印刷  
011300     END-IF.
011400 １ページ印刷-END.
011500     EXIT.
011600************************************************************
011700*       ヘッダ印刷処理                                               *
011800************************************************************
011900 ヘッダ印刷  SECTION.  
012000       ：
012100 ヘッダ印刷-END.
012200     EXIT.
012300************************************************************
012400*       明細印刷処理                                                 *
012500************************************************************
012600 明細印刷  SECTION.  
012700     MOVE  +0  TO  合計.
012800*  
012900     PERFORM  伝票読み込み
013000     PERFORM  WITH  TEST  BEFORE  
013100          UNTIL  ((伝票ファイルＥＯＦ = 1)  OR
013200                  (プログラム状態  =  異常)  OR
013300                  (行カウンタ  >  明細最終行))
013400       MOVE  SPACE  TO  行データ
013500*
013600       PERFORM  ブレーク判定
013700*    
013800       PERFORM  明細行組み立て
013900       COMPUTE    合計  =  合計  +  WK-売上高
014000       MOVE  明細行  TO  行データ  
014100       MOVE  1  TO  改行数
014200       PERFORM  行出力
014300*  
014400       PERFORM  伝票読み込み
014500     END-PERFORM.  
014600*  
014700     IF  伝票ファイルＥＯＦ = 1
014800       THEN
014900         MOVE  1  TO  合計行出力
015000         MOVE  1  TO  印刷終了
015100     END-IF.
015200*
015300 明細印刷-END.  
015400     EXIT.
015500************************************************************
015600*       トレイラ印刷処理                                             *
015700************************************************************
015800 トレイラ印刷  SECTION.
015900       ：
016000 トレイラ印刷-END.
016100     EXIT.  
016200************************************************************
016300*       ブレーク判定処理                                             *
016400************************************************************
016500 ブレーク判定  SECTION.
016600     IF  地区名  NOT = WK-地区名
016700       THEN  
016800         IF  WK-地区名  NOT =  HIGH-VALUE
016900           THEN  
017000             MOVE  ブレーク行１  TO  行データ
017100             MOVE  1  TO  改行数  
017200             PERFORM  行出力
017300         END-IF      
017400         MOVE  地区名  TO  WK-地区名  
017500         MOVE  担当者名  TO  WK-担当者名
017600         MOVE  レベル１ブレーク  TO  ブレークフラグ
017700       ELSE
017800         IF  担当者名  NOT = WK-担当者名
017900           THEN  
018000             IF  WK-担当者名  NOT =  HIGH-VALUE
018100               THEN
018200                 MOVE  ブレーク行２  TO  行データ
018300                 MOVE  1  TO  改行数
018400                 PERFORM  行出力
018500             END-IF  
018600             MOVE  担当者名  TO  WK-担当者名
018700             MOVE  レベル２ブレーク  TO  ブレークフラグ
018800         END-IF  
018900     END-IF.
019000*
019100 ブレーク判定-END.  
019200     EXIT.
019300************************************************************
019400*       行出力処理                                                   *
019500************************************************************
019600 行出力  SECTION.
019700     WRITE  行データ  BEFORE  ADVANCING   改行数  LINE.
019800     IF  プリンタ状態  NOT  =  正常
019900       THEN  
020000         MOVE  異常  TO  プログラム状態
020100     END-IF.  
020200     COMPUTE  行カウンタ = 行カウンタ + 改行数.
020300*      
020400 行出力-END.  
020500     EXIT.  
020600************************************************************
020700        :
020800        :
020900************************************************************
021000 END  PROGRAM  BRKPTFC.

注※

COBOL2002の場合は-XMAP,LinePrint，COBOL85の場合は-Ksとなります。

9.3.10　COBOLでのCSVファイルを利用した書式印刷例（CSVファイル印刷例題）

Excelなどから入力したデータを基にして，該当するCSVファイルのデータを印刷します。このとき，APで設定した条件とCSVファイルのデータをマッチングさせ，ある条件に該当するデータに対し拡大印刷したり，「＊」を付けて印刷したりできます。ここでは，1科目でも100点があるか，または前回より20番以上順位が上がった人のデータに対して「＊」を付けて印刷する例を示します。

(a)　出力例

図9-14　CSVファイルから出力される帳票の出力例

注

書式オーバレイのサイズの目安は約2KBです。

(b)　処理の流れ

処理の概要を示します。

(c)　コーディング

CSVファイルを利用した書式オーバレイのコーディングパターンの例を次に示します。プログラムサイズは約44KBです。

000100************************************************************
000200* ＜書式ＣＳＶファイル入力＞                                     *
000300************************************************************
000400************************************************************
000500* 指定環境  環境変数    CBLX_PRT001=#PRT                         *
000600*                         CBL_SYSCSVIN=csvファイル名(CSVPRFC.CSV)  *
000700* コンパイルオプション  -XMAP,LinePrintまたは-Ks※               *
000800* 書式イメージ          CSV1FC6G.FMP                             *
000900* 行制御データ          CSV1FC6G.PCI                             *
001000************************************************************
001100 IDENTIFICATION      DIVISION.
001200 PROGRAM-ID.         CSVPRFC.
001300*
001400 ENVIRONMENT         DIVISION.
001500*  
001600 INPUT-OUTPUT        SECTION.
001700 FILE-CONTROL.  
001800   SELECT  プリンタ  ASSIGN  TO  PRT001
001900           ORGANIZATION IS SEQUENTIAL
002000           FILE  STATUS  IS  プリンタ状態.
002100*  
002200************************************************************
002300*       書式印刷の定義                                               *
002400************************************************************
002500 I-O-CONTROL.
002600   APPLY  FORMS-OVERLAY  TO  書式名  ON  プリンタ.
002700*  
002800************************************************************
002900*       ＣＳＶファイルの呼び名の定義                                 *
003000************************************************************
003100 CONFIGURATION       SECTION.
003200 SPECIAL-NAMES.  
003300     SYSCSV  IS  CSVIN.
003400*
003500 DATA  DIVISION.
003600 FILE  SECTION.
003700************************************************************
003800*       プリンタの定義                                               *
003900************************************************************
004000   FD  プリンタ  IS  GLOBAL
004100       RECORDING  MODE  IS  F
004200       LABEL  RECORD  IS  OMITTED
004300       DATA  RECORD  IS  行データ.
004400************************************************************
004500*       一行分のデータエリア                                         *
004600************************************************************
004700   01  行データ                PIC  X(70).
004800*
004900 WORKING-STORAGE    SECTION.
005000*
005100   01  書式名                    PIC  X(8).
005200*  
005300 01  模試回数ヘッダ行.
005400   02  FILLER                  PIC  X(15).
005500   02  ヘッダ模試回数          PIC  Z9
005600                          CHARACTER  TYPE  IS  POINT-12 WIDE.
005700   02  FILLER                  PIC  X(51).
005800*    
005900 01   明細行-1                 REDEFINES  明細行.
006000   02   FILLER                 PIC  X(1).
006100   02   明細行-順位1           PIC  ZZZZZZ9.
006200   02   明細行-氏名1           PIC  X(16).
006300   02   FILLER                 PIC  X(4).
006400   02   明細行-英語点数1       PIC  ZZ9
006500                               CHARACTER  TYPE  IS  FORMAT-2.
006600   02   FILLER                 PIC  X(3).
006700   02   明細行-数学点数1       PIC  ZZ9  
006800                               CHARACTER  TYPE  IS  FORMAT-2.
006900         :
007000************************************************************
007100*       プログラムの開始                                             *
007200************************************************************
007300 PROCEDURE          DIVISION.
007400*  
007500*    プリンタのオープン
007600     OPEN  OUTPUT  プリンタ
007700     IF  プリンタ状態  =  正常
007800       THEN
007900*        書式マップ名の設定
008000         MOVE  'CSV1FC6G'  TO  書式名  
008100            ：
008200*       １ページ分の印刷処理
008300         PERFORM  １ページ印刷  UNTIL  印刷終了 = 1
008400*  
008500*       プリンタのクローズ
008600         CLOSE  プリンタ
008700         IF  プリンタ状態  NOT  =  正常
008800           THEN
008900             MOVE  異常  TO  プログラム状態
009000         END-IF
009100*  
009200       ELSE
009300         MOVE  異常  TO  プログラム状態
009400     END-IF.
009500************************************************************
009600*       プログラムの終了                                             *
009700************************************************************
009800     IF  プログラム状態  =  正常
009900       THEN
010000         MOVE  正常終了  TO  RETURN-CODE
010100       ELSE
010200         MOVE  異常終了  TO  RETURN-CODE
010300     END-IF
010400*  
010500     STOP  RUN.  
010600***********************************************************
010700*       一ページ印刷                                                *
010800***********************************************************
010900 １ページ印刷  SECTION.  
011000*  
011100     PERFORM  ヘッダ印刷
011200*
011300     IF  プログラム状態  =  正常
011400       THEN
011500         PERFORM  明細印刷
011600     END-IF
011700*
011800     IF  プログラム状態  =  正常
011900       THEN
012000         PERFORM  トレイラ印刷
012100     END-IF.
012200 １ページ印刷-END.
012300     EXIT.
012400************************************************************
012500*       ヘッダ印刷処理                                               *
012600************************************************************
012700 ヘッダ印刷  SECTION.  
012800        :
012900 ヘッダ印刷-END.
013000     EXIT.  
013100************************************************************
013200*       明細印刷処理                                                 *
013300************************************************************
013400 明細印刷  SECTION.  
013500          ：  
013600       PERFORM  明細行組み立て
013700          ：
013800       PERFORM  明細行出力
013900          ：  
014000 明細印刷-END.
014100     EXIT.  
014200************************************************************
014300*       トレイラ印刷処理                                             *
014400************************************************************
014500 トレイラ印刷  SECTION.
014600        ：
014700 トレイラ印刷-END.
014800     EXIT.
014900************************************************************
015000*       行出力処理                                                   *
015100************************************************************
015200 行出力  SECTION.
015300     IF  改行数  =  999
015400       THEN
015500         WRITE  行データ  BEFORE  ADVANCING   PAGE
015600       ELSE
015700         WRITE  行データ  BEFORE  ADVANCING   改行数  LINE
015800     END-IF
015900     COMPUTE  行カウンタ = 行カウンタ + 改行数
016000         ：
016100*
016200 行出力-END.
016300     EXIT.
016400************************************************************
016500*       明細行出力処理                                               *
016600************************************************************
016700 明細行出力  SECTION.  
016800*  
016900     EVALUATE  書体種別
017000       WHEN   ビット-X01
017100*             英語のみ100点
017200         WRITE  行データ  FROM  明細行２-2
017300                        BEFORE  ADVANCING   改行数  LINE
017400          ：  
017500       WHEN   OTHER  
017600*             その他
017700         WRITE  行データ  FROM  明細行
017800                        BEFORE  ADVANCING   改行数  LINE
017900     END-EVALUATE
018000          ：
018100*
018200 明細行出力-END.
018300     EXIT.
018400************************************************************
018500*       明細行組み立て処理                                           *
018600************************************************************
018700 明細行組み立て  SECTION.
018800       ：
018900     PERFORM  書体変更
019000       ：
019100*  
019200 明細行組み立て-END.
019300     EXIT.
019400************************************************************
019500*       書体変更処理                                                 *
019600************************************************************
019700 書体変更  SECTION.
019800     INITIALIZE  書体フラグ
019900     MOVE  SPACE  TO  明細行２
020000*
020100     IF  英語点数 = 100
020200       THEN
020300         COMPUTE  書体－英語 = 書体－英語 OR ビットＯＮ
020400         MOVE  '*'  TO  明細行２-英語P
020500     END-IF.
020600        :
020700*  
020800 書体変更-END.
020900     EXIT.
021000************************************************************
021100 END  PROGRAM  CSVPRFC.

注※

COBOL2002の場合は-XMAP,LinePrint，COBOL85の場合は-Ksとなります。

9.3.11　FAX印刷例

FAX宛先ファイルにアクセスして動的にFAX送信先を変更するAPについて説明します。

APからXMAP3へ帳票の印刷指示をする前に，FAX宛先ファイル（ファイル名＝サービス名）に，キュー定義情報，送信先定義情報のレコードを定義すると，帳票ごとにFAXの送信先を変更できます。この方法は，APの言語（COBOL，C，VB）に依存しません。

(a)　処理の流れ

AP実行時の処理の概要を示します。

帳票APからFAX宛先ファイルをオープンし，キュー定義情報と送信先定義情報のレコードを順に出力する。FAX宛先ファイルをクローズする。

帳票APで指定したSEND文を実行する。
印刷要求がXMAP3に送信されます。

XMAP3で帳票データが編集される。
FAXC/SPOOLに通知するための送信先情報（キュー種別「W15」，FAX番号「0123456」など）がFAX宛先ファイルから読み出されます。

XMAP3からFAXC/SPOOLに返送先情報と帳票データが送信され，FAXCキューに登録される。

XMAP3では，FAX送信先を動的に変更するAPのコーディングサンプル（COBOLソースプログラム）を用意しています。詳細は次に示すサンプルファイルを参照してください。

サンプル格納先
XMAP3インストール先¥Samples¥Cobol¥FAXPRT.cbl

(b)　コーディング例

コーディングの概要を次に示します。

000100************************************************************
000200*      プログラム名 ： ページプリンタ－ＦＡＸ印刷サンプル          *
000300*        ファイル名 ： ＦＡＸＰＲＴ                             *
000400*        説明      ： 印刷先をＦＡＸにした例題です               *
000500*                                                                 *
000600*  本サンプル実行にあたり，表示・印刷セットアップで以下の設定を       *
000700*  行ってください                                                *
000800*  「プリンタ」タブ                                              *
000900*   仮想端末名   ： PRT001                                     *
001000*   サービス名   ： #PRT                                       *
001100*   印刷モード   ： 日立FAXC/SPOOL出力：ページプリンタ           *
001200*   プリンタ名   ：  FAXC/SPOOLが支援しているプリンタ名          *
001300*   高度な設定   ： FAX送信情報（任意）                         *
001400*  「アプリケーション」タブ                                       *
001500*   FAX宛先フォルダ：C:¥Program Files¥Hitachi¥Xmap3¥User¥Faxno *
001600*                                                                *
001700************************************************************
001800 IDENTIFICATION     DIVISION.  
001900 PROGRAM-ID.        FAXPRT.
002000*  
002100 ENVIRONMENT        DIVISION.
002200*  
002300 INPUT-OUTPUT       SECTION.
002400************************************************************
002500*       FAX宛先ファイルの宣言                                        *
002600************************************************************
002700 FILE-CONTROL.
002800   SELECT  OPTIONAL  FAX宛先  
002900           ASSIGN  TO  FAX宛先ファイル
003000           ORGANIZATION  IS  LINE SEQUENTIAL
003100           FILE  STATUS  IS  ファイル状態.
003200*
003300 DATA               DIVISION.
003400 FILE  SECTION.
003500************************************************************
003600*       FAX宛先の定義                                                *
003700************************************************************
003800   FD  FAX宛先  IS  GLOBAL
003900       DATA  RECORD  IS  FAX宛先データ.
004000************************************************************
004100*       一行分のFAX番号データエリア                                 *
004200************************************************************
004300 01  FAX宛先データ     PIC  X(70).
004400*  
004500 WORKING-STORAGE    SECTION.
004600*
004700*       ここでは，FAX宛先ファイルを固定で割り当てます
004800        77  FAX宛先ファイル PIC X(47)
004900        VALUE 'C:¥Program Files¥Hitachi¥Xmap3¥User¥Faxno¥#PRT'.
005000
005100        77  ファイル状態    PIC  X(2).
005200        77  プログラム状態  PIC  X(2).
005300
005400        77  正常            PIC  X(2)  VALUE  '00'.
005500        77  異常            PIC  X(2)  VALUE  '01'.
005600        77  データ件数       PIC  9(2)   COMP.  
005700        77  単価ワーク       PIC  S9(6)  COMP.
005800        77  数量ワーク       PIC  S9(4)  COMP.
005900        77  割引特典         PIC  X(2).
006000        77  小計            PIC  S9(10) COMP.
006100        77  合計            PIC  S9(10) COMP.
006200        77  T0001           PIC  X(26)
006300                             VALUE 'BS/CSチューナー付28型テレビ '.
006400        77  T0002           PIC  X(26)
006500                              VALUE '35型高精細テレビ       '.
006600        77  A0001           PIC  X(26)
006700                              VALUE '再生専用MDプレーヤー         '.
006800        77  A0002           PIC  X(26)  
006900                              VALUE 'CDチェンジャー付オーディオ    '.
007000        77  V0001           PIC  X(26)
007100                              VALUE 'BS/CSチューナー付S-VHSビデオ '.
007200        77  V0002           PIC  X(26)
007300                              VALUE '８ミリビデオ                  '.
007400        77  ONE             PIC  9(2)   COMP VALUE 1.
007500        77  TWO             PIC  9(2)   COMP VALUE 2.
007600        77  THREE           PIC  9(2)   COMP VALUE 3.
007700        77  FOUR            PIC  9(2)   COMP VALUE 4.
007800  
007900*  
008000************************************************************
008100*       論理マップと動的変更テーブルの取込み                         *
008200*       出力用：マップ名＋O                                           *
008300************************************************************
008400*       論理マップの取り込み
008500        COPY    JYU1PCO.
008600
008700*動的変更テーブルの取り込み--"XMAP3インストール先¥INCLUDE"にあります
008800        COPY    X3MODTBL.
008900*  
009000************************************************************
009100*       通信記述                                                 *
009200************************************************************
009300 COMMUNICATION      SECTION.
009400*       プリンタに対する通信記述項
009500   CD   PRT  FOR  OUTPUT  WS
009600        MAP  NAME           IS  帳票マップ名
009700        SYMBOLIC  TERMINAL  IS  帳票端末名
009800        STATUS  KEY         IS  帳票-RC.
009900  
010000************************************************************
010100*       プログラム開始                                               *
010200************************************************************
010300 PROCEDURE          DIVISION.
010400  
010500        MOVE  正常    TO  帳票-RC.
010600        MOVE  正常    TO  プログラム状態.
010700        MOVE  1       TO  データ件数.
010800  
010900************************************************************
011000*       帳票出力処理                                                 *
011100************************************************************
011200 帳票処理.
011300
011400***  FAX宛先の設定 -- ここから --  **************************
011500*    FAX宛先ファイルのオープン
011600     OPEN  OUTPUT  FAX宛先.
011700
011800     IF (ファイル状態  =  正常)
011900       THEN  
012000****** FAX宛先ファイルへの書き出し *******************
012100*      *********************************************
012200*      * (1)キュー定義情報　（省略可能）               *
012300*      *     形式：aaa;bbbbb;ccccc                  *
012400*      *        aaa   : キュー種別（#00～#31;必須）   *
012500*      *        bbbbb : キュー名称（任意）            *
012600*      *        ccccc : コメント（任意）             *
012700*      *********************************************
012800         MOVE  ALL SPACE     TO  FAX宛先データ
012900
013000*        ここでは，キュー種別として"#31"を
013100*         キュー名称として「納品伝票」をそれぞれ仮定しています
013200         MOVE  '#31;納品伝票;'  TO   FAX宛先データ(01:13)
013300         MOVE  'コメント'   TO   FAX宛先データ(14:22)
013400
013500*        WRITE文を使用して，FAX情報を書き出します
013600         WRITE  FAX宛先データ    
013700
013800*      *********************************************
013900*      * (2)送信先定義情報　（必須;１レコードのみ）       *
014000*      *     形式：xxxxx;yyyyy;zzzzz                *
014100*      *        xxxxx : 送信先FAX番号（必須）         *
014200*      *        yyyyy : 送信先宛名（任意）            *
014300*      *        zzzzz : コメント（任意）              *
014400*      *********************************************
014500         MOVE  ALL SPACE     TO  FAX宛先データ
014600
014700*        ここでは，FAX番号として"0123456789"を
014800*         宛先として「日立ＡＩ太郎」をそれぞれ仮定しています
014900         MOVE  '0123456789;日立ＡＩ太郎;' TO FAX宛先データ(01:24)
015000         MOVE  'コメント'   TO   FAX宛先データ(25:33)
015100
015200*        WRITE文を使用して，FAX情報を書き出します
015300         WRITE  FAX宛先データ    
015400*      
015500*        FAX宛先ファイルのクローズ
015600         CLOSE  FAX宛先  
015700         IF  ファイル状態  NOT  =  正常
015800           THEN  
015900             MOVE  異常  TO  プログラム状態
016000         END-IF  
016100*  
016200       ELSE
016300         MOVE  異常  TO  プログラム状態
016400     END-IF.
016500
016600******  FAX宛先の設定 -- ここまで --  ***********************
016700
016800
016900**      FAX宛先設定処理が正常だったか
017000        IF  プログラム状態  =  正常
017100          THEN
017200*         正常だったらFAXへ出力する
017300*           出力先の設定
017400            MOVE  'PRT001'  TO  帳票端末名
017500  
017600*           出力エリアのクリア
017700            MOVE  ALL X'1F'  TO  JYU1PCG
017800
017900*           マップ名の設定
018000            MOVE  'JYU1PC6G'  TO  帳票マップ名
018100*  
018200            PERFORM  ファイル読み込み処理
018300            MOVE   合計     TO  JYU1PC-FIELD0008-O
018400  
018500*           FAXへの帳票出力
018600            SEND  PRT  FROM  JYU1PCO  WITH  EMI
018700
018800*           結果確認  
018900            IF  帳票-RC  =  正常
019000              THEN
019100                CONTINUE
019200              ELSE  
019300                DISABLE  PRT  
019400                MOVE  12  TO  RETURN-CODE
019500                STOP  RUN
019600            END-IF
019700  
019800            GO TO  正常終了
019900
020000          ELSE
020100            STOP   RUN
020200        END-IF.
020300  
020400************************************************************
020500*       プログラムの終了                                             *
020600************************************************************
020700 正常終了.
020800
020900*       プリンタのクローズ
021000        DISABLE  PRT.
021100        MOVE        +0  TO  RETURN-CODE.
021200        STOP  RUN.
021300
021400************************************************************
021500* ここでは実際にはファイル入力せず，固定データをMOVE文               *
021600* で設定しています                                                   *
021700************************************************************
021800 ファイル読み込み処理   SECTION.
021900
022000        MOVE 'SD004040' TO JYU1PC-FIELD0001-O.
022100        MOVE N'Ｄ商事'  TO JYU1PC-FIELD0002-O.
022200        PERFORM WITH TEST BEFORE UNTIL データ件数 > 4
022300          EVALUATE データ件数
022400            WHEN ONE
022500              MOVE 'V0001'  TO JYU1PC-FIELD0003-O(データ件数)
022600              MOVE V0001    TO JYU1PC-FIELD0004-O(データ件数)
022700              MOVE '115000' TO JYU1PC-FIELD0006-O(データ件数)
022800              MOVE 115000   TO 単価ワーク
022900              MOVE 17       TO JYU1PC-FIELD0005-O(データ件数)
023000              MOVE '01'     TO 割引特典
023100              MOVE 17       TO 数量ワーク
023200              PERFORM 計算処理
023300              MOVE 小計     TO JYU1PC-FIELD0007-O(データ件数)
023400            WHEN TWO
023500              MOVE 'T0002'  TO JYU1PC-FIELD0003-O(データ件数)
023600              MOVE T0002    TO JYU1PC-FIELD0004-O(データ件数)
023700              MOVE '238000' TO JYU1PC-FIELD0006-O(データ件数)
023800              MOVE 238000   TO 単価ワーク
023900              MOVE 8        TO 数量ワーク
024000              MOVE 8        TO JYU1PC-FIELD0005-O(データ件数)
024100              PERFORM 計算処理
024200              MOVE 小計     TO JYU1PC-FIELD0007-O(データ件数)
024300            WHEN THREE  
024400              MOVE 'V0002'  TO JYU1PC-FIELD0003-O(データ件数)
024500              MOVE V0002    TO JYU1PC-FIELD0004-O(データ件数)
024600              MOVE '95980'  TO JYU1PC-FIELD0006-O(データ件数)
024700              MOVE 95980    TO 単価ワーク
024800              MOVE 24       TO JYU1PC-FIELD0005-O(データ件数)
024900              MOVE 24       TO 数量ワーク
025000              PERFORM 計算処理
025100              MOVE 小計     TO JYU1PC-FIELD0007-O(データ件数)
025200            WHEN FOUR  
025300              MOVE 'A0001'  TO JYU1PC-FIELD0003-O(データ件数)
025400              MOVE A0001    TO JYU1PC-FIELD0004-O(データ件数)
025500              MOVE '47000'  TO JYU1PC-FIELD0006-O(データ件数)
025600              MOVE '47000'  TO 単価ワーク
025700              MOVE 51       TO JYU1PC-FIELD0005-O(データ件数)
025800              MOVE 51       TO 数量ワーク
025900              MOVE '01'     TO 割引特典
026000              PERFORM 計算処理
026100              MOVE 小計     TO JYU1PC-FIELD0007-O(データ件数)
026200          END-EVALUATE
026300          COMPUTE データ件数 = データ件数 + 1
026400          MOVE     '00' TO 割引特典
026500        END-PERFORM.
026600
026700 ファイル読み込み処理-END.
026800        EXIT.
026900
027000************************************************************
027100*  受注データ中の割引特典が「特典あり」ならば１割引き                *
027200*  として金額を計算します                                            *
027300************************************************************
027400 計算処理    SECTION.
027500
027600        IF 割引特典 = '01'
027700          THEN
027800            COMPUTE 単価ワーク = 単価ワーク * 90 / 100
027900          ELSE
028000            CONTINUE
028100        END-IF.
028200        COMPUTE 小計 = 単価ワーク * 数量ワーク.
028300        COMPUTE 合計 = 合計 + 小計.
028400
028500 計算処理-END.
028600        EXIT.
028700
028800************************************************************
028900 END  PROGRAM  FAXPRT.

9.3.12　Visual Basicを使用した書式印刷例

入門のマニュアルで説明している書式オーバレイの例題を，Visual Basicで作成したときのコーディング例を次に示します。入門例題の仕様については，マニュアル「XMAP3 入門」を参照してください。ここでは，コーディングだけを紹介します。

なお，例題で使用している定義ファイルは，JYUOVL.ifmです。

(a)　コーディング例

VERSION 5.00
Begin VB.Form Form1
  Caption         =   "Form1"
  ClientHeight    =   2640
  ClientLeft      =   4020
  ClientTop       =   2340
  ClientWidth     =   4665
  LinkTopic       =   "Form1"
  PaletteMode     =   1  'Z オーダー
  ScaleHeight     =   2640
  ScaleWidth      =   4665
  Begin VB.CommandButton Command2
     Caption         =   "終了"
     Height          =   375
     Left            =   3360
     TabIndex        =   1
     Top             =   2040
     Width           =   1095
  End
  Begin VB.CommandButton Command1
     Caption         =   "印刷"
     Height          =   375
     Left            =   2040
     TabIndex        =   0
     Top             =   2040
     Width           =   1095
  End
  Begin VB.Label Label2
     Caption         =   "書式を印刷します"
     BeginProperty Font
        Name            =   "ＭＳ Ｐゴシック"
        Size            =   18
        Charset         =   128
        Weight          =   400
        Underline       =   0   'False
        Italic          =   0   'False
        Strikethrough   =   0   'False
     EndProperty
     Height          =   495
     Left            =   960
     TabIndex        =   3
     Top             =   1080
     Width           =   3135
  End
  Begin VB.Label Label1
     Caption         =   "ＶＢ例題"
     BeginProperty Font
        Name            =   "ＭＳ Ｐゴシック"
        Size            =   14.25
        Charset         =   128
        Weight          =   700
        Underline       =   0   'False
        Italic          =   0   'False
        Strikethrough   =   0   'False
     EndProperty
     Height          =   375
     Left            =   3360
     TabIndex        =   2
     Top             =   240
     Width           =   1095
  End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
 'ＤＢから読み込んだデータと仮定する変数
 Dim dbId As String            '得意先コード
 Dim dbName As String          '得意先名
 Dim dbMdseId(3) As String     '商品コード
 Dim dbMdse(3) As String       '商品名
 Dim dbPrice(3) As Integer     '単価
 Dim dbUnit(3) As Integer      '数量

'本サンプル実行にあたり，表示・印刷セットアップの「プリンタ」タブで
'以下の設定を行って下さい
'    仮想端末名 ： PRT001
'    サービス名 ： #PRT
'    印刷モード ： GDIページ：ページプリンタ
'                  または　PDLスルー：LIPS準拠ページプリンタ

 'ＪＹＵＯＶＬ６Ｇのフォーマット（ここから）
 'ヘッダー部の構成
   Const cnsHeaderNewLine1 = 4    'ヘッダー部の最上段から
                                  'コード情報行までの改行数
   'ヘッダーのコード情報行
   Private Type Header_Id
     byteSpc1(16) As Byte         'コード行のスペースカラム数
     byteId(7) As Byte            'コード情報のカラム数
   End Type
   'ヘッダーの得意先名行
   Private Type Header_Name
     byteSpc1(16) As Byte         '得意先名行のスペースカラム数
     byteName(36) As Byte         '得意先名情報のカラム数
   End Type
   Const cnsHeaderNewLine2 = 1    'ヘッダー部の終了行までの改行数
 '明細部の構成
   Const cnsDetailNewLine1 = 1    '明細部の最上段から明細行までの改行数
   '明細行
   Private Type Detail
     byteSpc1(1) As Byte          '空白の文字数
     byteSpcMdseId(0) As Byte     '空白の文字数
     byteMdseId(10) As Byte       '商品コードの文字数
     byteSpcMdse(0) As Byte       '空白の文字数
     byteMdse(25) As Byte         '商品名の文字数
     bytePrice(8) As Byte         '単価の文字数
     byteSpcPrice(0) As Byte      '空白の文字数
     byteUnit(4) As Byte          '数量の文字数
     byteSpcUnit(0) As Byte       '空白の文字数
     byteSubTotal(15) As Byte     '金額の文字数
     byteSpcSubTotal(0) As Byte   '空白の文字数
   End Type
 'トレイラ部の構成
   Const cnsTrailerNewLine1 = 1   '明細部の最上段から合計行までの改行数
   '合計行
   Private Type Trailer_Total
     byteSpc1(52) As Byte         '空白の文字数
     byteTotal(16) As Byte        '金額の文字数
   End Type
 'ＪＹＵＯＶＬ６Ｇのフォーマット（ここまで）

'エラーメッセージを表示する
Sub ErrMsg(lRetcode As Long, lErrcode As Long)
 Dim lRet As Long

 message = "印刷処理でエラーが発生しました。" & Chr(13)
 message = message & "リターンコード = " & lRetcode & Chr(13)
 message = message & "詳細コード    = " & lErrcode & Chr(13)
 lRet = MsgBox(message, MB_ICONSTOP, "エラー")
End Sub

'ボタンが押された時印刷する。ここは，メインルーチンとなる。
Private Sub Command1_Click()
 Dim lTermid As Long                     '端末識別子
 Dim lRetcode As Long                    'リターンコード
 Dim lErrcode As Long                    '詳細コード
 Const PRT = "#PRT"                      'サービス名称

 lRetcode = XmapFrmCreateOpen(PRT)    'プリンタのオープン。
                                         '書式オーバーレイ印刷するプリンタ
                                       'のサービス名称でオープンします
 If lRetcode = 0 Then
   'エラー発生時にはXmapFrmCloseを発行しなくても，自動的にクローズされる
   lErrcode = XmapFrmGetError()          '詳細エラーコードの取得
   Call ErrMsg(lRetcode, lErrcode)
   Exit Sub
 End If

 lTermid = lRetcode                       '端末識別子の設定

 lRetcode = PrintPage(lTermid)             '1ページ印刷
 If lRetcode = -1 Then
   'エラー発生時にはXmapFrmCloseを発行しなくても，自動的にクローズされる
   lErrcode = XmapFrmGetError()            '詳細エラーコードの取得
   Call ErrMsg(lRetcode, lErrcode)
   Exit Sub
 End If

 lRetcode = XmapFrmClose(lTermid)           'プリンタのクローズ処理
 If lRetcode = -1 Then
   'エラー発生時にはXmapFrmCloseを発行しなくても，自動的にクローズされる
   lErrcode = XmapFrmGetError()             '詳細エラーコードの取得
   Call ErrMsg(lRetcode, lErrcode)
   Exit Sub
 End If

End Sub

'１ページ印刷（ＪＹＵＯＶＬ６Ｇ印刷のメインルーチン）
Private Function PrintPage(lTermid As Long) As Long
 Const JYUOVL6G = "JYUOVL6G"                           '書式名の指定

 PrintPage = XmapFrmSetPage(lTermid,
                            vbNullString, JYUOVL6G)    'ページ情報の設定
 If PrintPage = -1 Then
   Exit Function
 End If

 PrintPage = PrintHeader(lTermid)                      'ヘッダー印刷
 If PrintPage = -1 Then
   Exit Function
 End If

 PrintPage = PrintDetail(lTermid)                      '明細印刷
 If PrintPage = -1 Then
   Exit Function
 End If

 PrintPage = PrintTrailer(lTermid)                     'トレイラ印刷
 If PrintPage = -1 Then
   Exit Function
 End If
End Function

'ヘッダー印刷
Private Function PrintHeader(lTermid As Long) As Long
 '以下のデータをＤＢから入力したと想定する
 dbId = "012345"
 dbName = "○×電器"

 '位置合わせの為の改行
 PrintHeader = PrintNoDataNewLine(lTermid,         '位置合わせの為の改行
                                  cnsHeaderNewLine1)      
 If PrintHeader = -1 Then
   Exit Function
 End If

 'コード情報行
 Dim idWork As Header_Id
 Call XmapStrMoveLeft(idWork, Len(idWork), " ", 1, Asc(" "))
 Call XmapStrMoveLeft(idWork.byteId(0),
                      UBound(idWork.byteId) + 1, _
                      dbId, LenB(StrConv(dbId, vbFromUnicode)),
                      Asc(" "))
 PrintHeader = XmapFrmSetData(lTermid,                   'コード情報設定
                              idWork, Len(idWork))
 If PrintHeader = -1 Then
   Exit Function
 End If
 PrintHeader = PrintNewLine(lTermid)       'コード情報出力と１行改行
 If PrintHeader = -1 Then
   Exit Function
 End If

 '得意先名行
 Dim nameWork As Header_Name
 Call XmapStrMoveLeft(nameWork, Len(nameWork), " ", 1, Asc(" "))
 Call XmapStrMoveLeft(nameWork.byteName(0),
                      UBound(nameWork.byteName) + 1, _
                      dbName, LenB(StrConv(dbName, vbFromUnicode)),
                      Asc(" "))
 PrintHeader = XmapFrmSetData(lTermid,                      '名前情報設定
                              nameWork, Len(nameWork))
 If PrintHeader = -1 Then
   Exit Function
 End If
 PrintHeader = PrintNewLine(lTermid,         '名前情報出力と１行改行と
                     1 + cnsHeaderNewLine2)   'ヘッダー部の終了行までの改行
 If PrintHeader = -1 Then
   Exit Function
 End If

End Function

'明細印刷
Private Function PrintDetail(lTermid As Long) As Long
 '以下のデータをＤＢから入力したと想定する
 dbMdseId(0) = "A001"
 dbMdse(0) = "ビデオ"
 dbPrice(0) = 1000
 dbUnit(0) = 2
 dbMdseId(1) = "B001"
 dbMdse(1) = "テレビ"
 dbPrice(1) = 5000
 dbUnit(1) = 3
 dbMdseId(2) = "C001"
 dbMdse(2) = "ラジオ"
 dbPrice(2) = 2000
 dbUnit(2) = 7
 dbMdseId(3) = "D001"
 dbMdse(3) = "ＢＳチューナー"
 dbPrice(3) = 3000
 dbUnit(3) = 1

 '位置合わせの為の改行
 PrintDetail = PrintNoDataNewLine(lTermid,      '位置合わせの為の改行
                                  cnsDetailNewLine1)
 If PrintDetail = -1 Then
   Exit Function
 End If

 '明細行
 Dim detailWork As Detail
 For nLoop = 0 To 3                              '明細行数分繰り返す
   Call XmapStrMoveLeft(detailWork, Len(detailWork), " ",
                        1, Asc(" "))
   Call XmapStrMoveLeft(detailWork.byteMdseId(0),
                        UBound(detailWork.byteMdseId) + 1, _
                        dbMdseId(nLoop), LenB(StrConv(dbMdseId(nLoop),
                        vbFromUnicode)), Asc(" "))
   Call XmapStrMoveLeft(detailWork.byteMdse(0),
                        UBound(detailWork.byteMdse) + 1, _
                        dbMdse(nLoop), LenB(StrConv(dbMdse(nLoop),
                        vbFromUnicode)), Asc(" "))
   Call XmapStrItoA(detailWork.bytePrice(0),
                   UBound(detailWork.bytePrice) + 1, _
                   dbPrice(nLoop), XMAPSTR_RIGHT, Asc(" "))
   Call XmapStrItoA(detailWork.byteUnit(0),
                   UBound(detailWork.byteUnit) + 1, _
                   dbUnit(nLoop), XMAPSTR_RIGHT, Asc(" "))
   Call XmapStrItoA(detailWork.byteSubTotal(0),
                   UBound(detailWork.byteSubTotal) + 1, _
                   dbPrice(nLoop) * dbUnit(nLoop), XMAPSTR_RIGHT,
                   Asc(" "))
   PrintDetail = XmapFrmSetData(lTermid, detailWork,   '名前情報設定
                                Len(detailWork))
   If PrintDetail = -1 Then
     Exit Function
   End If
   PrintDetail = PrintNewLine(lTermid)          '名前情報出力と１行改行
   If PrintDetail = -1 Then
     Exit Function
   End If
 Next nLoop

End Function

'トレイラ印刷
Private Function PrintTrailer(lTermid As Long) As Long
 Dim lTotal As Long                                           '合計金額
 Dim nLoop As Integer                                         'ループ変数

 '位置合わせの為の改行
 PrintTrailer = PrintNoDataNewLine(lTermid,      '位置合わせの為の改行
                                   cnsTrailerNewLine1)
 If PrintTrailer = -1 Then
   Exit Function
 End If

 '合計の計算
 lTotal = 0
 For nLoop = 0 To UBound(dbUnit)
   lTotal = lTotal + dbPrice(nLoop) * dbUnit(nLoop)
 Next nLoop
 '合計行の印刷
 Dim totalWork As Trailer_Total
 Call XmapStrMoveLeft(totalWork, Len(totalWork), " ", 1, Asc(" "))
 Call XmapStrItoA(totalWork.byteTotal(0),
                UBound(totalWork.byteTotal) + 1, _ lTotal,
                XMAPSTR_SUM Or XMAPSTR_SYMBOL Or XMAPSTR_RIGHT,
                Asc(" "))
 PrintTrailer = XmapFrmSetData(lTermid, totalWork,    '合計情報設定
                               Len(totalWork))
 If PrintTrailer = -1 Then
   Exit Function
 End If
 PrintTrailer = PrintNewLine(lTermid)                '合計出力と１行改行
 If PrintTrailer = -1 Then
   Exit Function
 End If

End Function

'指定行数改行ルーチン（行データを設定してない時）
Private Function PrintNoDataNewLine(lTermid As Long, _
                                   lLine As Long) As Long
 '改行の為のダミーデータ設定
 PrintNoDataNewLine = XmapFrmSetData(lTermid,
                                     StrConv(" ", vbFromUnicode), 1)
 If PrintNoDataNewLine = -1 Then
   Exit Function
 End If
 PrintNoDataNewLine = PrintNewLine(lTermid, lLine)
End Function

'指定行数改行ルーチン（行データを設定している時）
Private Function PrintNewLine(lTermid As Long, _
                             Optional varLine, _
                             Optional varTiming) As Long
 Dim lLine As Long                        'XmapFrmSetNewLineの改行数
 If IsMissing(varLine) Then
   lLine = 1                              '１行（省略時仮定値）
 Else
   lLine = varLine
 End If

 Dim lTiming As Long                 'XmapFrmSetLineの行送りタイミング
 If IsMissing(varTiming) Then
   lTiming = 1                        '行送り前に行出力をする（省略時仮定値）
 Else
   lTiming = varTiming
 End If

 PrintNewLine = XmapFrmSetNewLine(lTermid, lLine)
 If PrintNewLine = -1 Then
   Exit Function
 End If
 PrintNewLine = XmapFrmSetLine(lTermid, lTiming)
End Function

Private Sub Command2_Click()
 End
End Sub

9.3.13　Delphiを使用した書式印刷例

入門のマニュアルで説明している書式オーバレイの例題を，Delphiで作成したときのコーディング例を次に示します。入門例題の仕様については，マニュアル「XMAP3 入門」を参照してください。ここでは，コーディングだけを紹介します。

なお，例題で使用している定義ファイル名は，JYUOVL.ifmです。

(a)　コーディング例

unit JYUTUFD;

interface

uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, X3mwgd32, X3mwst32;

type
 TForm1 = class(TForm)
   Button1: TButton;
   Button2: TButton;
   Label1: TLabel;
   Label2: TLabel;
   procedure Button1Click(Sender: TObject);
   procedure Button2Click(Sender: TObject);
 private
   { Private 宣言 }
   procedure ErrMsg(nRetcode: integer; nErrcode: integer);
   function PrintPage(nTermid: integer): integer;
   function PrintNoDataNewLine(nTermid: integer;
                               nLine: integer): integer;
   function PrintNewLine(nTermid: integer;
                         nLine: integer;
                         nTiming: integer): integer;
   function PrintHeader(nTermid: integer): integer;
   function PrintDetail(nTermid: integer): integer;
   function PrintTrailer(nTermid: integer): integer;
 public
   { Public 宣言 }
 end;

var
//ＤＢから読み込んだデータと仮定する変数
 dbId:     String;                 //得意先コード
 dbName:   String;                 //得意先名
 dbMdseId: array[0..3] of String;  //商品コード
 dbMdse:   array[0..3] of String;  //商品名
 dbPrice:  array[0..3] of Integer; //単価
 dbUnit:   array[0..3] of Integer; //数量

 //ＪＹＵＯＶＬ６Ｇのフォーマット（ここから）
 //ヘッダー部の構成
const
   cnsHeaderNewLine1 = 4;         //ヘッダー部の最上段から
                                  //コード情報行までの改行数
   //ヘッダーのコード情報行
type
   Header_Id = packed record
     cSpc1: array[0..16] of char; //コード行のスペースカラム数
     cId:   array[0..7] of char;  //コード情報のカラム数
   End;
   //ヘッダーの得意先名行
   Header_Name = packed record
     cSpc1: array[0..16] of char; //得意先名行のスペースカラム数
     cName: array[0..36] of char; //得意先名情報のカラム数
   End;
const
   cnsHeaderNewLine2 = 1;      //ヘッダー部の終了行までの改行数
 //明細部の構成
   cnsDetailNewLine1 = 1;      //明細部の最上段から明細行までの改行数
   //明細行
type
   Detail = packed record
     cSpc1: array[0..1] of char;      //空白の文字数
     cSpcMdseId: array[0..0] of char;    //空白の文字数
     cMdseId: array[0..10] of char;   //商品コードの文字数
     cSpcMdse: array[0..0] of char;      //空白の文字数
     cMdse: array[0..25] of char;     //商品名の文字数
     cPrice: array[0..8] of char;     //単価の文字数
     cSpcPrice: array[0..0] of char;     //空白の文字数
     cUnit: array[0..4] of char;      //数量の文字数
     cSpcUnit: array[0..0] of char;      //空白の文字数
     cSubTotal: array[0..15] of char; //金額の文字数
     cSpcSubTotal: array[0..0] of char;  //空白の文字数
   End;
 //トレイラ部の構成
const
   cnsTrailerNewLine1 = 1;     //明細部の最上段から合計行までの改行数
   //合計行
type
   Trailer_Total = packed record
     cSpc1: array[0..52] of char;     //空白の文字数
     cTotal: array[0..16] of char;    //金額の文字数
   End;
 //ＪＹＵＯＶＬ６Ｇのフォーマット（ここまで）

var
 Form1: TForm1;

implementation

{$R *.DFM}
//エラーメッセージを表示する
procedure TForm1.ErrMsg(nRetcode: integer; nErrcode: integer);
var
 wRet: word;
 strMessage: string;
begin
 strMessage := '印刷処理でエラーが発生しました。' + Char(13);
 strMessage := strMessage + 'リターンコード =
                                       ' + IntToStr(nRetcode) + Char(13);
 strMessage := strMessage + '詳細コード    =
                                       ' + IntToStr(nErrcode) + Char(13);
 wRet := MessageDlg(strMessage, mtError, [mbYes], 0);
End;

//印刷ボタンが押された時の処理
procedure TForm1.Button1Click(Sender: TObject);
var
 nTermid: integer;                   //端末識別子
 nRetcode: integer;                  //リターンコード
 nErrcode: integer;                  //詳細コード
const
 PRT = '#PRT';                      //サービス名称

begin
 nRetcode := XmapFrmCreateOpen(PRT); //プリンタのオープン
 if nRetcode = 0 then
 begin
   //エラー発生時にはXmapFrmCloseを発行しなくても，自動的にクローズされる
   nErrcode := XmapFrmGetError();    //詳細エラーコードの取得
   ErrMsg(nRetcode, nErrcode);
   Exit;
 end;

 nTermid := nRetcode;                //端末識別子の設定

 nRetcode := PrintPage(nTermid);     //1ページ印刷
 if nRetcode = -1 then
 begin
   //エラー発生時にはXmapFrmCloseを発行しなくても，自動的にクローズされる
   nErrcode := XmapFrmGetError();    //詳細エラーコードの取得
   ErrMsg(nRetcode, nErrcode);
   Exit;
 end;

 nRetcode := XmapFrmClose(nTermid);  //プリンタのクローズ処理
 if nRetcode = -1 then
 begin
   nErrcode := XmapFrmGetError();    //詳細エラーコードの取得
   ErrMsg(nRetcode, nErrcode);
   Exit;
 end;
end;

//１ページ印刷（ＪＹＵＯＶＬ６Ｇ印刷のメインルーチン）
function TForm1.PrintPage(nTermid: integer): integer;
var
 nRetcode: integer;                  //リターンコード
const
 JYUOVL6G = 'JYUOVL6G';              //書式名の指定

begin
 nRetcode := XmapFrmSetPage(nTermid,              //ページ情報の設定
                            Pchar(0), JYUOVL6G);
 if nRetcode = -1 then
 begin
   PrintPage := nRetcode;
   Exit;
 end;

 nRetcode := PrintHeader(nTermid);   //ヘッダー印刷
 if nRetcode = -1 then
 begin
   PrintPage := nRetcode;
   Exit;
 end;

 nRetcode := PrintDetail(nTermid);   //明細印刷
 if nRetcode = -1 then
 begin
   PrintPage := nRetcode;
   Exit;
 end;

 nRetcode := PrintTrailer(nTermid);  //トレイラ印刷
 if nRetcode = -1 then
 begin
   PrintPage := nRetcode;
   Exit;
 end;
end;

//ヘッダー印刷
function TForm1.PrintHeader(nTermid: integer): integer;
var
 nRetcode: integer;                 //リターンコード
 idWork: Header_Id;
 nameWork: Header_Name;
 strWork: string;                   //文字セット用のワーク
 nLng: integer;                     //文字セット用のワーク
begin
 //以下のデータをＤＢから入力したと想定する
 dbId := '012345';
 dbName := '○×電器';

 //位置合わせの為の改行
 nRetcode := PrintNoDataNewLine(nTermid,      //位置合わせのための改行
                              cnsHeaderNewLine1);
 if nRetcode = -1 then
 begin
   PrintHeader := nRetcode;
   Exit;
 end;

 //コード情報行
 XmapStrMoveLeft(idWork.cSpc1, sizeof(idWork.cSpc1), ' ', 1, ' ');
 XmapStrMoveLeft(idWork.cId, sizeof(idWork.cId), @dbId[1],
                 Length(dbId), ' ');
 nRetcode := XmapFrmSetData(nTermid, LPSTR(@idWork),
                            sizeof(idWork));         //コード情報設定
 if nRetcode = -1 then
 begin
   PrintHeader := nRetcode;
   Exit;
 end;
 nRetcode := PrintNewLine(nTermid, 1, 1);   //コード情報出力と１行改行
 if nRetcode = -1 then
 begin
   PrintHeader := nRetcode;
   Exit;
 end;

 //得意先名行
 XmapStrMoveLeft(nameWork.cSpc1,
                 sizeof(nameWork.cSpc1), ' ', 1, ' ');
 XmapStrMoveLeft(nameWork.cName, sizeof(nameWork.cName),
                 @dbName[1], Length(dbName), ' ');
 nRetcode := XmapFrmSetData(nTermid, LPSTR(@nameWork),
                            sizeof(nameWork));        //名前情報設定
 if nRetcode = -1 then
 begin
   PrintHeader := nRetcode;
   Exit;
 end;
 nRetcode := PrintNewLine(nTermid,                 //名前情報出力と１行
                          1 + cnsHeaderNewLine2,   //改行とヘッダー部の
                          1);                      //終了行までの改行
 if nRetcode = -1 then
 begin
   PrintHeader := nRetcode;
   Exit;
 end;

end;

//明細印刷
function TForm1.PrintDetail(nTermid: integer): integer;
var
 nRetcode: integer;                 //リターンコード
 detailWork: Detail;
 nLoop: integer;                    //ループ変数
 strWork: string;                   //文字セット用のワーク
 nLng: integer;                     //文字セット用のワーク
begin
 //以下のデータをＤＢから入力したと想定する
 dbMdseId[0] := 'A001';
 dbMdse[0] := 'ビデオ';
 dbPrice[0] := 1000;
 dbUnit[0] := 2;
 dbMdseId[1] := 'B001';
 dbMdse[1] := 'テレビ';
 dbPrice[1] := 5000;
 dbUnit[1] := 3;
 dbMdseId[2] := 'C001';
 dbMdse[2] := 'ラジオ';
 dbPrice[2] := 2000;
 dbUnit[2] := 7;
 dbMdseId[3] := 'D001';
 dbMdse[3] := 'ＢＳチューナー';
 dbPrice[3] := 3000;
 dbUnit[3] := 1;

 //位置合わせの為の改行
 nRetcode := PrintNoDataNewLine(nTermid,       //位置合わせの為の改行
                               cnsDetailNewLine1);
 if nRetcode = -1 then
 begin
   PrintDetail := nRetcode;
   Exit;
 end;

 //明細行
 for nLoop := 0 to 3 do                       //明細行数分繰り返す
 begin
   XmapStrMoveLeft(LPSTR(@detailWork), sizeof(detailWork),
                   ' ', 1, ' ');
   XmapStrMoveLeft(detailWork.cMdseId, sizeof(detailWork.cMdseId),
                   @dbMdseId[nLoop][1], Length(dbMdseId[nLoop]), ' ');
   XmapStrMoveLeft(detailWork.cMdse, sizeof(detailWork.cMdse),
                   @dbMdse[nLoop][1], Length(dbMdse[nLoop]), ' ');
   XmapStrItoA(detailWork.cPrice, sizeof(detailWork.cPrice),
               dbPrice[nLoop], XMAPSTR_RIGHT, ' ');
   XmapStrItoA(detailWork.cUnit, sizeof(detailWork.cUnit),
               dbUnit[nLoop], XMAPSTR_RIGHT, ' ');
   XmapStrItoA(detailWork.cSubTotal, sizeof(detailWork.cSubTotal),
               dbPrice[nLoop] * dbUnit[nLoop], XMAPSTR_RIGHT, ' ');
   nRetcode := XmapFrmSetData(nTermid, LPSTR(@detailWork), sizeof(detailWork));   //名前情報設定
   if nRetcode = -1 then
   begin
     PrintDetail := nRetcode;
     Exit;
   end;
   nRetcode := PrintNewLine(nTermid, 1, 1);   //名前情報出力と１行改行
   if nRetcode = -1 then
   begin
     PrintDetail := nRetcode;
     Exit;
   end;
 end;

end;

//トレイラ印刷
function TForm1.PrintTrailer(nTermid: integer): integer;
var
 nRetcode: integer;                  //リターンコード
 nTotal: integer;                    //合計金額
 nLoop: integer;                     //ループ変数
 totalWork: Trailer_Total;
 strWork: string;                    //文字セット用のワーク
 nLng: integer;                      //文字セット用のワーク
begin
 //位置合わせの為の改行
 nRetcode := PrintNoDataNewLine(nTermid,         //位置合わせの為の改行
                                cnsTrailerNewLine1);
 if nRetcode = -1 then
 begin
   PrintTrailer := nRetcode;
   Exit;
 end;

 //合計の計算
 nTotal := 0;
 for nLoop := 0 to high(dbUnit) do
   nTotal := nTotal + dbPrice[nLoop] * dbUnit[nLoop];
 //合計行の印刷
 XmapStrMoveLeft(LPSTR(@totalWork), sizeof(totalWork),
                 ' ', 1, ' ');
 XmapStrItoA(totalWork.cTotal, sizeof(totalWork.cTotal), nTotal,
             XMAPSTR_SUM or XMAPSTR_SYMBOL or XMAPSTR_RIGHT, ' ');
 nRetcode := XmapFrmSetData(nTermid,              //合計情報設定
                            LPSTR(@totalWork), sizeof(totalWork));
 if nRetcode = -1 then
 begin
   PrintTrailer := nRetcode;
   Exit;
 end;
 nRetcode := PrintNewLine(nTermid, 1 ,1);  //合計出力と１行改行
 if nRetcode = -1 then
 begin
   PrintTrailer := nRetcode;
   Exit;
 end;

end;

//指定行数改行ルーチン（行データを設定してない時）
function TForm1.PrintNoDataNewLine(nTermid: integer; nLine: integer): integer;
var
 nRetcode: integer;                        //リターンコード
begin
 //改行の為のダミーデータ設定
 nRetcode := XmapFrmSetData(nTermid, ' ', 1);
 if nRetcode = -1 then
 begin
   PrintNoDataNewLine := nRetcode;
   Exit;
 end;
 PrintNoDataNewLine := PrintNewLine(nTermid, nLine, 1);
end;

//指定行数改行ルーチン（行データを設定している時）
function TForm1.PrintNewLine(nTermid: integer;
                            nLine: integer;
                            nTiming: integer): integer;
var
 nRetcode: integer;                        //リターンコード
begin
 nRetcode := XmapFrmSetNewLine(nTermid, nLine);
 if nRetcode = -1 then
 begin
   PrintNewLine := nRetcode;
   Exit;
 end;
 PrintNewLine := XmapFrmSetLine(nTermid, nTiming);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 Close;
end;

end.

10.　チューニングとトラブルの対処方法

この章では，XMAP3実行時の性能を向上させるためのポイント，およびトラブル発生時の対処方法について説明します。

＜この章の構成＞

10.1　性能向上のポイント

10.2　トラブルの対処方法

10.1　性能向上のポイント

ここでは，AP実行の性能向上のためのポイントについて説明します。

＜この節の構成＞

10.1.1　定義時のポイント

10.1.2　 AP作成時のポイント

10.1.3　実行時のポイント

10.1.1　定義時のポイント

作成する帳票は，必要最小限のオブジェクトにし，書式やマップを小さくすることで実行性能が向上します。マップを小さくするには，次のことに注意してください。

けい線の見直し

むだなけい線は削除します。

つながるけい線は，1本で定義します。

フィールドの見直し
フィールドはまとめて定義してください。例えば，YY-MM-DDは三つに分けるのではなく一つにまとめることでマップが小さくなります。

網掛けの見直し

むだな網掛けは削除します。

網掛けの種類を減らします。

飾り用ビットマップの見直し
ビットマップデータが大きいと処理が遅くなるため，ビットマップデータを小さくします。

10.1.2　 AP作成時のポイント

データ量の見直し
APでむだなデータを送っていませんか。例えば，常にスペースやNULLを送ると実行性能が劣ってしまいます。したがって，出力時の性能を上げるにはデータの量を減らすことが重要です。

データ有無コードで論理マップをクリアします。

むだな初期値は指定しません。

不要なオープン要求の見直し
XMAP3のオープン要求がどのタイミングで出されているかを見直してください。一つのコンパイル単位で，最初のSENDが発行されると，XMAP3のオープンが実行されます。不要にオープンしないためには，一つのコンパイル単位にSENDをまとめるか，または共通のルーチンにまとめてSENDを発行するようにしてください。
また，COBOL言語を使用している場合は，オープンを引き継ぐ環境変数「CBLTERMSHAR=YES」を指定してください。「CBLTERMSHAR=YES」は，SENDインタフェースのときだけ有効です。CALLインタフェースでは無効になります。
CALLインタフェースの場合，または「CBLTERMSHAR」をサポートしていないバージョンの日立COBOLを使用している場合で，AP間のオープン引き継ぎをするときは，ユーザがXMAP3インタフェースエリアの情報を引き継ぐようなコーディングをする必要があります。
DISABLEを登録すると，クローズと次のページがオープンするため時間が掛かります。
なお，XMAP3で使用できる日立COBOLは，COBOL2002，COBOL85 Version 5.0，Version 6，およびVersion 7です。ただし，使用できる日立COBOLは，OSによって異なります。XMAP3で使用できる日立COBOLを，OSごとに次の表に示します。

表10-1　使用できる日立COBOL

OS名 | COBOL2002 | COBOL85
Version 5.0 | Version 6 | Version 7
Windows 95 | × | ○ | ○ | ×
Windows 98 | ○ | ○※1 | ○ | ○
Windows Me | ○ | × | ○※2 | ○
Windows NT 4.0 | ○ | ○ | ○ | ○
Windows 2000 | ○ | × | ○※3 | ○
Windows XP | ○ | × | × | ○
Windows Server 2003 | ○※4 | × | × | ×
Windows Server 2003 x64 | ○※4 | × | × | ×

（凡例）

○：使用できる。

×：使用できない。

注※1

使用できるバージョンは05-01以降となります。

注※2

使用できるバージョンは06-03以降となります。

注※3

使用できるバージョンはOSによって異なります。

・Windows 2000 Server，およびWindows 2000 Professional：06-01以降

・Windows 2000 Advanced Server：06-03以降

・Windows 2000 Datacenter Server：06-04以降

注※4

使用できるバージョンの詳細については，関連するプログラムプロダクトでご確認ください。

グラフィックデータの渡し方
ファイル渡しにしている出力グラフィックを，クリップボード経由にすると早くなります。ただし，指定できるファイルは，一つだけのため注意が必要です。

10.1.3　実行時のポイント

Windowsスプーラへの登録タイミングの見直し
APから出力するデータを，1ページごとに印字するか，APの終了またはクローズするごとに印字するかを選べます。設定に関しては，マニュアル「XMAP3 開発・実行ガイド」の帳票環境のセットアップに関する記述を参照してください。

Windowsスプーラの設定
Windowsスプーラの設定，および印字開始タイミングの設定ができます。印字開始のタイミングは，1ページごとに印字するか，データがすべて出力されてから印字するかを選べます。

GDIかPDLスルーかの見直し
デフォルトはGDIです。LIPSまたはESC/Pスルーを利用すると，データ量が少なくなり，AP実行時および印刷時の性能が向上します。

C/Sシステム構成時の通信データ削減
C/Sシステム構成の場合，XMAP3の通信データを圧縮する機能が利用できます。通信データの圧縮機能を利用すると，C/S間の通信量が削減できるため，帳票の印刷時間の削減が期待できます。詳細については，マニュアル「XMAP3 開発・実行ガイド」を参照してください。

PDFファイルの圧縮
XMAP3が出力するPDFファイルを圧縮できます。出力するPDFファイルを小さくすることで，実行性能が向上します。

10.2　トラブルの対処方法

＜この節の構成＞

10.2.1　日立COBOL使用時のトラブル

10.2.2　書式オーバレイ使用時の注意事項

10.2.3　印刷実行の対処方法

10.2.1　日立COBOL使用時のトラブル

注意

エラーコードの「KCCC」は，COBOL85では「KCCB」となります。

＜この項の構成＞

(1)　コンパイル時の主なエラー

(2)　リンク（MAKE）時の主なエラー

(3)　実行時の主なエラー

(1)　コンパイル時の主なエラー

表10-2　コンパイル時の主なエラー

エラー | 意味 | 対処方法
KCCC3015C-S | データ名，または変数名に不当な文字を指定していることが考えられる。 | データ名，および変数名を見直す。

(2)　リンク（MAKE）時の主なエラー

表10-3　リンク（MAKE）時の主なエラー

エラー
意味
対処方法

LNK1104または
LNK1181
アプリケーション実行時に必要なXMAP3のライブラリを参照できない。
コンパイル環境のPCにXMAP3の開発モデルがインストールされているか確認する（CALL文のインタフェースで作成したアプリケーションの場合はリンケージ環境）。

(3)　実行時の主なエラー

表10-4　実行時の主なエラー（日立COBOLのコンソール画面）

エラー | 意味 | 対処方法
KCCC5008R-S | エラーコードで示すエラーがXMAP3で発生した。 | 帳票印刷時のエラーコードを見て対処する。エラーコードの詳細は，「付録E　リターンコードの詳細」を参照のこと。
KCCC3417R-S | サービス名称不足。

10.2.2　書式オーバレイ使用時の注意事項

ここでは，書式オーバレイ使用時の注意事項について説明します。書式オーバレイを使用するときには，次の点に注意してください。

書式オーバレイで出力する行データ中に，(00)₁₆～(1F)₁₆，(7F)₁₆のデータは使用できません。

書式オーバレイインタフェースの行データの上限値は，16,383バイトです。

ドローで，文字列の属性で文字サイズや字間値を標準以外に設定すると，ドロー上の表示と印刷結果に多少のずれが生じる場合があります。印刷する前に，ドロー上で確認する場合は，ズームの拡大で最大表示します。

書式定義ファイルからの書式ファイルと行制御ファイルの生成は，ドローの保存時または終了時だけできます。ユティリティのマップ生成からは生成されません。

AP実行環境で，書式ファイル（拡張子「.fmp」）と行制御ファイル（拡張子「.pci」）は，同じフォルダに格納します。

帳票環境のセットアップをしないで書式を印刷すると，書式が印刷されない場合があります。その場合には，表示・印刷セットアップで「プリンタ」タブの印刷モードにページプリンタ用として定義したサービス名を指定してください。

書式オーバレイなしの，行データだけの出力はできません。

そのほかのエラーについては，ヘルプのトラブルの対処方法を参照してください。

10.2.3　印刷実行の対処方法

印刷実行時に印刷性能または描画結果の問題が発生した場合の対処方法を，現象別に次の表に示します。該当する現象と推定原因から，対処方法に従って対応してください。

なお，次の表に示す対処方法は，ユーザの責任で行ってください。

表10-5　印刷実行での問題と対処方法

現象
推定原因
対処方法

同等レベルのCPU
で動作が遅いものがある。
実メモリが少ない。
メモリを増設する。

スワップファイルがあるドライブとXMAP3などのあるドライブが同一ドライブになっている。
物理的に別のドライブがある場合（1台のハードディスクを二つのドライブに分けたものではなく，ハードディスク自体が複数台ある場合），実行ファイルのあるドライブではないドライブにスワップファイルを設定すると，動作が速くなることがある。

ディスクアクセスが16ビットになっている（Windows 95，
Windows 98，Windows Meの場合）。
何らかの理由でディスクアクセスが32ビットアクセスではなく，16ビットアクセスになっている。「コントロールパネル」の「システム」を参照して原因を取り除く。通常はWindows 95，Windows 98，Windows Meに対応していない古いドライバを使用していることや，ハードウェアに適さないドライバを使用していることが原因となっている。

ディスク圧縮ソフトを使用している。
XMAP3のファイルやマップなどを圧縮されていないドライブに置く。

ほかのソフトが同時に動作している。
不要なソフトは起動しないようにする。

バックグラウンドで，ほかのAPが起動されている。

Xサーバエミュレータが起動されている。

LAN構成で使用していた端末をスタンドアロン構成として使用している。

システムエージェント（タスクスケジューラ）など，一定の間隔でデフラグやスキャンディスクを自動実行するプログラムが動いている。

業務に影響しないAPはできるだけ起動しないようにする。

サーバ側でスクリーンセーバが起動している。
C/Sシステム構成の場合，サーバOS上でスクリーンセーバが起動していると処理速度が遅くなるため，コントロールパネルでスクリーンセーバを「なし」にする。

プリンタの印刷開始が遅い。
スプールへの書き込みタイミングがAP終了時である。
印刷・表示環境セットアップでスプールへの書き出し単位を「1ページ毎」に変更する。または，APにDISABLE文を書く。ただし，DISABLE文を書くと次回はオープンから始まるので処理が遅くなる。

印刷が遅い。
デバッグ用にログを出力するように指定していた。
ログを出力しないように，設定し直す。ログ出力の設定については，マニュアル「XMAP3 開発・実行ガイド」を参照のこと。

スプールに入っているデータ量が多い。
GDIをPDLスルーにする。

グラフィック領域が大きいため，印刷データ量が大きい。
定義領域をできるだけ小さくする。

クローズの終了が遅い。
スプールへの書き込みタイミングがAP終了時であり，かつPDFファイルへ大量に印刷している。
スプールへの書き込みタイミングを1ページごとにする。または，一つのPDFファイルに格納する帳票の数を分割するなどして減らす。帳票オブジェクトに出力／固定グラフィックがある場合，それらを減らす。

エラー詳細情報として「KBTQ523-E書式機能がオープ
ンされていません」が日立COBOLのコンソール上に表示される。
書式イメージファイル（.fmp）か行制御データファイル（.pci）が見つからない。
書式イメージファイルと行制御データファイルは同じフォルダに格納する。

書式イメージファイル（.fmp）か行制御データファイル（.pci）が上位のバージョンで作成されている。
ファイルの作成バージョンと同じバージョンのXMAP3をインストールする。

書式が印刷されない。
COBOL2002の場合コンパイルオプション「-XMAP,LinePrint」が，COBOL85の場合コンパイルオプション「-Ks」が指定されていない。
コンパイルオプション「-XMAP,LinePrint」または「-Ks」を指定し，再コンパイルする。

表示・印刷セットアップが正しくない。特に，プリンタデバイス名と印刷サービス名称の誤りが考えられる。

スタンドアロン構成の場合，日立COBOLの環境変数を指定している印刷サービス名称と，表示・印刷セットアップで指定しているプリンタデバイス名が一致していない。

C/Sシステム構成の場合，日立COBOLの環境変数で指定している印刷サービス名称と，C/Sセットアップで指定している印刷サービス名称が一致していない。

プリンタデバイス名「#PRT」と印刷サービス名「#PRT」を作成し，そのプリンタの種類をページプリンタにする。

行データとして1部，スペースが印刷される。
(00)₁₆～(1F)₁₆のデータを行データとしてAPが出力しようとした。
ユーザデータを見直す。

行データの末端が印刷されない。
書式オーバレイ定義で指定した用紙サイズを超える行データをAPから指定した。
APで指定する行データを，書式オーバレイ定義で指定した用紙サイズ以内にする。

期待どおりの印刷結果が得られない。
カラー文字や網掛けを含む帳票をGDIモードで印刷する場合に使用する，プリンタのプリンタドライバの仕様。
カラー文字や網掛けを含む帳票を印刷する場合には，テスト印刷で運用上問題がないことを確認して使用する。なお，詳細は，マニュアル「XMAP3 開発・実行ガイド」を参照のこと。

ビットマップイメージが壊れて印刷される。
定義領域に対して，著しく小さいビットマップを領域に合わせて印刷している。
印刷領域に合わせたビットマップデータを作成する。

先頭文字が重ね印字される。
印刷モードで日立ESC/P(A)：用紙吸入量0mmのインサータプリンタを選択している。この場合，日立製インサータプリンタの種類によって，用紙の上端から6.35mm（3/12インチ）以内に定義した描画物は，6.35mm（3/12インチ）より下の行に重ね印字される。
用紙の上端から6.35mm（3/12インチ）以内に描画物は定義しないようにする。

不正な文字が印字される。
ハード設定によって，入力バッファが有効になっている。入力バッファが有効になっている場合，プリンタの機種によっては，連続印刷を実行すると文字化けが発生することがある。
入力バッファを無効にする。詳細は，プリンタに添付の取扱説明書を参照のこと。

印刷モードでGDIモードを選択している。この場合，プリンタドライバのフォント代替機能や，OS標準提供のプリンタドライバの仕様で，不当な文字が印字されることがある。
フォントを置き換えない設定にする。または，プリンタメーカー提供のプリンタドライバを使用する。

帳票定義で定義した描画物の位置と，印刷時の描画物の位置がずれている。
ドローでシリアルインパクトプリンタ用に定義した帳票を，ページプリンタの設定をしたプリンタで印刷している。
運用前にテスト印刷をして，帳票定義でオブジェクトの位置を調整する。

ドローでページプリンタ用に定義した帳票を，シリアルインパクトプリンタの設定をしたプリンタで印刷している。

文字がカラー印刷されない。
出力先プリンタでモノクロプリンタを選択している。
出力先プリンタをカラープリンタにする。

印刷モードでPDLスルーを選択している。
PDLスルーをGDIにする。

表示・印刷セットアップの「印刷色」で指定した文字色「黒」のパレットが有効にならない。
XMAP3 04-01以前で作成したマップ定義ファイルを使用している。
マップ定義ファイルをドローで開き，パレットを有効にしたいフィールドの色を，レイアウト定義またはダイアログで再設定する。そのあと，マップを保存して使用する。

EAN-128バーコードの読み取りに失敗する。
プリンタのハードスペック，印字用紙品質，インク品質などによって発生したEAN-128バーコード印字時のにじみ，およびバーコードリーダの読み取り性能の問題が考えられる。
バーコードの印字幅を調整する。詳細は，マニュアル「XMAP3 開発・実行ガイド」を参照のこと。この調整とあわせて，その他印字精度の劣化要因（インク品質など）も対処すること。

付録

＜この付録の構成＞

付録A　属性情報一覧

付録B　 XMAP3で提供している定義パターン

付録C　日立以外のコンパイラを使用するときの注意

付録D　帳票定義と書式定義の制限値

付録E　リターンコードの詳細

付録F　OCR文字コード

付録G　用語解説

付録A　属性情報一覧

＜この節の構成＞

付録A.1　けい線帳票属性

付録A.2　プレプリント帳票属性

付録A.3　網掛け帳票の帳票属性

付録A.4　グラフィック帳票の帳票属性

付録A.5　書式オーバレイの帳票属性

付録A.6　フィールド・けい線系の属性情報

付録A.7　バーコードの属性情報

付録A.8　グラフィックの属性情報

付録A.9　日付・時刻の表示形式と格納形式

付録A.10　標準提供動的変更テーブル

付録A.1　けい線帳票属性

けい線帳票の属性を次の表に示します。

表A-1　けい線帳票の属性

項目
設定できる値
意味

オフセット※¹
縦：1～127ます
横：1～255ます
指定した値でオフセットを設定します。

レイアウト領域※¹
指定した値でレイアウト領域を設定します。

印刷動作※²
（連続紙）
印刷前改ページ
印字する前に改ページします。

印刷後改ページ
印字したあとに改ページします。

改ページしない
改ページしないで，現在の位置に印字します。

排出先※³
（カット紙）
排出方向1
スタッカ側に用紙を排出します。

排出方向2
ホッパ側に用紙を排出します。

排出しない
用紙を排出しません。

けい線の配置方法の選択
ます目の中央に
引く
ます目の中央からけい線を引きます。

ます目に沿って
引く
ます目に沿ってけい線を引きます。

印刷ドキュメント名
259桁以内
印刷ドキュメント名を指定します。

ます目設定
10CPI/6LPI
基準ます目を文字の間隔10CPI，行の間隔6LPIで設定します。

12CPI/6LPI
基準ます目を文字の間隔12CPI，行の間隔6LPIで設定します。

15CPI/6LPI
基準ます目を文字の間隔15CPI，行の間隔6LPIで設定します。

15CPI/8LPI
基準ます目を文字の間隔15CPI，行の間隔8LPIで設定します。

自由な設定
基準ます目を行の間隔，文字の間隔で設定します。

行の間隔※⁴
8LPI
基準ます目を8LPIで設定します。

6LPI
基準ます目を6LPIで設定します。

文字の間隔※⁴
0ポイント
基準ます目を文字の間隔0ポイントで設定します。

1ポイント
基準ます目を文字の間隔1ポイントで設定します。

2ポイント
基準ます目を文字の間隔2ポイントで設定します。

3ポイント
基準ます目を文字の間隔3ポイントで設定します。

4ポイント
基準ます目を文字の間隔4ポイントで設定します。

5ポイント
基準ます目を文字の間隔5ポイントで設定します。

6ポイント
基準ます目を文字の間隔6ポイントで設定します。

7ポイント
基準ます目を文字の間隔7ポイントで設定します。

注※1

設定できる値は，オフセットとレイアウト領域の設定値の合計を示しています。

ただし，レイアウト領域の最小値は，縦：1ます，横：1ますです。

注※2

印刷モードがESC/Pのときだけ有効です。また，改ページの動作は，表示・印刷セットアップの高度な設定：プリンタダイアログで設定した改ページの動作によって異なります。詳細については，マニュアル「XMAP3 開発・実行ガイド」を参照してください。

注※3

対象となるプリンタが日立製インサータ付きプリンタのときだけ有効です。

注※4

ます目設定に「自由な設定」を指定した場合だけ指定できます。

付録A.2　プレプリント帳票属性

プレプリント帳票の属性を次の表に示します。

表A-2　プレプリント帳票の属性

項目
設定できる値
意味

単位の選択
mm，ドット，
ます目，25.4mm
座標の単位をmm，ドット，ます目，および25.4mm（連続紙だけ）に設定します。

オフセット
※¹

縦：

3.5～537.7mm，25～3810ドット，1～127ます，2/10～21 1/10

（25.4mm）

横：

2.5～579.9mm，18～4095ドット，1～255ます，1/10～22 3/4 （25.4mm）

指定した値でオフセットを設定します。

レイアウト領域※¹
指定した値でレイアウト領域を設定します。

印刷動作※²
（連続紙）
印刷前改ページ
印字する前に改ページします。

印刷後改ページ
印字したあとに改ページします。

改ページしない
改ページしないで，現在の位置に印字します。

排出先※³
（カット紙）
排出方向1
スタッカ側に用紙を排出します。

排出方向2
ホッパ側に用紙を排出します。

排出しない
用紙を排出しません。

印刷ドキュメント名
259桁以内
印刷ドキュメント名を指定します。

ます目設定
10CPI/6LPI
基準ます目を文字の間隔10CPI，行の間隔6LPIで設定します。

12CPI/6LPI
基準ます目を文字の間隔12CPI，行の間隔6LPIで設定します。

15CPI/6LPI
基準ます目を文字の間隔15CPI，行の間隔6LPIで設定します。

注※1

設定できる値は，オフセットとレイアウト領域の設定値の合計を示しています。

ただし，レイアウト領域の最小値は，次のとおりです。

　縦：3.5mm，25ドット，1ます，2/10（25.4mm）

　横：2.5mm，18ドット，1ます，1/10（25.4mm）

注※2

印刷モードがESC/Pのときだけ有効です。また，改ページの動作は，表示・印刷セットアップの高度な設定：プリンタダイアログで設定した改ページの動作によって異なります。詳細については，マニュアル「XMAP3 開発・実行ガイド」を参照してください。

注※3

対象となるプリンタが日立製インサータ付きプリンタのときだけ有効です。

付録A.3　網掛け帳票の帳票属性

網掛け帳票の帳票属性を次の表に示します。

表A-3　網掛け帳票の属性

項目
設定できる値
意味

マージン
0～50.0
指定した値でマージンを設定します（単位：mm）。

オフセット※¹
縦：1～127ます
横：1～255ます
指定した値でオフセットを設定します。

レイアウト領域
※¹
指定した値でレイアウト領域を設定します。

用紙サイズ選択
A3縦，A3横
指定した用紙サイズと向きで用紙を設定します。

A4縦，A4横

A5縦，A5横

B4縦，B4横

B5縦，B5横

フリー
用紙サイズをページ用紙定義ダイアログで自由に設定します。

印刷部数
1～32
印刷時の部数を設定します。

印刷ドキュメント名
259桁以内
印刷ドキュメント名を指定します。

ます目設定
10CPI/6LPI
基準ます目を文字の間隔10CPI，行の間隔6LPIで設定します。文字サイズは9ポイントが仮定されます。

12CPI/6LPI
基準ます目を文字の間隔12CPI，行の間隔6LPIで設定します。文字サイズは9ポイントが仮定されます。

15CPI/8LPI
基準ます目を文字の間隔15CPI，行の間隔8LPIで設定します。文字サイズは7ポイントが仮定されます。

自由な設定
基準ます目を行の間隔，文字の間隔，文字サイズで設定します。

行の間隔※2
8LPI
基準ます目を8LPIで設定します。

6LPI
基準ます目を6LPIで設定します。

4LPI
基準ます目を4LPIで設定します。

3LPI
基準ます目を3LPIで設定します。

文字の間隔※2
0ポイント
基準ます目を文字の間隔0ポイントで設定します。

1ポイント
基準ます目を文字の間隔1ポイントで設定します。

2ポイント
基準ます目を文字の間隔2ポイントで設定します。

3ポイント
基準ます目を文字の間隔3ポイントで設定します。

4ポイント
基準ます目を文字の間隔4ポイントで設定します。

5ポイント
基準ます目を文字の間隔5ポイントで設定します。

6ポイント
基準ます目を文字の間隔6ポイントで設定します。

7ポイント
基準ます目を文字の間隔7ポイントで設定します。

文字サイズ※²
7ポイント
基準ます目を7ポイントで設定します。

9ポイント
基準ます目を9ポイントで設定します。

注※1

設定できる値は，オフセットとレイアウト領域の設定値の合計を示しています。

ただし，レイアウト領域の最小値は，縦：1ます，横：1ますです。

注※2

ます目設定に「自由な設定」を指定した場合だけ指定できます。

付録A.4　グラフィック帳票の帳票属性

グラフィック帳票の帳票属性を次の表に示します。

表A-4　グラフィック帳票の属性

項目
設定できる値
意味

マージン
0～50.0
指定した値でマージンを設定します（単位：mm）。

オフセット
縦：表A-5参照
横：表A-6参照
指定した値でオフセットを設定します。

レイアウト領域
指定した値でレイアウト領域を設定します。

用紙サイズ選択
A3縦，A3横
指定した用紙サイズと向きで用紙を設定します。

A4縦，A4横

A5縦，A5横

B4縦，B4横

B5縦，B5横

フリー
用紙サイズをページ用紙定義ダイアログで自由に設定します。

印刷部数
1～32
印刷時の部数を設定します。

印刷ドキュメント名
259桁以内
印刷ドキュメント名を指定します。

ます目設定
10CPI/6LPI
基準ます目を文字の間隔10CPI，行の間隔6LPIで設定します。文字サイズは9ポイントが仮定されます。

12CPI/6LPI
基準ます目を文字の間隔12CPI，行の間隔6LPIで設定します。文字サイズは9ポイントが仮定されます。

15CPI/6LPI
基準ます目を文字の間隔15CPI，行の間隔6LPIで設定します。文字サイズは7ポイントが仮定されます。

15CPI/8LPI
基準ます目を文字の間隔15CPI，行の間隔8LPIで設定します。文字サイズは7ポイントが仮定されます。

自由な設定
基準ます目を行の間隔，文字の間隔，文字サイズで設定します。

行の間隔※
12LPI
基準ます目を12LPIで設定します。

10LPI
基準ます目を10LPIで設定します。

8LPI
基準ます目を8LPIで設定します。

6LPI
基準ます目を6LPIで設定します。

4LPI
基準ます目を4LPIで設定します。

3LPI
基準ます目を3LPIで設定します。

文字の間隔※
0ポイント
基準ます目を文字の間隔0ポイントで設定します。

1ポイント
基準ます目を文字の間隔1ポイントで設定します。

2ポイント
基準ます目を文字の間隔2ポイントで設定します。

3ポイント
基準ます目を文字の間隔3ポイントで設定します。

4ポイント
基準ます目を文字の間隔4ポイントで設定します。

5ポイント
基準ます目を文字の間隔5ポイントで設定します。

6ポイント
基準ます目を文字の間隔6ポイントで設定します。

7ポイント
基準ます目を文字の間隔7ポイントで設定します。

文字サイズ※
5ポイント
基準ます目を5ポイントで設定します。

7ポイント
基準ます目を7ポイントで設定します。

9ポイント
基準ます目を9ポイントで設定します。

12ポイント
基準ます目を12ポイントで設定します。

注※

ます目設定に「自由な設定」を指定した場合だけ指定できます。

表A-5　オフセットとレイアウト領域に設定できる値（縦）

行の間隔 | 単位
ます | ドット | mm
12 LPI | 1～127 | 20～2,540 | 2.1～268.8
10 LPI | 24～3,048 | 2.5～322.6
8 LPI | 30～3,810 | 3.2～403.2
6 LPI | 40～5,080 | 4.2～537.6
4 LPI | 1～91 | 60～5,461 | 6.4～578
3 LPI | 1～68 | 80～5,461 | 8.5～578

注1

グラフィック帳票では，オフセットとレイアウト領域の設定値の合計となります。最小値は，レイアウト領域の最小値を示しています。

注2

書式オーバレイでは，レイアウト領域の設定値となります。

注3

文字サイズが異なっても，設定できる値は変わりません。

表A-6　オフセットとレイアウト領域に設定できる値（横）

文字サイズ | 文字の間隔 | 単位
ます | ドット | mm
5ポイント | 0ポイント | 1～255 | 8～2,040 | 0.8～215.9
1ポイント | 10～2,550 | 1.1～269.9
2ポイント | 11～2,805 | 1.2～296.9
3ポイント | 13～3,315 | 1.4～350.8
4ポイント | 14～3,570 | 1.5～377.8
5ポイント | 16～4,080 | 1.7～431.8
6ポイント | 17～4,355 | 1.8～458.8
7ポイント | 19～4,845 | 2～512.8
7ポイント | 0ポイント | 1～255 | 12～3,060 | 1.3～323.9
1ポイント | 14～3,570 | 1.5～377.8
2ポイント | 15～3,825 | 1.6～404.8
3ポイント | 17～4,335 | 1.8～458.8
4ポイント | 18～4,590 | 1.9～485.8
5ポイント | 20～5,100 | 2.1～539.8
6ポイント | 21～5,355 | 2.2～566.7
7ポイント | 1～237 | 23～5,461 | 2.4～578
9ポイント | 0ポイント | 1～255 | 16～4,080 | 1.7～431.8
1ポイント | 18～4,590 | 1.9～485.8
2ポイント | 19～4,845 | 2～512.8
3ポイント | 21～5,355 | 2.2～566.7
4ポイント | 1～248 | 22～5,461 | 2.3～578
5ポイント | 1～227 | 24～5,461 | 2.5～578
6ポイント | 1～218 | 25～5,461 | 2.6～578
7ポイント | 1～202 | 27～5,461 | 2.9～578
12ポイント | 0ポイント | 1～255 | 20～5,100 | 2.1～539.8
1ポイント | 1～248 | 22～5,461 | 2.3～578
2ポイント | 1～237 | 23～5,461 | 2.4～578
3ポイント | 1～218 | 25～5,461 | 2.6～578
4ポイント | 1～210 | 26～5,461 | 2.8～578
5ポイント | 1～195 | 28～5,461 | 3～578
6ポイント | 1～188 | 29～5,461 | 3.1～578
7ポイント | 1～176 | 31～5,461 | 3.3～578
10CPI/6LPI | 1～227 | 24～5,461 | 2.5～578
12CPI/6LPI | 1～255 | 20～5,100 | 2.1～539.8
15CPI/6LPI | 16～4,080 | 1.7～431.8
15CPI/8LPI

注1

グラフィック帳票では，オフセットとレイアウト領域の設定値の合計となります。最小値は，レイアウト領域の最小値を示しています。

注2

書式オーバレイでは，レイアウト領域の設定値となります。

付録A.5　書式オーバレイの帳票属性

書式オーバレイの帳票属性を次の表に示します。

表A-7　書式オーバレイの属性

項目
設定できる値
意味

マージン
0～50.0
指定した値でマージンを設定します（単位：mm）。

レイアウト領域
縦：表A-5参照
横：表A-6参照
指定した値でレイアウト領域を設定します。

用紙サイズ選択
A3縦，A3横
指定した用紙サイズと向きで用紙を設定します。

A4縦，A4横

A5縦，A5横

B4縦，B4横

B5縦，B5横

フリー
用紙サイズをページ用紙定義ダイアログで自由に設定します。

ます目設定
10CPI/6LPI
基準ます目を文字の間隔10CPI，行の間隔6LPIで設定します。文字サイズは9ポイントが仮定されます。

12CPI/6LPI
基準ます目を文字の間隔12CPI，行の間隔6LPIで設定します。文字サイズは9ポイントが仮定されます。

15CPI/6LPI
基準ます目を文字の間隔15CPI，行の間隔6LPIで設定します。文字サイズは7ポイントが仮定されます。

15CPI/8LPI
基準ます目を文字の間隔15CPI，行の間隔8LPIで設定します。文字サイズは7ポイントが仮定されます。

自由な設定
基準ます目を行の間隔，文字の間隔，文字サイズで設定します。

印刷ドキュメント名
259桁以内
印刷ドキュメント名を指定します。

行の間隔※
12LPI
基準ます目を12LPIで設定します。

10LPI
基準ます目を10LPIで設定します。

8LPI
基準ます目を8LPIで設定します。

6LPI
基準ます目を6LPIで設定します。

4LPI
基準ます目を4LPIで設定します。

3LPI
基準ます目を3LPIで設定します。

文字の間隔※
0ポイント
基準ます目を文字の間隔0ポイントで設定します。

1ポイント
基準ます目を文字の間隔1ポイントで設定します。

2ポイント
基準ます目を文字の間隔2ポイントで設定します。

3ポイント
基準ます目を文字の間隔3ポイントで設定します。

4ポイント
基準ます目を文字の間隔4ポイントで設定します。

5ポイント
基準ます目を文字の間隔5ポイントで設定します。

6ポイント
基準ます目を文字の間隔6ポイントで設定します。

7ポイント
基準ます目を文字の間隔7ポイントで設定します。

文字サイズ※
5ポイント
基準ます目を5ポイントで設定します。

7ポイント
基準ます目を7ポイントで設定します。

9ポイント
基準ます目を9ポイントで設定します。

12ポイント
基準ます目を12ポイントで設定します。

注※

ます目設定に「自由な設定」を指定した場合だけ指定できます。

付録A.6　フィールド・けい線系の属性情報

フィールド系（固定／出力／予約），およびけい線系（けい線／矩形／網掛け）の属性情報を次の表に示します。

表A-8　フィールドの属性

項目

設定
できる値

意味
けい線帳票
プレプリント帳票
網掛け帳票
グラフィック帳票
書式オ｜バレイ

文字の拡大
標準
文字を通常サイズにします。
○
○
○
○
○

平体
文字を横2倍に拡大します。
○
×
○
○
○

長体
文字を縦2倍に拡大します。
○
×
○
○
○

倍角
文字を縦横2倍（倍角）に拡大します。
○
×
○
○
○

文字サイズ※¹
5ポイント
文字サイズを5ポイントにします。
×
×
×
○
○

7ポイント
文字サイズを7ポイントにします。
×
×
○
○
○

9ポイント
文字サイズを9ポイントにします。
○
○
○
○
○

12ポイント
文字サイズを12ポイントにします。
×
×
×
○
○

14ポイント
文字サイズを14ポイントにします。
×
×
×
○
○

文字の間隔※¹
0～7ポイント
フィールドの文字の間隔を0ポイントから7ポイントで設定します。
○※2
○
○※2
○
○

書体※³
標準※4
文字の書体を標準にします。
×
×
×
○
○

明朝
文字の書体を明朝にします。
×
×
×
○
○

ゴシック
文字の書体をゴシックにします。
×
×
×
○
○

文字の強調※³
標準
文字の表示形式を標準にします。
×
×
×
○
○

太字
文字の表示形式を太字にします。
×
×
×
○
○

斜体
文字の表示形式を斜体にします。
×
×
×
○
○

太字＆斜体
文字の表示形式を太字の斜体にします。
×
×
×
○
○

文字色
黒
文字色を黒にします。
○※5
○※5
○※5
○
○※5

白
文字色を白にします。
×
×
×
○
×

赤
文字色を赤にします。
×
×
×
○
×

緑
文字色を緑にします。
×
×
×
○
×

青
文字色を青にします。
×
×
×
○
×

紫
文字色を紫にします。
×
×
×
○
×

空
文字色を空にします。
×
×
×
○
×

黄
文字色を黄にします。
×
×
×
○
×

テキスト揃え
（固定フィールドの場合だ
け該当）
中央揃え
フィールド内のテキストを中央に揃えます。
○
×
○
○
○

左揃え
フィールド内のテキストを左端に揃えます。
○
×
○
○
○

右揃え
フィールド内のテキストを右端に揃えます。
○
×
○
○
○

均等配置
フィールド内のテキストを均等に配置します。
○
×
○
○
○

けい線
線種（実線）
[図データ]　
○
×
○
○
○

　　（破線）
[図データ]　
○
×
○
○
○

　　（点線）
[図データ]　
×
×
×
○
○

（一点鎖線）
[図データ]　
×
×
×
○
○

（二点鎖線）
[図データ]　
×
×
×
○
○

（二重線）
[図データ]　
×
×
×
○
○

太さ（細）
[図データ]　
○
×
○
○
○

　　（中）
[図データ]　
○
×
○
○
○

　　（太）
[図データ]　
×
×
○
○
○

　　（極太）
[図データ]　
×
×
○
○
○

位置（上）
けい線をます目の上に引きます。
○
×
○
○
○

　　（中央）
けい線をます目の中央に引きます。
×
×
×
○
○

　　（下）
けい線をます目の下に引きます。
○
×
○
○
○

矩形
角の丸め（ラウンドコーナ）
4コーナ自由に丸めを付けられます。
×
×
○
○
○

丸め半径
丸めの半径（大，標準，小）が付けられます。
×
×
×
○
○

種別
枠の中に斜線を付けられます。
×
×
×
○
○

線種（実線）
[図データ]　
○
×
○
○
○

　　（破線）
[図データ]　
○
×
○
○
○

　　（点線）
[図データ]　
×
×
×
○
○

（一点鎖線）
[図データ]　
×
×
×
○
○

（二点鎖線）
[図データ]　
×
×
×
○
○

（二重線）
[図データ]　
×
×
×
○
○

太さ（細）
[図データ]　
○
×
○
○
○

　　（中）
[図データ]　
○
×
○
○
○

　　（太）
[図データ]　
×
×
○
○
○

　　（極太）
[図データ]　
×
×
○
○
○

網掛け
枠の有無
枠あり／なし
×
×
○
○
○

角の丸め（ラウンドコーナ）
4コーナ自由に丸めを付けられます。
×
×
○
○
○

丸め半径
丸めの半径（大，標準，小）が付けられます。
×
×
×
○
○

種別
枠の中に斜線を付けられます。
×
×
×
○
○

線種（実線）
[図データ]　
×
×
○
○
○

　　（破線）
[図データ]　
×
×
○
○
○

　　（点線）
[図データ]　
×
×
×
○
○

（一点鎖線）
[図データ]　
×
×
×
○
○

（二点鎖線）
[図データ]　
×
×
×
○
○

（二重線）
[図データ]　
×
×
×
○
○

太さ（細）
[図データ]　
×
×
○
○
○

　　（中）
[図データ]　
×
×
○
○
○

　　（太）
[図データ]　
×
×
○
○
○

　　（極太）
[図データ]　
×
×
○
○
○

網掛けの濃さ※⁶
極薄網掛け，薄い網掛け，標準網掛け，濃い網掛け，極濃網掛け，薄い格子，標準格子，薄い右下，標準右下，薄い左下，標準左下，薄い縦線，標準縦線，薄い横線，標準横線が設定できます。
×
×
○※⁷
○
○

（凡例）

○：サポートしている。

×：サポートしていない。

注※1

予約フィールドの場合，グラフィック帳票と網掛け帳票だけで設定できます。

注※2

ます目設定に「自由な設定」を指定した場合だけ指定できます。

注※3

予約フィールドの場合，グラフィック帳票だけで設定できます。

注※4

明朝体で印字されます。

注※5

けい線帳票，プレプリント帳票，網掛け帳票，および書式オーバレイでは，文字色は黒で固定となっているため，文字色を選択する項目はありません。

注※6

グラフィック帳票の予約フィールド，グラフィック帳票の固定フィールド，および書式オーバレイの固定フィールドでも網掛けを設定できます。これらのオブジェクトで設定できる網掛けは，薄い網掛け，標準網掛け，および濃い網掛けの3種類です。

注※7

網掛け帳票では，薄い網掛け，標準網掛け，および濃い網掛けの3種類が設定できます。

付録A.7　バーコードの属性情報

バーコードは，プレプリント帳票およびグラフィック帳票が対象になります。バーコードの属性は次のとおりです。

バーコードの種類
バーコードの種類を「JAN8」「JAN13」「CODE39」「NW-7」「ITF(6)」「ITF(14)」「ITF(16)」「カスタマ」※「EAN-128」※の中から選択します。

注※

「カスタマ」，「EAN-128」はグラフィック帳票だけで指定できます。

データ文字の指定
バーコードの下にデータ文字を指定するかどうかを選びます。ただし，バーコードの種類がカスタマの場合は，データ文字を指定できません。

付録A.8　グラフィックの属性情報

グラフィックは，グラフィック帳票，書式オーバレイが対象になります。グラフィックの属性は次のとおりです。

領域に合わせて表示する
作成したグラフィックデータと同じ大きさで表示するかどうかを指定します。領域に合わせて表示した場合，ドロー上で指定した大きさでグラフィックが印刷されます。ただし，作成したグラフィックより大きく表示した場合，印刷品質が悪くなりますのでご注意ください。

領域に枠を付ける
配置したグラフィックに枠を付けるかどうかを指定します。

グラフィックデータの受け渡し方法
出力グラフィックの場合，作成したグラフィックデータの指定方法を次の4種類の中から選択できます。
・ファイル名指定
・フルパス64
・フルパス128
・フルパス259

付録A.9　日付・時刻の表示形式と格納形式

日付および時刻の表示形式と格納形式を次の表に示します。

表A-9　表示形式と格納形式（日付）

日付ダイアログボックスの表示内容
（表示内容は実際の日付に関係なく固定です）
格納形式

1997/ 8/ 7
YYYYMMDD

1997/08/07

1997- 8- 7

1997-08-07

1997. 8. 7

1997.08.07

1997 8 7

19970807

97/ 8/ 7
YYMMDD

97/08/07

97- 8- 7

97-08-07

97. 8. 7

97.08.07

97 8 7

970807

平成 9年 8月 7日
GYYMMDD

平成09年08月07日

平 9年 8月 7日

平09年08月07日

年月 平成 9年 8月
GYYMM

年月 平成09年08月

年月 平 9年 8月

年月 平09年08月

年月 1997/ 8
YYYYMM

年月 1997/08

年月 1997- 8

年月 1997-08

年月 1997. 8

年月 1997.08

年月 1997 8

年月 199708

年月 97/ 8
YYMM

年月 97/08

年月 97- 8

年月 97-08

年月 97. 8

年月 97.08

年月 97 8

年月 9708

月日 8/ 7
MMDD

月日 08/07

月日 8- 7

月日 08-07

月日 8. 7

月日 08.07

月日 8 7

月日 0807

年　 平 9年
GYY

年　 平09年

年　 9
YYYY

年　 0009

年 　 9
YY

年 　09

月　 8
MM

月　 08

日 　 7
DD

日　 07

表A-10　表示形式と格納形式（時刻）

時刻ダイアログボックスの表示内容
（表示内容は実際の時刻に関係なく固定です）
格納形式

21:08:07
HHMMSS

21: 8: 7

21.08.07

21. 8. 7

PM09:08:07

PM 9: 8: 7

PM09.08.07

PM 9. 8. 7

09:08:07PM

9: 8: 7PM

09.08.07PM

9. 8. 7PM

21時08分07秒

21時 8分 7秒

210807

21 8 7

時分 21:08
HHMM

時分 21: 8

時分 21.08

時分 21. 8

時分 PM09:08

時分 PM 9: 8

時分 PM09.08

時分 PM 9. 8

時分 09:08PM

時分 9: 8PM

時分 09.08PM

時分 9. 8PM

時分 21時08分

時分 21時 8分

時分 2108

時分 21 8

分秒 08:07
MMSS

分秒 8: 7

分秒 08.07

分秒 8. 7

分秒 08分07秒

分秒 8分 7秒

分秒 0807

分秒 8 7

時　 09時
HH

時　 9時

時 　09

時　 9

分　 08分
MM

分　 8分

分　 08

分　 8

秒　 07秒
SS

秒 　 7秒

秒　 07

秒　 7

付録A.10　標準提供動的変更テーブル

帳票の表示属性をAPから動的に変更する場合，ドローセットアップの次に示す機能で定義した修飾名を使用します。

フィールド表示属性の動的変更

けい線表示属性の動的変更

　ここでは，XMAP3が標準に提供する修飾名について説明します。

＜この項の構成＞

(1)　フィールド表示属性の動的変更

(2)　けい線表示属性の動的変更

(1)　フィールド表示属性の動的変更

フィールド表示属性の動的変更の修飾名を次の表に示します。

表A-11　フィールド表示属性の動的変更

動的変更テーブルのデータ名 | 修飾名 | 表示属性
XMAP-FIELD-BL | BL | 強調（太字）
XMAP-FIELD-SH | SH | 網掛け
XMAP-FIELD-CR | CR | 抹消線
XMAP-FIELD-RE | RE | 赤色表示

(2)　けい線表示属性の動的変更

けい線表示属性の動的変更の修飾名を次の表に示します。

表A-12　けい線表示属性の動的変更

動的変更テーブルのデータ名 | 修飾名 | 表示属性
XMAP-LINE-DB | DB | 二重線
XMAP-LINE-IV | IV | 非表示（線を引かない）
XMAP-LINE-SL | SL | 実線（細線）
XMAP-LINE-DS | DS | 破線（細線）
XMAP-LINE-DT | DT | 点線（細線）

付録B　 XMAP3で提供している定義パターン

XMAP3では，用紙サイズや印刷モード別に帳票の定義パターンを用意しています。帳票のサイズを統一するために使用することをお勧めします。

帳票の定義パターンは，新規作成ダイアログの「定義パターンの選択」で指定できます。

＜この節の構成＞

付録B.1　けい線帳票およびプレプリント帳票の定義パターン

付録B.2　網掛け帳票の定義パターン

付録B.3　グラフィック帳票の定義パターン

付録B.4　書式オーバレイの定義パターン

付録B.5　XMAP3で提供しているプログラムパターン

付録B.1　けい線帳票およびプレプリント帳票の定義パターン

けい線帳票の定義パターンと，プレプリント帳票の定義パターンを示します。定義パターンは，連続紙およびカット紙ごとに示します。

＜この項の構成＞

(1)　けい線帳票（連続紙）およびプレプリント帳票（連続紙）の定義パターン

(2)　けい線帳票（カット紙）およびプレプリント帳票（カット紙）の定義パターン

(1)　けい線帳票（連続紙）およびプレプリント帳票（連続紙）の定義パターン

表B-1　けい線帳票（連続紙）およびプレプリント帳票（連続紙）の定義パターン

項番 | パターンの内容
1 | 用紙縦サイズ　304.8mm（12インチ）
2 | 用紙縦サイズ　279.4mm（11インチ）
3 | 用紙縦サイズ　254.0mm（10インチ）
4 | 用紙縦サイズ　228.6mm（9インチ）
5 | 用紙縦サイズ　177.8mm（7インチ）
6 | 用紙縦サイズ　152.4mm（6インチ）
7 | 用紙縦サイズ　143.9mm（5 2/3インチ）
8 | 用紙縦サイズ　139.7mm（5 1/2インチ）
9 | 用紙縦サイズ　127.0mm（5インチ）
10 | 用紙縦サイズ　114.3mm（4 1/2インチ）
11 | 用紙縦サイズ　101.6mm（4インチ）
12 | 用紙縦サイズ　 93.1mm（3 2/3インチ）
13 | 用紙縦サイズ　 88.9mm（3 1/2インチ）
14 | フリーサイズ

(2)　けい線帳票（カット紙）およびプレプリント帳票（カット紙）の定義パターン

表B-2　けい線帳票（カット紙）およびプレプリント帳票（カット紙）の定義パターン

項番 | 用紙サイズ | 用紙向き | 文字の間隔
1 | A4 | 縦 | 10CPI
2 | A4 | 横 | 10CPI
3 | B4 | 縦 | 10CPI
4 | B4 | 横 | 10CPI
5 | フリー | － | －

（凡例）

－：該当しない。

付録B.2　網掛け帳票の定義パターン

網掛け帳票の定義パターンを次の表に示します。

表B-3　網掛け帳票の定義パターン

項番 | 用紙サイズ | 用紙向き | 文字の間隔
1 | A4 | 縦 | 10CPI
2 | A4 | 縦 | 15CPI
3 | A4 | 横 | 10 CPI
4 | A4 | 横 | 15 CPI
5 | B4 | 縦 | 10 CPI
6 | B4 | 縦 | 15 CPI
7 | B4 | 横 | 10 CPI
8 | B4 | 横 | 15 CPI
9 | フリー | － | －

（凡例）

－：該当しない。

付録B.3　グラフィック帳票の定義パターン

グラフィック帳票の定義パターンを次の表に示します。

表B-4　グラフィック帳票の定義パターン

項番 | 用紙サイズ | 用紙向き | 文字サイズ | 文字の間隔
1 | A4 | 縦 | 9ポイント文字 | 5ポイント間隔（10CPI），6LPI
2 | A4 | 縦 | 9ポイント文字 | 0ポイント間隔（15CPI），6LPI
3 | A4 | 縦 | 7ポイント文字 | 2ポイント間隔（15CPI），8LPI
4 | A4 | 横 | 9ポイント文字 | 5ポイント間隔（10CPI），6LPI
5 | A4 | 横 | 9ポイント文字 | 0ポイント間隔（15CPI），6LPI
6 | A4 | 横 | 7ポイント文字 | 2ポイント間隔（15CPI），8LPI
7 | B4 | 縦 | 9ポイント文字 | 5ポイント間隔（10CPI），6LPI
8 | B4 | 縦 | 9ポイント文字 | 0ポイント間隔（15CPI），6LPI
9 | B4 | 縦 | 7ポイント文字 | 2ポイント間隔（15CPI），8LPI
10 | B4 | 横 | 9ポイント文字 | 5ポイント間隔（10CPI），6LPI
11 | B4 | 横 | 9ポイント文字 | 0ポイント間隔（15CPI），6LPI
12 | B4 | 横 | 7ポイント文字 | 2ポイント間隔（15CPI），8LPI
13 | フリー | － | － | －

（凡例）

－：該当しない。

付録B.4　書式オーバレイの定義パターン

書式オーバレイの定義パターンを次の表に示します。

表B-5　書式オーバレイの定義パターン

項番 | 用紙サイズ | 用紙向き | 文字サイズ | 文字の間隔
1 | A4 | 縦 | 9ポイント文字 | 5ポイント間隔（10CPI），6LPI
2 | A4 | 縦 | 9ポイント文字 | 2ポイント間隔（12CPI），6LPI
3 | A4 | 縦 | 7ポイント文字 | 5ポイント間隔（12CPI），6LPI
4 | A4 | 縦 | 9ポイント文字 | 0ポイント間隔（15CPI），6LPI
5 | A4 | 縦 | 7ポイント文字 | 2ポイント間隔（15CPI），8LPI
6 | A4 | 縦 | 7ポイント文字 | 4ポイント間隔，8LPI
7 | A4 | 縦 | 7ポイント文字 | 0ポイント間隔，6LPI
8 | A4 | 縦 | 7ポイント文字 | 0ポイント間隔，8LPI
9 | A4 | 横 | 9ポイント文字 | 5ポイント間隔（10CPI），6LPI
10 | A4 | 横 | 9ポイント文字 | 2ポイント間隔（12CPI），6LPI
11 | A4 | 横 | 7ポイント文字 | 5ポイント間隔（12CPI），6LPI
12 | A4 | 横 | 9ポイント文字 | 0ポイント間隔（15CPI），6LPI
13 | A4 | 横 | 7ポイント文字 | 2ポイント間隔（15CPI），8LPI
14 | A4 | 横 | 7ポイント文字 | 4ポイント間隔，8LPI
15 | A4 | 横 | 7ポイント文字 | 0ポイント間隔，6LPI
16 | A4 | 横 | 7ポイント文字 | 0ポイント間隔，8LPI
17 | B4 | 縦 | 9ポイント文字 | 5ポイント間隔（10CPI），6LPI
18 | B4 | 縦 | 9ポイント文字 | 2ポイント間隔（12CPI），6LPI
19 | B4 | 縦 | 7ポイント文字 | 5ポイント間隔（12CPI），6LPI
20 | B4 | 縦 | 9ポイント文字 | 0ポイント間隔（15CPI），6LPI
21 | B4 | 縦 | 7ポイント文字 | 2ポイント間隔（15CPI），8LPI
22 | B4 | 縦 | 7ポイント文字 | 4ポイント間隔，8LPI
23 | B4 | 縦 | 7ポイント文字 | 0ポイント間隔，6LPI
24 | B4 | 縦 | 7ポイント文字 | 0ポイント間隔，8LPI
25 | B4 | 横 | 9ポイント文字 | 5ポイント間隔（10CPI），6LPI
26 | B4 | 横 | 9ポイント文字 | 2ポイント間隔（12CPI），6LPI
27 | B4 | 横 | 7ポイント文字 | 5ポイント間隔（12CPI），6LPI
28 | B4 | 横 | 9ポイント文字 | 0ポイント間隔（15CPI），6LPI
29 | B4 | 横 | 7ポイント文字 | 2ポイント間隔（15CPI），8LPI
30 | B4 | 横 | 7ポイント文字 | 4ポイント間隔，8LPI
31 | B4 | 横 | 7ポイント文字 | 0ポイント間隔，6LPI
32 | B4 | 横 | 7ポイント文字 | 0ポイント間隔，8LPI
33 | A5 | 縦 | 9ポイント文字 | 5ポイント間隔（10CPI），6LPI
34 | A5 | 縦 | 9ポイント文字 | 2ポイント間隔（12CPI），6LPI
35 | A5 | 縦 | 7ポイント文字 | 5ポイント間隔（12CPI），6LPI
36 | A5 | 縦 | 9ポイント文字 | 0ポイント間隔（15CPI），6LPI
37 | A5 | 縦 | 7ポイント文字 | 2ポイント間隔（15CPI），8LPI
38 | A5 | 縦 | 7ポイント文字 | 4ポイント間隔，8LPI
39 | A5 | 縦 | 7ポイント文字 | 0ポイント間隔，6LPI
40 | A5 | 縦 | 7ポイント文字 | 0ポイント間隔，8LPI
41 | A5 | 横 | 9ポイント文字 | 5ポイント間隔（10CPI），6LPI
42 | A5 | 横 | 9ポイント文字 | 2ポイント間隔（12CPI），6LPI
43 | A5 | 横 | 7ポイント文字 | 5ポイント間隔（12CPI），6LPI
44 | A5 | 横 | 9ポイント文字 | 0ポイント間隔（15CPI），6LPI
45 | A5 | 横 | 7ポイント文字 | 2ポイント間隔（15CPI），8LPI
46 | A5 | 横 | 7ポイント文字 | 4ポイント間隔，8LPI
47 | A5 | 横 | 7ポイント文字 | 0ポイント間隔，6LPI
48 | A5 | 横 | 7ポイント文字 | 0ポイント間隔，8LPI
49 | B5 | 縦 | 9ポイント文字 | 5ポイント間隔（10CPI），6LPI
50 | B5 | 縦 | 9ポイント文字 | 2ポイント間隔（12CPI），6LPI
51 | B5 | 縦 | 7ポイント文字 | 5ポイント間隔（12CPI），6LPI
52 | B5 | 縦 | 9ポイント文字 | 0ポイント間隔（15CPI），6LPI
53 | B5 | 縦 | 7ポイント文字 | 2ポイント間隔（15CPI），8LPI
54 | B5 | 縦 | 7ポイント文字 | 4ポイント間隔，8LPI
55 | B5 | 縦 | 7ポイント文字 | 0ポイント間隔，6LPI
56 | B5 | 縦 | 7ポイント文字 | 0ポイント間隔，8LPI
57 | B5 | 横 | 9ポイント文字 | 5ポイント間隔（10CPI），6LPI
58 | B5 | 横 | 9ポイント文字 | 2ポイント間隔（12CPI），6LPI
59 | B5 | 横 | 7ポイント文字 | 5ポイント間隔（12CPI），6LPI
60 | B5 | 横 | 9ポイント文字 | 0ポイント間隔（15CPI），6LPI
61 | B5 | 横 | 7ポイント文字 | 2ポイント間隔（15CPI），8LPI
62 | B5 | 横 | 7ポイント文字 | 4ポイント間隔，8LPI
63 | B5 | 横 | 7ポイント文字 | 0ポイント間隔，6LPI
64 | B5 | 横 | 7ポイント文字 | 0ポイント間隔，8LPI
65 | A3 | 縦 | 9ポイント文字 | 5ポイント間隔（10CPI），6LPI
66 | A3 | 縦 | 9ポイント文字 | 2ポイント間隔（12CPI），6LPI
67 | A3 | 縦 | 7ポイント文字 | 5ポイント間隔（12CPI），6LPI
68 | A3 | 縦 | 9ポイント文字 | 0ポイント間隔（15CPI），6LPI
69 | A3 | 縦 | 7ポイント文字 | 2ポイント間隔（15CPI），8LPI
70 | A3 | 縦 | 7ポイント文字 | 4ポイント間隔，8LPI
71 | A3 | 縦 | 7ポイント文字 | 0ポイント間隔，6LPI
72 | A3 | 縦 | 7ポイント文字 | 0ポイント間隔，8LPI
73 | A3 | 横 | 9ポイント文字 | 5ポイント間隔（10CPI），6LPI
74 | A3 | 横 | 9ポイント文字 | 2ポイント間隔（12CPI），6LPI
75 | A3 | 横 | 7ポイント文字 | 5ポイント間隔（12CPI），6LPI
76 | A3 | 横 | 9ポイント文字 | 0ポイント間隔（15CPI），6LPI
77 | A3 | 横 | 7ポイント文字 | 2ポイント間隔（15CPI），8LPI
78 | A3 | 横 | 7ポイント文字 | 4ポイント間隔，8LPI
79 | A3 | 横 | 7ポイント文字 | 0ポイント間隔，6LPI
80 | A3 | 横 | 7ポイント文字 | 0ポイント間隔，8LPI

付録B.5　XMAP3で提供しているプログラムパターン

＜この項の構成＞

(1)　帳票のAPパターン

(2)　帳票の部品パターン

(3)　書式のAPパターン

(1)　帳票のAPパターン

帳票のAPのコーディングに利用するプログラムパターンを次の表に示します。

表B-6　帳票のプログラムパターン一覧

パターン名称
（適用言語）
パターンの内容
パターンの使用ケース
使用する定義サンプル

GENREP01
　（COBOL）
　（C言語）
汎用帳票出力プログラムです。1種類の帳票に対応した帳票出力処理をします。

1帳票だけの印刷を想定しています。追加帳票には，部品NXTREP01を利用します。

メニュープログラムを使用したメインメニューから呼ばれることを想定しています。

バッチ業務の帳票出力としても使用できます。

一般の帳票に適用できます。

GENREP02
　（COBOL）
汎用帳票出力プログラムです。1種類の帳票に対応した帳票出力処理には，CALLインタフェースを利用します。

1帳票だけの印刷を想定しています。追加帳票には，同じくCALLインタフェースを使用しているGENREP03を利用します。

メニュープログラムを使用したメインメニューから呼ばれることを想定しています。

バッチ業務の帳票出力としても使用できます。

COBOLのCALLインタフェースを使用して帳票印刷するケースを想定しています。

一般の帳票に適用できます。

GENREP03
　（COBOL）
GENREP02から呼び出されるサブプログラムです。

GENREP02との組み合わせを想定しています。

一般の帳票に適用できます。

(2)　帳票の部品パターン

帳票のAPのコーディングに利用する部品パターンを次の表に示します。

表B-7　帳票の部品パターン一覧

パターン名称
（適用言語）
パターンの内容
パターンの使用ケース
使用する定義サンプル

NXTREP01
　（COBOL）
　（C言語）
帳票出力処理の追加コーディングです。

GENREP01，
DSPPRT01への挿入を想定しています。

一般の帳票に適用できます。

MODATR02
　（COBOL）
　（C言語）
グラフィック帳票で，文字属性やけい線属性を動的に変更する部品です。

GENREP01，
DSPPRT01への挿入を想定しています。

グラフィック帳票に適用できます。

(3)　書式のAPパターン

書式オーバレイのAPのコーディングに利用するプログラムパターンを次の表に示します。

表B-8　書式オーバレイのプログラムパターン

パターン名称
（適用言語）
パターンの内容
パターンの使用ケース
使用する定義サンプル

GENOVL01
　（COBOL）
　（C言語）
汎用書式オーバレイ出力プログラムです。
1種類の書式に対応した書式印刷処理を行います。

1書式だけの印刷を想定しています。

ヘッダ部，明細部，トレイラ部で構成される書式を印刷することを想定しています。なお，ヘッダ処理やトレイラ処理は，必要に応じて削除してください。

バッチ業務の書式出力として使用できます。

一般の書式オーバレイに適用できます。

付録C　日立以外のコンパイラを使用するときの注意

日立COBOL以外の製品を利用して，XMAP3が用意するCALLインタフェースを使用する場合の注意事項を説明します。

＜この節の構成＞

付録C.1　他社COBOLとの仕様比較

付録C.2　 C言語を使用するときの注意

付録C.3　 Visual Basic， Delphi， Accessを使用するときの注意

付録C.1　他社COBOLとの仕様比較

日立COBOLと他社COBOLとの仕様比較について，次の表に示します。サンプルコーディングなどを変更する際に参考にしてください。なお，このマニュアルは日立COBOLを前提に書かれていますので，必要に応じて，置き換えてお読みください。

表C-1　日立COBOLと他社COBOLとの仕様比較

機　　能
日立COBOL
Merant Micro Focus COBOL
富士通 COBOL85

CALL
インタフェース
CALL 関数名
USING ...
CALL
special_name
関数名　USING ...
CALL 関数名
USING ...

USING

一意名

BY VALUE
実数／一意名

一意名

BY VALUE
実数／一意名

一意名

BY VALUE
一意名

領域
定義
日本語定数
N日本語

16進数
X16進定数

数値設定
COMP,COMP-5

数値設定
（C互換）
S9(4)COMP-5(short)
S9(8)COMP-5(long)

その他
の言語
仕様
予約語の
位置
8カラム以降
8カラム以降
12カラム以降

PERFORM文
PERFORM 一意名：
PERFORM 一意名：
PERFORM 一意名：

一意名 SECTION
（有効範囲はENDまで）
：
一意名-END.
一意名 SECTION
（有効範囲はENDまで）
：
一意名-END.
一意名 SECTION
（有効範囲は次のSECTIONまで）

付録C.2　 C言語を使用するときの注意

C言語を使用して，XMAP3で帳票印刷のAPを開発および実行する場合のサポート状況について次の表に示します。

表C-2　Windows 95，Windows 98およびWindows NTの場合

C言語製品名（会社名） | サポート状況
Visual C++　4.X（マイクロソフト社） | △
Visual C++　5.X（マイクロソフト社） | ○
Visual C++　6.X（マイクロソフト社） | ○
Visual C++ .NET（マイクロソフト社） | ○

（凡例）

○：使用できる。

△：実行だけできる。

表C-3　Windows Me，Windows 2000，Windows XP，Windows Server 2003，およびWindows Server 2003 x64の場合

C言語製品名（会社名） | サポート状況
Visual C++　4.X（マイクロソフト社） | △
Visual C++　5.X（マイクロソフト社） | △
Visual C++　6.X（マイクロソフト社） | ○
Visual C++ .NET（マイクロソフト社） | ○

（凡例）

○：使用できる。

△：実行だけできる。

付録C.3　 Visual Basic， Delphi， Accessを使用するときの注意

Visual Basic，DelphiまたはAccessを使用して，XMAP3で帳票印刷のAPを開発および実行する場合に，XMAP3でサポートしているバージョンを次に示します。

Visual Basic
Visual Basic Version 6.0以降

Delphi

Windows 95，またはWindows NT 4.0の場合：Delphi 3.1

Windows 98，Windows Me，またはWindows 2000の場合：Delphi 5

Access

Windows XPの場合：Access 97以降

Windows 95，Windows 98，Windows Me，Windows NT 4.0，およびWindows 2000の場合：Access For Windows 95 Version 7.00以降

付録D　帳票定義と書式定義の制限値

＜この節の構成＞

付録D.1　帳票オブジェクトの制限値

付録D.2　グラフィックデータの使用条件

付録D.3　書式オーバレイの1ページデータ量の制限

付録D.1　帳票オブジェクトの制限値

けい線帳票，プレプリント帳票，網掛け帳票，グラフィック帳票，および書式オーバレイを定義するときの，サイズや個数の制限値およびオブジェクトの配置の規則を次の表に示します。

オブジェクトの個数やサイズの制限値は，381.0mm×279.4mm（15インチ×11インチ）の場合の論理上の値です。性能上の制約やほかのオブジェクトとの組み合わせによって，マップサイズの範囲または書式オーバレイのサイズは，実際にはこの値より小さくなる場合があります。また，「列」の単位は，基準ます目の1列を表します。

表D-1　帳票定義の制限値（共通）

オブジェクト
制限値

マップ
サイズ
物理マップ
32キロバイト※1

論理マップ
32キロバイト※1

書式サイズ
32キロバイト※1

レイアウト
マージン
ハードマージン以上，50mm以内

レイアウト領域
用紙の印字領域に収まる範囲（最大255列×127行）

レイアウトパターン，レイアウト部品の登録
定義対象の種別ごとに32個※²

帳票属性のコメント
文字数：「帳票名」は40文字（半角の場合）。ただし，テスト支援の遷移図に適用されるのは12バイトまでです。
「コメント」は56文字（半角の場合）×4行。ただし，ドキュメンテーション支援の「マップ一覧」と「帳票属性」に適用されるのは1行目だけです。

オブジェクトのコメント
文字数：40文字（半角の場合）。

注※1

制限値は，マップ生成時にチェックされます。

注※2

ただし，レイアウト部品は「連続紙」と「カット紙」の合計で32個です。

表D-2　オブジェクトの配置規則

帳票
配置規則

けい線帳票
オブジェクトを配置する位置はます目に従います。ます目のサイズは帳票属性で指定する基準ます目に従います。
オブジェクトはレイアウト領域に収まるサイズで配置できます。
フレーム，けい線はほかのオブジェクトと重ねて配置できます。そのほかのオブジェクトは重ねられません。

各フィールド系オブジェクトは，上下左右に隣接できます。重なりはできません。

フレームは，けい線や矩形と重ねて配置できます。そのほかのオブジェクトは重ねられません。

けい線・矩形は重ねて配置できます。そのほかのオブジェクトは重ねられません。

横けい線はフィールドと同じ行の上下に配置できます。

プレプリント帳票
オブジェクトを配置する位置は，［表示］－［ます目配置］がオンの場合はます目に従います。オフの場合は自由な位置に配置できます。ます目のサイズは帳票属性で指定する基準ます目に従います。
各オブジェクトはレイアウト領域に収まるサイズで配置できます。
すべてのオブジェクトは重ねて配置できます。

網掛け帳票
オブジェクトを配置する位置はます目に従います。ます目のサイズは帳票属性で指定する基準ます目に従います。
オブジェクトはレイアウト領域に収まるサイズで配置できます。
フレーム，けい線はほかのオブジェクトと重ねて配置できます。そのほかのオブジェクトは重ねられません。

各フィールド系オブジェクトは，上下左右に隣接できます。重ねて配置はできません。

フレームは，けい線や矩形と重ねて配置できます。そのほかのオブジェクトとは重ねられません。

けい線・矩形は重ねて配置できます。そのほかのオブジェクトとは重ねられません。

横けい線はフィールドと同じ行の上下に配置できます。

グラフィック帳票，
書式オーバレイ
オブジェクトを配置する位置は，［表示］－［ます目配置］がオンの場合はます目に従います。オフの場合は自由な位置に配置できます。ます目のサイズは，グラフィック帳票では帳票属性で指定する基準ます目に従います。書式オーバレイでは新規作成ダイアログで選んだパターンに従います。
オブジェクトはレイアウト領域に収まるサイズで配置できます。
すべてのオブジェクトは重ねて配置できます。

表D-3　けい線帳票およびプレプリント帳票定義の制限値

オブジェクト | 制限値
固定／出力フィールド※¹，日付／時刻フィールド，出力OCR※¹など | 総和で2,048個（推奨）
フレーム | 制限なし
けい線，矩形 | 総和で2,000本（推奨）
出力バーコード | 1,024個（推奨）※²

注※1

テキストまたは初期値に全角文字と半角文字を組み合わせて入力する場合，全角文字と半角文字の切り替え回数は最大で31回です。

注※2

最小サイズについては，「4.2.9　バーコードの設計」を参照してください。

表D-4　網掛け帳票定義の制限値

オブジェクト | 制限値
固定／出力フィールドなど | 総和で2,048個（推奨）
フレーム | 制限なし
けい線，矩形 | 総和で2,000本（推奨）
網掛け | 1,000個（推奨）

表D-5　グラフィック帳票定義の制限値

オブジェクト
制限値

固定／出力フィールド※¹，日付／時刻フィールド，出力OCR※¹など
総和で2,048個（推奨）

フレーム
制限なし

けい線，矩形，円，円弧，デリミタ線
総和で2,000本（推奨）

固定／出力／連結出力バーコード
総和で1,024個（推奨）※²

固定／出力グラフィック
それぞれ127個。
サイズ：固定グラフィックは31KB／1オブジェクト。出力グラフィックは100KB／1オブジェクト（推奨）。
形式：ビットマップ（.bmp），メタファイル（.wmf），拡張メタファイル（.emf），JPEGファイル（.jpg，.jpeg）※³

網掛け
1,000個（推奨）

注※1

テキストまたは初期値に全角文字と半角文字を組み合わせて入力する場合，全角文字と半角文字の切り替え回数は最大で31回です。

注※2

最小サイズについては，「4.2.9　バーコードの設計」を参照してください。

注※3

使用できる画像形式は，JFIF準拠 ベースライン形式（基本DCT方式のJFIF01-01，およびJFIF01-02）だけです。

表D-6　書式オーバレイ定義の制限値

オブジェクト
制限値

固定フィールド※¹など
総和で1,024個（推奨）

けい線，矩形，円，円弧
総和で2,000本（推奨）

固定グラフィック
それぞれ127個。
サイズ：固定グラフィックは31KB／1オブジェクト。出力グラフィックは100KB／1オブジェクト（推奨）。
形式：ビットマップ（.bmp），メタファイル（.wmf），拡張メタファイル（.emf），JPEGファイル（.jpg，.jpeg）※²

網掛け
1,000個（推奨）

注※1

テキストまたは初期値に全角文字と半角文字を組み合わせて入力する場合，全角文字と半角文字の切り替え回数は最大で31回です。

注※2

使用できる画像形式は，JFIF準拠 ベースライン形式（基本DCT方式のJFIF01-01，およびJFIF01-02）だけです。

付録D.2　グラフィックデータの使用条件

XMAP3で利用できるグラフィックデータは，ビットマップファイル（.bmp），メタファイル（.wmf），拡張メタファイル（.emf），およびJPEGファイル（.jpg，.jpeg）です。ビットマップは，ラスタ形式でデータを保持するため，拡大または縮小すると表示が見えにくくなります。したがって，使用するデータの大きさを考慮してから作成してください。

また，帳票でのビットマップ印刷は，解像度の違いから，画面での表示と印刷時では見かけ上の大きさが異なる場合があります。したがって，テスト印刷で表示結果を確認し，ビットマップの大きさを調整してください。XMAP3では，ビットマップデータを240dpi相当として処理します。

なお，ビットマップには，圧縮形式（RLE形式）は使用できません。また，JPEGには，JFIF準拠 ベースライン形式（基本DCT方式のJFIF01-01，およびJFIF01-02）だけ読み込めます。

＜この項の構成＞

(1)　使用できる色

(2)　使用できる条件

(1)　使用できる色

帳票で使用するグラフィックデータの色は次のとおりです。ただし，プリンタドライバがそれぞれの色数を表現できることが前提となります。

2色（1ビットモノクロ）

16色（4ビット）

256色（8ビット）

約1,600万色（24ビット TrueColor）

注意

8ビットカラー以上は，プリンタドライバおよびPCの，性能またはメモリ容量によって，著しく実行性能が低下する場合があります。なるべく使用する色を抑え，事前に減色しておいてください。

(2)　使用できる条件

使用できる条件として，印刷モードとの関係，およびGDIとPDFファイル出力で印刷できる組み合わせを示します。

印刷モードとの関係

印刷対象 | カラー | モノクロ
GDI | PDLスルー | PDFファイル出力 | GDI | PDLスルー | PDFファイル出力
グラフィック帳票 | ○ | × | ○ | ○ | ○ | ○
書式オーバレイ | ○ | × | ○ | ○ | ○ | ○

（凡例）

○：使用できる。

×：使用できない。

GDI，PDFファイル出力で印刷できる組み合わせ

グラフィックデータ | プリンタのサポート
モノクロ | カラー16色 | カラー256色以上
モノクロ | ○ | ○ | ○
カラー16色 | △ | ○ | ○
カラー256色以上 | △ | △ | ○

（凡例）

○：使用できる。

△：ドライバが減色する。

カラーのビットマップをモノクロのプリンタで印刷しようとした場合，ハードウェアに依存した形で印刷します。そのため，意図したとおりの印刷結果にならないことがあります。したがって，カラーのビットマップは，ユーザが印刷したい内容のモノクロに変換してから使用してください。カラー用のビットマップをモノクロ用に変換するには，市販のツールが持っている減色機能を使用します。

付録D.3　書式オーバレイの1ページデータ量の制限

書式オーバレイの1ページのデータ量の制限を次に示します。

＜この項の構成＞

(1)　使用言語がCOBOLの場合

(2)　使用言語がC言語の場合

(1)　使用言語がCOBOLの場合

概算式で使用する用語について説明します。

全角／半角切り替わり回数

WRITE文で出力する行データ項目ごとに，半角文字から全角文字に切り替わる回数，および全角文字から半角文字に切り替わる回数を数えます。このとき，全角空白は半角空白2バイトに置き換えて数えます。

例えば，行データが「123あい　う」の場合，「3」のあと，「い」のあとおよび，「う」の前で切り替わりが発生するので，切り替わり回数は3回となります。

文字サイズ／字間値／書体／横倍の切り替わり回数

POINT／INTERVAL／FORMAT／WIDE の属性ごとに属性の切り替わり回数を数えます。属性値が同じ値の場合は，切り替わりが発生しません。属性の指定が省略されている場合は，デフォルト（ドローの書式定義で指定した値）に切り替わるものとして数えます。

例えば，次に示す例の場合，文字サイズ切り替わり回数は2回，字間値切り替わり回数は2回となります。

(a)　「WRITE 行データFROM データ1」形式の処理で，CHARACTER TYPE句指定なしの場合

COBOL記述例

処理部

概算式

1ページデータ量の上限

印刷ドキュメント名を指定していない場合
32767≧行データの和※＋62

印刷ドキュメント名を指定している場合
32767≧行データの和※＋ 印刷ドキュメント名の長さ ＋ 70

注※

行データの和＝｛行データの領域長＋（データ中の平均全角／半角切り替わり回数×2）＋10｝×行数

(b)　「WRITE 行データFROM データ1」形式の処理で，データ1にCHARACTER TYPE句指定ありの場合

COBOL記述例

定義部

処理部

概算式

1ページデータ量の上限

印刷ドキュメント名を指定していない場合
32767≧行データの和※＋62

印刷ドキュメント名を指定している場合
32767≧行データの和※＋ 印刷ドキュメント名の長さ ＋ 70

注※

行データの和＝｛データ1の各項目の長さの和

＋（データ1の各項目内での平均全角／半角切り替わり回数の和×2）

＋（データ1の各項目への平均文字サイズ切り替わり回数の和×3）

＋（データ1の各項目への平均字間値切り替わり回数の和×3）

＋（データ1の各項目への平均書体切り替わり回数の和×3）

＋（データ1の各項目への平均横倍切り替わり回数の和×4）

＋（データ1の項目の数×2）

＋8｝×行数

(c)　「WRITE 行データ」形式の処理で，CHARACTER TYPE句指定なしの場合

COBOL記述例

定義部

処理部

概算式

1ページデータ量の上限

印刷ドキュメント名を指定していない場合
32767≧行データの和※＋62

印刷ドキュメント名を指定している場合
32767≧行データの和※＋ 印刷ドキュメント名の長さ ＋ 70

注※

行データの和＝｛行データの領域長＋（データ中の平均全角／半角切り替わり回数×2）＋10｝×行数

(d)　「WRITE 行データ」形式の処理で，CHARACTER TYPE句指定ありの場合

COBOL記述例

定義部

処理部

概算式

1ページデータ量の上限

印刷ドキュメント名を指定していない場合
32767≧行データの和※＋62

印刷ドキュメント名を指定している場合
32767≧行データの和※＋ 印刷ドキュメント名の長さ ＋ 70

注※

行データの和＝｛行データの各項目の長さの和

＋（行データの各項目内での平均全角／半角切り替わり回数の和×2）

＋（行データの各項目への平均文字サイズ指定回数の和×3）

＋（行データの各項目への平均字間値切り替わり回数の和×3）

＋（行データの各項目への平均書体切り替わり回数の和×3）

＋（行データの各項目への平均横倍切り替わり回数の和×4）

＋（行データの項目の数×2）

＋8｝×行数

(2)　使用言語がC言語の場合

概算式で使用する用語について説明します。

全角／半角切り替わり回数

jstqldat関数，またはXmapFrmSetData関数で指定する項目データごとに，半角文字から全角文字に切り替わる回数，および全角文字から半角文字に切り替わる回数を数えます。このとき，全角空白は半角空白2バイトに置き換えて数えます。

jstqllpt関数，またはXmapFrmSetLine関数を発行するまでを一つの行データと考えます。

例えば，行データが「123あい　う」の場合，「3」の後ろ，「い」の後ろ，「う」の前で切り替わりが発生するので，切り替わり回数は3回となります。

文字サイズ／字間値／書体／横倍の切り替わり回数

jstqlctp関数，XmapFrmSetPoint関数，XmapFrmSetInterval関数，XmapFrmSetFont関数，またはXmapFrmSetWidth関数で指定した属性の数をそれぞれ数えます。

概算式

1ページデータ量の上限

印刷ドキュメント名を指定していない場合
32767≧行データの和※＋62

印刷ドキュメント名を指定している場合
32767≧行データの和※＋ 印刷ドキュメント名の長さ ＋ 70

注※

行データの和＝｛行データの各項目データの長さの和

＋（行データの各項目データ内での平均全角／半角切り替わり回数の和

　　　　　　　　　　　　　　　　　　　　　　　　　　　　　 ×2）

＋（行データの各項目データへの平均文字サイズ指定回数の和×3）

＋（行データの各項目データへの平均字間値指定回数の和×3）

＋（行データの各項目データへの平均書体指定回数の和×3）

＋（行データの各項目データへの平均横倍指定回数の和×4）

＋（行データの各項目データ内での平均項目データ数×2）

＋8｝×行数

付録E　リターンコードの詳細

＜この節の構成＞

付録E.1　リターンコード

付録E.1　リターンコード

マッピングライブラリのリターンコードを次の表に示します。

「リターンコード詳細」の16進で表現しているコードは，日立COBOLの画面に表示されるエラーコードに対応しています。これらのコードは，日立COBOLのテストデバッガなどでメモリ中のリターンコードを直接参照する場合，1バイト目と2バイト目が逆に表示されるので，注意してください。次の表中で使用する記号の意味を次に示します。

（S）システムの処理

（P）プログラマの処理

なお，次の表のリターンコード詳細に示すエラーコードが，20480～20516（16進数では(5000)₁₆～(5024)₁₆）の場合，すでにオープン状態であっても強制的にクローズ要求されたものとして処理します。

クローズ処理によって帳票が出力され，そのあとの要求が24577エラー（16進数では(6001)₁₆エラー）となる場合がありますので，エラー原因を解決して再度アプリケーションを起動してください。

表E-1　マッピングライブラリのリターンコード

リターン
コード詳細
内容
リターン
コード

1036
(040C)₁₆
定義している予約項目名が，OpenTP1で提供している予約項目名と一致していない。

（S）処理を続行する。

（P）予約項目に定義している予約項目名をOpenTP1で提供している予約項目名と一致させ，物理マップを再作成して，アプリケーションを再実行する。

4

3072
(0C00)₁₆
物理マップの内容が破壊されている。
原因として次のことが考えられる。

定義対象（デバイス）と物理マップが一致していない。例えば，プリンタで印刷するときに，APで指定したマップがディスプレイ用である。

物理マップファイルが破壊されている。

（S）処理を終了する。

（P）物理マップを再作成して，アプリケーションを再実行する。

8

3104
(0C20)₁₆
実行環境のXMAP3より上位のバージョンで作成した物理マップが使用された。

（S）処理を終了する。

（P）実行環境のXMAP3のバージョンを，物理マップを作成したXMAP3と同じバージョンにして，APを再実行する。

8

4104
(1008)₁₆
何らかの原因でデータ化けが発生したことによって，物理マップ中の作成管理情報が破壊されている。

（S）処理を終了する。

（P）物理マップを再作成して，アプリケーションを再実行する。

8

5120
(1400)₁₆
指定した物理マップが見つからない。または，APで指定した仮想端末と指定した物理マップのデバイス種別が一致しない。

（S）処理を終了する。

（P）

・表示・印刷セットアップの「アプリケーション1」タブの「マップ」で指定しているフォルダまたはAPを実行したカレントフォルダに，指定した物理マップ（拡張子はpmp）があることを確認し，APを再実行する。

・APで指定した仮想端末名（例えばPRT001）に対して，物理マップのデバイス種別（例えばデバイスIDが6A／6B／6G／6H）が合っているか確認し，APを修正後，再実行する。

8

5124
(1404)₁₆
物理マップのロード処理中に入出力エラーが発生した。

（S）処理を終了する。

（P）物理マップを再作成して，アプリケーションを再実行する。

8

16388
(4004)₁₆
マッピング処理プログラムの実行環境が不正なため，エラーが発生した。原因としては，次のことが考えられる。

インストールが正しくされていない。

XMAP3外字機能がインストールされている環境で，コード変換SDK，コード変換ランタイム，日立コード変換 - Server Runtime，または日立コード変換 - Client Runtimeがインストールされていない。

（S）処理を終了する。

（P）・再インストールを行う。

・実行環境に必要なPPのインストールをする。

8

16400
(4010)₁₆
何らかの原因でデータ化けが発生したことによって，物理マップ中のサイズ管理情報が破損している。

（S）処理を終了する。

（P）物理マップを再作成して，APを再実行する。

8

16428
(402C)₁₆
同時に動作しているほかのアプリケーションなどの関係，またはリソースの物理的不足によって，実行支援に必要なメモリが不足した。

（S）処理を終了する。

（P）・ほかのアプリケーションを終了するか，PCを再起動する。

・PC上のリソースの見直し，スワップ領域の見直しおよびメモリの増設などをする。

8

16436
(4034)₁₆
仮想端末と物理マップのデバイス種別が一致していない。
原因としては，次のことが考えられる。

帳票用の仮想端末に画面用の物理マップを指定した。

物理マップのマップ名称をエクスプローラなどで変更した。

物理マップが壊れている。

XMAP3インストールフォルダ下のETCフォルダのX3MWCONFファイルがない，または空ファイルになっている。

（S）処理を終了する。

（P）

・APで指定している仮想端末と物理マップのデバイス種別が一致することを確認し，再コンパイル・再実行する。

・物理マップを再作成して，APを再実行する。

・X3MWCONFファイルがないまたは空ファイルの場合は，アンインストール後に再インストールする。

8

20480
(5000)₁₆
XMAP3の定義ファイルの内容とC/Sシステム環境での通信関係の設定が不正である。

（P）OSでのネットワーク構成との不整合が生じたことによる障害が考えられる。サーバ，クライアントおよびOSをすべて終了し，再起動する。

8

20484
(5004)₁₆
同時に動作しているほかのアプリケーションなどの関係，またはリソースの物理的不足によって，印刷サービスの実行時に必要なメモリが不足した。

（P）・ほかのアプリケーションを終了するか，PCを再起動する。

・PC上のリソースを見直し，メモリの増設などを行う。

8

20485
(5005)₁₆
C/Sシステム環境での通信処理で，回復不能エラーが発生した。同時に動作しているほかのアプリケーションなどの関係で，PC上のリソース（主にメモリ）が不足したことが考えられる。また，LANの回線上で障害，データ化けが発生したことが考えられる。

（P）ほかのアプリケーションを終了するか，PCを再起動する。

8

20487
(5007)₁₆
何らかの原因でデータ化けが発生したことによって，物理マップ中のバージョン情報が破壊されている。

（P）物理マップを再作成して，アプリケーションを再実行する。

8

20489
(5009)₁₆
プリンタが利用できない，プリンタ／サービス名が定義されていない，またはXMAP3内部処理で何らかの異常が発生したことによって，印刷サービスのプログラムが停止した。

（P）

・Windows上でプリンタが使用できるか確認し，プリンタの障害を取り除いてから再実行する。

・表示・印刷セットアップで指定したプリンタ名が正しいか確認し，再実行する。

・ほかのアプリケーションがプリンタを使用していないかを確認し，アプリケーションを終了して再実行する。

・システム的な要因が原因である（システムリソースの異常・ほかのアプリケーションでの異常）ことが考えられる。PCを再起動・再実行する。

8

20493
(500D)₁₆
XMAP3内部処理で何らかの異常が発生したため，サーバ内のプログラムに論理矛盾が起きた。

（P）システム的な要因が原因である（システムリソースの異常・ほかのアプリケーションでの異常）ことが考えられる。PCを再起動・再実行する。

8

20505
(5019)₁₆
別プログラムでプリンタを使用中のため，印刷できなかった。または，スタンドアロン印刷で，同時に複数のプリンタオープンをした。

（P）プリンタが使用されていないことを確認し，再度印刷要求をする。スタンドアロン印刷の場合に複数のプリンタオープンをしている場合には，同時に複数のプリンタオープンをしないようにアプリケーションを変更する。

8

20507
(501B)₁₆
用紙切れ，電源OFFなどのプリンタ障害，Windows上で印刷に必要なサービスが停止するなどの障害が発生した。

（P）プリンタ，およびWindows上の印刷障害を取り除いてから，再度印刷要求を行う。

8

20508
(501C)₁₆
TCP/IPによる通信処理で何らかの障害が発生した。または，インストールの失敗によって，印刷に必要なモジュールが格納されてない。

（P）

・1回も動作していない場合は，TCP/IP関連の設定環境を見直す。動作中に発生した場合は，相手WS・PCの状態を確認し，APを再実行する。

・既存のモジュールをアンインストールし，再度インストールをする。

8

20514
(5022)₁₆
印刷サービスが利用できない。

1台のプリンタの構成の場合，出力先プリンタを「通常使うプリンタ」に設定していない。

複数台の構成の場合，表示・印刷セットアップで設定したプリンタデバイス名と，仮想端末名ファイル中のプリンタ仮想端末のサービス名称が一致していない。

出力する仮想端末のPCが起動していないため，XMAP3が動作していない。

出力する仮想端末関連の定義が不正なため，XMAP3の表示・印刷サービスが起動されていない。

仮想端末名ファイルと表示・印刷セットアップの定義情報が不一致。

サービス名ファイルと，表示・印刷セットアップの定義情報が不一致。

（P）・出力先プリンタを「通常使うプリンタ」に設定する。

・表示・印刷セットアップで定義したプリンタデバイス名称と仮想端末名ファイル中のサービス名称を一致させる。

・出力先のPCを起動する。

・C/Sセットアップを実行し，表示・印刷セットアップでAPから指定している仮想端末名のサービス名称を一致させてから，APを再実行する。

8

20515
(5023)₁₆
C/Sシステム環境の場合，印刷サービスが存在する環境のXMAP3と，APが動作している環境のXMAP3のバージョンが不整合である。

（P）それぞれインストールされているXMAP3のバージョンを確認し，整合性のあるバージョンになるようにインストールし直す。基本的にXMAP3間では同一バージョンを利用する。また，WSとのC/Sシステム構成の場合，前提となるWS側のバージョンはReadmeを参照する。

8

20516
(5024)₁₆
XMAP3の出力処理中に，WindowsまたはXMAP3の内部で回復不能なエラーが発生した。
（P）システム的な要因が原因である（システムリソース不足，プリントマネージャの異常検知など）ことが考えられる。PCを再起動し，再実行する。または，印刷処理の場合は，出力プリンタを確認し，再実行する。
8

24576
(6000)₁₆
jsvwadrv関数を実行時，指定したパラメタが不正である（誤った論理マップ名称の指定など）。

（S）処理を終了する。

（P）AP中のjsvwadrv関数を発行している処理で指定したパラメタが正しいかを見直し，再コンパイル後，再実行する。

8

24577
(6001)₁₆
jsvwadrv関数の発行順序が不正である（OPEN要求を行わずにほかの要求を行った）。

（S）処理を終了する。

（P）AP中の jsvwadrv関数を発行している処理で発行順序が正しいかを見直し，再コンパイル後，再実行する。

8

24578
(6002)₁₆
仮想端末名ファイルの内容に下記の不正がある。

APで設定している仮想端末名称が定義されていない。

1行の終わりに改行が設定されていない。

1行が511バイトを超えている。

ファイルサイズが32,767バイトを超えている。

下記の各パラメタが形式外
仮想端末名：8文字以内，先頭は英字，英数字を使用
デバイス：指定できる文字は固定
サーバホスト名称：32文字以内
サーバサービス番号：5文字以内，数字を使用，1024～65535の範囲
サービス名称：40文字以内，半角文字を使用
環境定義ファイル名称：64文字以内

（S）処理を終了する。

（P）APで設定した仮想端末名を見直す。または仮想端末定義ファイルの設定内容を見直し，再実行する。

8

24579
(6003)₁₆
ファイルシステム容量不足や，何らかの原因によって，ログファイルのアクセス中にエラーが発生した。

（S）処理を終了する。

（P）・ほかのアプリケーションを終了するか，PCを再起動する。

・ログファイルを出力するために指定したフォルダが書き込み可能であるかを確認する。

8

24580
(6004)₁₆
仮想端末名ファイルのオープン処理または物理マップロード中に必要なメモリが不足した。

（S）処理を終了する。

（P）ほかのアプリケーションを終了するか，PCを再起動する。

8

24581
(6005)₁₆
仮想端末名ファイルをアクセス中に入出力エラーが発生した。

（S）処理を終了する。

（P）・仮想端末名ファイルが読めるかを確認し，再実行する。

・読めない場合は，アンインストール後に再インストールする。

8

書式オーバレイ印刷で使用する関数のリターンコードとエラー詳細コードを次の表に示します。

表中の記号（P）は，プログラマの処置を意味します。

表E-2　関数のリターンコードとエラー詳細コード

関数名称
リターンコード
（lcomrc）
エラー詳細コード（lcomerr）
要因および対処

エラー詳細
値

jstqlopn
　8
JSTQ_MAPSVNAME
268435458
(10000002)₁₆
入出力制御関連エラー：指定されたサービス名称が未登録である，または対応する印刷サービスが動作していない。
（P）サービス名称を確認して再実行する。

　8
JSTQ_MAPSRVOFF
268435489
(10000003)₁₆
入出力制御関連エラー：印刷サービスが起動されていない。
（P）サービス名称を確認して再実行する。

jstqlpag
jstqlopn
　8
JSTQ_NOPMOD
65538
(00010002)₁₆
行制御データファイルがない。
（P）・指定したフォルダに行制御データファイルを格納する。
・環境変数XMAP3_FMPを指定している場合，環境変数に指定した名称と同じ行制御データファイルが存在するかを確認する。

　8
JSTQ_PMODERR
65539
(00010003)₁₆
行制御データファイルが不正である。
（P）正しい行制御データファイルを指定する。

　8
JSTQ_IOERRP
65540
(00010004)₁₆
I/Oエラーが発生した。
（P）ディスクおよび行制御データファイルの状態を調査する。

jstqldat
jstqlctp
　8
JSTQ_LDATL
16777221
(01000005)₁₆
指定できる行データの長さが制限を超えた。
（P）行送りなどを指定して，1行当たりのデータを少なくして再実行する。

JSTQ_HDATL
1048581
(00100005)₁₆

jstqlctp
　8
JSTQ_CVALERR
16777220
(01000004)₁₆
文字列制御情報の指定が不正である。
（P）文字サイズ，文字の間隔などの指定を確かめる。

各関数
共通
　8
JSTQ_PARMH
1048577
(00100001)₁₆
パラメタエラーが発生した。
（P）パラメタを確認して再実行する。

JSTQ_PARML
16777217
(01000001)₁₆

　8
JSTQ_LOGERR
1048578
(00100002)₁₆
ログファイルのアクセス中にエラーが発生した。
（P）ディスクおよびログファイルの状態を調査する。

　8
JSTQ_HDOFNOAR
1048579
(00100003)₁₆
エリアの確保時にメモリ不足が発生した。
（P）ほかの処理を終了させ，メモリを空けて再実行する。

JSTQ_LDOFNOAR
16777219
(01000003)₁₆

　8
JSTQ_ABNDPMOD
65541
(00010005)₁₆
ページ制御でエラーを検出した。
（P）ログファイルを出力して原因を調査する。

　8
JSTQ_NOFORM
65542
(00010006)₁₆
書式が存在しない。
（P）AP環境ファイルで指定したフォルダに書式を作成する。

　8
JSTQ_HNOPN
1048582
(00100006)₁₆
書式機能がオープンされていない。
（P）関数の呼び出し順序を確認する。

JSTQ_LNOPN
16777222
(01000006)₁₆

　8
JSTQ_FORMVERR
1048583
(00100007)₁₆
実行環境のXMAP3より上位のバージョンで作成された書式マップは使用できない。
（S）処理を終了する。
（P）実行環境のXMAP3バージョンを，書式マップの作成時に使用したXMAP3と同じバージョンにし，アプリケーションを再実行する。

　8
JSTQ_PMODVERR
65543
(00010007)₁₆
実行環境のXMAP3より上位のバージョンで作成された行制御データファイルは使用できない。
（S）処理を終了する。
（P）実行環境のXMAP3バージョンを，行制御データファイルの作成時に使用したXMAP3と同じバージョンにし，アプリケーションを再実行する。

　8
JSTQ_MAPNOAR
268435460
(10000004)₁₆
入出力制御関連エラー：エリア確保時にメモリ不足が発生した。
（P）ほかの処理を終了させ，メモリを空けて再実行する。

　8
JSTQ_MAPERR
268435461
(10000005)₁₆
入出力制御関連エラー：サービス名称がない，または入出力制御内で論理矛盾などが発生した。
（P）・表示・印刷セットアップで指定したプリンタ名が正しいか確認し，再実行する。
・ログファイルを出力して原因を調査する。

　8
JSTQ_MAPIERR
268435462
(10000006)₁₆
入出力制御関連エラー：プリンタがほかで使用中のため，排他エラーが発生した。または，スタンドアロン印刷の場合，同時に複数のプリンタオープンを行った。
（P）プリンタの状態を確認して再実行する。スタンドアロン印刷の場合に複数のプリンタオープンを行っている場合には，同時に複数のプリンタオープンを行わないようにアプリケーションを変更する。

　8
JSTQ_MAPERPR
268435466
(1000000A)₁₆
入出力制御関連エラー：プリンタで障害が発生した。
（P）プリンタの状態を確認して障害を回復後，再実行する。

　8
JSTQ_MAPSYSC
268435467
(1000000B)₁₆
入出力制御関連エラー：システムコールエラーが発生した。
（P）ログファイルを出力して原因を調査する。

　8
JSTQ_MAPDOWN
268435468
(1000000C)₁₆
入出力制御関連エラー：サービス名称がない，または通信路が切断された。
（P）・表示・印刷セットアップで指定したプリンタ名が正しいか確認し，再実行する。
・印刷サービスを起動し直して再実行する。

COBOLアプリケーションでWRITE文を使用する場合に出力される，COBOLメッセージとXMAP3のエラーコードの対応を次の表に示します。次の表から対応するエラーコードの要因と対処方法を確認してください。

なお，KBTQ523-Eが出力された場合，KBTQ523-Eのエラー出力より前に，ほかのエラーが発生していないかどうかを確認してください。

表E-3　COBOLメッセージとXMAP3のエラーコードの対応表

COBOLメッセージ
XMAP3エラーコード

KBTQ501-E
フィールド制御情報が不正です
(01000004)₁₆

KBTQ502-E
1行内のデータが多すぎます
(01000005)₁₆

KBTQ503-E
パラメタ不正　
(01000001)₁₆
(00100001)₁₆

KBTQ504-E
ログファイルアクセスエラー　
(00100002)₁₆

KBTQ505-E
メモリ不足が発生しました
(01000003)₁₆
(00100003)₁₆

KBTQ506-E
ページ制御でエラーが発生しました
（エラーコード,エラー詳細コード）
(00010005)₁₆

KBTQ508-E
行配置情報が存在しません
(00010002)₁₆

KBTQ509-E
行配置情報が不正です
(00010003)₁₆

KBTQ510-E
I/Oエラーが発生しました
(00010004)₁₆

KBTQ513-E
入出力制御サーバが起動されていません
(10000003)₁₆

KBTQ514-E
入出力制御でメモリ不足が発生しました
(10000004)₁₆

KBTQ515-E
入出力制御でエラーが発生しました
（エラーコード,エラー詳細コード）
(10000005)₁₆

KBTQ516-E
指定されたプリンタは使用できません
(10000006)₁₆

KBTQ520-E
プリンタに障害が発生しました
(1000000A)₁₆

KBTQ521-E
入出力制御との通信路が切断されました
(1000000C)₁₆

KBTQ522-E
入出力制御でシステムコールエラーが発生しました
(1000000B)₁₆

KBTQ523-E
書式機能がオープンされていません
(01000006)₁₆

KBTQ524-E
書式が存在しません
(00010006)₁₆

KBTQ526-E
上位のバージョンで作成された書式マップは使用できません
(00100007)₁₆

KBTQ527-E
上位のバージョンで作成された行制御データファイルは使用できません
（行制御データファイルVR：xx-xx-xx）
(00010007)₁₆

付録F　OCR文字コード

＜この節の構成＞

付録F.1　XMAP3で規定しているOCR文字コード表

付録F.2　OCRを使用するときの注意

付録F.1　XMAP3で規定しているOCR文字コード表

OCRフィールドに定義できる文字を次に示します。

付録F.2　OCRを使用するときの注意

帳票でOCRを使用するときの注意事項を次に示します。

＜この項の構成＞

(1)　メインフレームと連携して使用するとき

(2)　OCRリーダを使用するとき

(1)　メインフレームと連携して使用するとき

PC／WSではシフトJISコード，メインフレームではEBCDIKコード（かたかなあり，英小文字なし）またはEBCDICコード（かたかななし，英小文字あり）を使用しています。XMAP3では，メインフレームの文字コードとして英小文字を拡張したEBCDIKコードを使用しています。このため，メインフレームとの連携でかたかなと英小文字を混在させる場合，文字化けが発生するので注意が必要です。メインフレームと連携して文字コードを使用する場合は，マニュアル「XMAP3 メインフレーム連携ガイド」を参照してください。

(2)　OCRリーダを使用するとき

OCRリーダを使用するときの注意事項を次に示します。運用前には，印字および読み取りを確認し，システム運用に支障がないことを確認してから使用してください。

入力したOCR文字を異なる文字として認識する
OCRリーダによっては，入力したOCR文字を異なる文字として認識する場合があります。

OCR文字を誤って認識する
OCR文字に英文字とかたかなを混在させた場合，およびOCRにカラー文字を設定している場合は，OCRリーダによっては，OCR文字を読み取るときに誤って認識することがあります。

OCR文字の読み取りができない
OCRリーダによっては，次に示すOCR文字の読み取りができない場合があります。ただし，印刷はできます。

また，OCRにカラー文字を設定しているときは，読み取りできないことがあります。

付録G　用語解説

（英字）

AP（Application Program）

画面・帳票に入出力する業務プログラムです。

API（Application Programming Interface）

帳票の出力時に使用するAPとXMAP3のプログラムインタフェースです。

APが渡す項目

出力論理マップのデータ項目で，APが渡すデータ（AP実行時に毎回変更する内容）を格納します。

AP環境ファイル（X3MWDRV）

マッピングライブラリ実行時の各種情報を取得するための設定ファイルです。このファイルの内容は，表示・印刷セットアップやロギング支援のプロパティで設定します。

ログの取得，物理マップのロードパス，物理マップの常駐サイズを指定します。デバッグやチューニングのときに必要に応じて設定します。

場所と名前 ： XMAP3インストール先¥Etc¥X3mwdrv

APパターン・AP部品

APの定型的な型としてXMAP3が提供しているCOBOL用のパターンです。APパターンは，プログラムの標準的な骨組みです。AP部品は，処理の手続きです。

これらを組み合わせて利用すると，APを効率良く作成でき，定型的なコーディングの統一も図れます。

格納場所 ： XMAP3インストール先¥Patterns¥Cobol（またはC）

C/Sシステム（Client/Server System）

サーバとクライアントで処理を分散する業務形態です。また，一つの処理をネットワーク上のサーバとクライアントで分担する機器構成モデル，または処理方式です。XMAP3のC/Sシステム構成では，PC（Windows 95，Windows 98，Windows Me，Windows NT 4.0，Windows 2000，Windows XP，Windows Server 2003，Windows Server 2003 x64）のほかにWSをサーバにすることもできます。

CD項

XMAP3で帳票の出力をするためにCOBOLプログラム中にコーディングする論理端末定義ブロックです。物理マップ名称や端末名称などを指定します。

CPI（Character Per Inch）

文字間隔の単位で，25.4mm（1インチ）当たり何文字印字できるかを表します。

CSVファイル（Comma Separated Values）

リレーショナルデータベースで扱えるテキストデータを格納するファイルです。データの区切りをコンマ（，）や改行で表します。

XMAP3では，ドキュメンテーション支援で，各種情報をCSVファイルに出力できます。

ESC/Pスルーモード

シリアルプリンタ固有の印刷モードです。エプソン社のインパクト型ドットプリンタが該当します。

EUC（Extended UNIX Code）

ターゲットが「AIX」，「Linux」，「Solaris」の場合に使用する文字コードです。

GDI（Graphical Device Interface）

Windowsモードのプリンタドライバを使用して印刷することをいいます。Windows用のプリンタドライバが提供されていれば，このモードで印刷できます。GDI対応のプリンタをWindows対応プリンタといいます。

→Windows対応プリンタ

LIPS（LBP Image Processing System）スルーモード

ページプリンタ固有の印刷モードです。キヤノン社のページプリンタが該当します。LIPSには，LIPS II＋，LIPS IIIなどがあります。

LPI（Line Per Inch）

行の間隔の単位で，25.4mm（1インチ）当たり何行印字できるかを表します。XMAP3で「ます目の設定」を「自由な設定」にした場合，3，4，6，8，10，12LPIの中から選べます。

OCR（Optical Character Recognition）

出力OCR用の文字でデータを印字するオブジェクトです。データはAPから指定し，論理マップを介して帳票に印字します。字間値は10CPI相当が標準です。

OLTP（Online Transaction Processing）

オンライントランザクション処理のことで，OpenTP1で実現します。OpenTP1を使用すると，クライアントアプリケーション型のOLTPシステムを構築できます。OpenTP1（TP1/MCF）と連携し，XMAP3をサーバとして使うシステム形態を，OLTPサーバ構成といいます。

PDF（Portable Document Format）

Adobe Acrobatが扱う文書のファイル形式で，特定のプラットフォームに依存しないで文書を表示できます。XMAP3では，ページプリンタ用帳票をPDFファイルに出力できます。

PDL（Page Description Language）スルーモード

ページ記述言語によって，プリンタドライバを使用しない（スルーレス）で印刷することをいいます。プリンタ制御言語の一つで，LIPSやESC/P対応の印刷モードです。LIPSは主にページプリンタ専用の印刷モードです。ESC/Pは主にシリアルプリンタ専用のモードになります。

SEND

画面や帳票を出力するときに使用する日立COBOLの命令語です。

Windows対応プリンタ

Windows用にプリンタドライバが提供されているプリンタです。XMAP3では，GDIモードで印刷するときの対象となるプリンタをWindows対応プリンタと呼びます。

（ア行）

網掛け帳票

240dpi／300dpiのページプリンタ用の帳票です。各種の文字サイズ，けい線，網掛けなどが使えます。

印刷拡張セットアップ

印刷実行時に有効となるプリンタ給紙トレイの設定や，帳票中に指定された標準／明朝／ゴシックの書体に対する出力時のフォントを，それぞれ任意のフォントに変更できる機能です。

設定内容は，プリンタ構成ファイル（X3PPINF）のオプションとして保存されます。

印刷拡張セットアップを使用するには，XMAP3 印刷拡張機能をインストールする必要があります。

印刷サービス名を指定する環境変数

出力先の印刷サービス名を指定します。COBOLの環境変数として指定する場合，「CBLX_外部装置名」で設定します。Windows NT 4.0，Windows 2000，Windows XP，Windows Server 2003，またはWindows Server 2003 x64の場合，XMAP3の環境変数「XMAP3_PSNAME」で印刷サービス名を設定します。ただし，COBOLの環境変数，またはCOBOLのAPでの指定がある場合は，XMAP3の環境変数での指定は無効となります。

印刷ドキュメント名

帳票印刷時，Windowsのプリンタスプールに登録されるXMAP3の印刷データのドキュメント名です。印刷ドキュメント名は帳票属性または書式属性として指定できます。また，マップ帳票の印刷ドキュメント名は，APで帳票を印刷するときの出力論理マップ中に指定することで，APから動的に変更できます。この機能を利用することによって，印刷した帳票の種別や内容の判別が容易になり，帳票印刷業務でのリカバリ処理などの効率を向上できます。

なお，帳票をPDFファイルに出力する場合，印刷ドキュメント名がPDFファイルのファイル名になります。

印刷枚数を指定する環境変数

Windows NT 4.0，Windows 2000，Windows XP，Windows Server 2003，またはWindows Server 2003 x64の場合，XMAP3の環境変数「XMAP3_COPIES」に同一帳票の複数枚印刷を指定できます。印刷部数は1～32の範囲で指定します。省略時には「1」が仮定されます。

印字領域

定義したオブジェクトを，実際に先頭印字位置から印刷できる領域です。プリンタの機種やプリンタにセットする用紙の位置などによって異なります。レイアウト定義では，この印刷できるレイアウト領域内に収まるようにする必要があります。

埋字

出力されたデータが，APが渡す項目の長さより短いとき，残りの領域を埋める文字です。右側と左側のどちらに埋字を格納するかは，桁寄せの指定に従います。ドローで作成したオブジェクトには，ドローセットアップで指定した埋字が仮定されます。必要に応じて，ドローのダイアログで変更できます。

オフセット

シリアルプリンタで，用紙に穴を開けることなどを想定して設定しておく余白のことです。ハードマージンを基点としてレイアウト開始位置をずらせます。XMAP3では，1ます目から，レイアウト領域の範囲内でオフセット値を指定できます。

（カ行）

仮想端末名ファイル（X3MWHOST）

APがプログラム中で使用する仮想端末名，デバイス，サービス名などの設定ファイルです。このファイルの内容は，表示・印刷セットアップの「プリンタ」，C/Sセットアップの「C/S構成」で設定します。

なお，スタンドアロン環境でプリンタを1台だけ使用している場合は，設定する必要はありません。

場所と名前 ： XMAP3インストール先¥Etc¥X3mwhost

カット紙

カット紙は，A4やB5など1枚の紙になっている用紙です。ページプリンタ帳票とシリアルインパクト帳票の両方で利用できます。

基準ます目

帳票のレイアウト領域でオブジェクトを配置するときの単位となるます目です。ます目は，CPIとLPIの矩形を1ますとします。そのため，ドローでは，このます目を（LPI－CPI）の組み合わせで指定します。帳票属性の定義では，「ます目設定」によって，配置できる領域が変わってきます。このます目設定は，レイアウト画面上に表示されているグリッドの間隔と対応します。

LPIは，ます目の高さ（行間隔）です。XMAP3で「ます目の設定」を「自由な設定」にした場合，3，4，6，8LPIの中から選べます。例えば，8LPIは25.4mm（1インチ）当たりが8行になります。

CPIとは，ます目の幅です。CPIを指定すると，自動的に文字サイズと文字間隔が決まります。例えば10CPIと指定すると，25.4mm（1インチ）に10文字格納できるように文字サイズと文字間隔が決まります。

上記，ます目によって，印字できる行列数が変わってきます。

行制御データファイル

書式オーバレイの使用時に，ユーザの行データを印字する行の間隔や，標準の文字サイズ・文字間隔などの情報を格納するファイルです。拡張子は.pciです。書式オーバレイの定義終了時に，書式イメージファイルとともに生成されます。

APでは，印刷するデータを1行（1レコード）ずつ出力し，1ページ分となった時点で書式がオーバレイされて印字されます。

行データ

AP中で設定する帳票の可変情報です。

グラフィック

グラフィックデータを出力するオブジェクトです。データには，ビットマップ（.bmp），メタファイル（.wmf），拡張メタファイル（.emf），JPEGファイル（.jpg，.jpeg）が使えます。

出力するデータをドローで定義する「固定グラフィック」と，APから指定する「出力グラフィック」があります。

固定グラフィックは配置する前にあらかじめグラフィックファイルを用意しておきます。

出力グラフィックは領域だけを配置します。グラフィックデータは，APからファイル名またはクリップボード経由で渡します。

グラフィック帳票

240dpi／300dpiのページプリンタ用の帳票です。網掛け帳票の機能に加え，オブジェクトやけい線などのバリエーションなどをより豊富に備えています。

グリッド

ドローのレイアウト領域上の座標を示す格子状の線や点で，オブジェクト配置位置となります。格子一つ分の単位を「ます」といいます。

帳票定義でのますのサイズは，帳票属性で指定する基準ます目サイズに従う行／列単位と，ドット単位，mm単位，ます目単位とで切り替えられます。ただし，シリアルインパクト帳票の場合は，行／列単位だけとなります。

けい線帳票

180dpiのドットインパクトプリンタ用の帳票です。カット紙に対応するものと，連続紙に対応するものとがあります。

OCR文字も使えます。

桁寄せ

次の場合に，データを右や左に寄せてやり取りすることです。桁寄せをする場合は，ドローセットアップで埋字の指定が必要です。

出力データが，APが渡す項目の長さより短い

項目

APとXMAP3でやり取りする論理マップ中の各要素を項目といいます。画面や帳票に表示するユーザデータを扱う項目をデータ項目といい，表示属性を変更する目的で使用する項目を制御項目といいます。データ項目は，データ型によって次のように呼びます（COBOLの場合）。

文字項目：データ型が文字（XX）のときのデータ項目

数字項目：データ型が数字（99）のときのデータ項目

数字編集項目：データ型が数字編集（Z，9，￥などの組み合わせ）のときのデータ項目

漢字項目：データ型が日本語（NN）のときのデータ項目

固定バーコード

バーコードを印字するオブジェクトです。データはドロー上で指定して帳票に印字します。文字や長さに応じた各種があります。バーコードに付けるデータ文字の有無などを指定できます。

固定フィールド

表題など，帳票上で変化しない文字列のフィールドです。表示する文字列はドローで定義します。固定フィールドの入力できる文字には，標準で全角文字を使用できる「日本語」と，標準で半角文字だけを使用できる「英数」があります。

（サ行）

サービス名ファイル（X3PHOST）

表示サーバに関連するサービス名やサービス種別などを設定するファイルです。この情報はサーバ側だけに設定します。このファイルには，C/Sセットアップで設定した情報が反映されます。C/Sセットアップで設定できない情報は，直接このファイルを設定してください。スタンドアロン環境の場合は，このファイルの設定は必要ありません。

再定義名

定義済みの論理マップを別定義として使用するときの名称です。半角で30文字以内で定義します。

下敷き

ドローでのプレプリント帳票，グラフィック帳票および書式オーバレイの定義で，用紙のフォーマットイメージをレイアウト領域の背後に表示しながら定義する機能です。用紙上のけい線などに合わせてオブジェクトの位置を調整する場合に使います。下敷きは，レイアウト時の目安となるだけで，実際の帳票印刷の対象にはなりません。

下敷きとして表示するデータは，あらかじめスキャナで読み込んで，256色以下のビットマップファイル（.bmp）として用意しておきます。

修飾名

グラフィック帳票で，表示属性を動的変更（APから表示属性を変更する）の指示するための名前です。次の手順で利用します。

ドローセットアップで，修飾名と表示属性と対応を定義する。

ドローで，オブジェクトや画面全体の表示属性に［動的変更（APから表示属性を変更する）］を指定する。
制御項目（修飾名を格納する領域）が論理マップに展開されます。

APで，制御項目に修飾名を格納する。
表示属性が動的に変更されます。

出力OCR

JIS規格OCRサブセット2の範囲の文字でデータを印字するオブジェクトです。データはAPから指定し，論理マップを介して帳票に印字します。字間値は10CPI相当が標準です。

出力バーコード

バーコードを印字するオブジェクトです。データはAPから指定し，論理マップを介して帳票に印字します。文字や長さに応じた各種があります。バーコードに付けるコメント文字の有無などを指定できます。

バーコードの種類には，JAN8，JAN13，CODE39，ITF，NW-7，およびカスタマがあります。特別なハードウェアは必要ありません。

出力日付／時刻フィールド

日付や時刻を表す文字列を出力するオブジェクトです。APから指定する可変のデータを出力します。

出力フィールド

出力データをAPから変更し，論理マップを介して帳票に出力するフィールドです。出力フィールドに出力できる文字には，数字だけを使用できる「数字」，全角文字を使用できる「日本語」，および半角文字だけを使用できる「英数」があります。

書式イメージファイル

書式オーバレイの文字列やけい線などの情報を格納するファイルで，拡張子は.fmpです。書式オーバレイの定義終了時に，行制御データファイルとともに生成されます。

書式オーバレイ

240dpi／300dpiのページプリンタ用の書式オーバレイです。定型帳票から書式（文字列やけい線などの固定項目）を分離し，アプリケーション（行データ）を印刷時に重ね合わせるソフトオーバレイ方式を採っています。書式をプリンタ（ハードウェア側）に登録するメインフレームおよびWSの出力方式とは異なります。

書式定義ファイル

ドローで定義した書式の定義情報を格納したファイル（.ifm）です。

書式名を指定する環境変数

Windows NT 4.0，Windows 2000，Windows XP，Windows Server 2003，またはWindows Server 2003 x64の場合，XMAP3の環境変数「XMAP3_FMP」に出力する書式名を指定できます。書式名は拡張子（.fmp）を除いた8文字以内の文字列で指定します。ただし，COBOLのAPで書式名が指定されている場合は，環境変数での指定は無効となります。

書体を指定する環境変数

Windows NT 4.0，Windows 2000，Windows XP，Windows Server 2003，またはWindows Server 2003 x64の場合，XMAP3の環境変数「XMAP3_FORMAT」に出力する行データの書体を指定できます。書体は，明朝体（1）またはゴシック体（2）で指定します。省略時にはドローで定義した書体が有効になります。

数字編集項目

指定したピクチャ句に従って，数字を編集して入出力します。ピクチャ句は，次の文字で指定します。

出力： ＊ ＋ － ￥ 9 ． ， Z ／

遷移図（遷移シミュレーション用）

テスト支援の「遷移シミュレーション」で作成する図で，遷移条件ファイル（.seq）に保存します。

帳票（物理マップや書式イメージ）を表すシンボルを，イベント通知コードを表すシンボル（線）でつないで帳票の遷移を表現します。

APの操作性のシミュレーションに利用します。また，定義前に帳票遷移を設計する場合にも利用できます。

遷移図（連続表示／印刷用）

テスト支援の「連続表示／印刷」で作成する図で，連続遷移ファイル（.run）に保存します。

作成した帳票（物理マップや書式イメージ）を表すシンボルを配置し，並べた順序に従って帳票の印刷ができます。

（タ行）

通信記述項（CD項）

XMAP3で画面の入出力，および帳票の出力をするためにCOBOLプログラム中にコーディングする論理端末定義ブロックです。物理マップ名称や仮想端末名称などを指定します。

（帳票の例）

定義サンプル

一般の業務を想定したマップ定義ファイルで，サンプルとしてXMAP3が提供しています。レイアウト定義の参考にしたり，流用して独自の変更を追加したりするなどして利用できます。定義サンプルのファイルの格納場所は次のとおりです。

XMAP3インストール先¥Samples¥Prtmap

データ有無コード

AP（出力論理マップのフィールドのデータ名の領域）にデータが設定されていないことを示す1バイトの文字コードです。(00)₁₆～(FF)₁₆の間で任意で，通常は(1F)₁₆が標準です。

コードを変更する場合は，使用する言語に応じて次のとおりになります。

COBOLの場合
1. SEND／RECEIVEのとき，通信記述項のDATA ABSENCE CODE句
2. CALLのとき，オープン要求のインタフェース

C言語の場合
1. jsvwadrv関数のオープン要求インタフェース

データ型

COBOLのピクチャ句で指定するデータの型です。文字型や数字型があります。Cの場合は，Charだけです。ドローで作成したオブジェクトには，ドローセットアップで指定したデータ型が仮定されます。必要に応じて，ドローで変更できます。

データ型は，文字用，数字用，数字編集用に分かれます。使用できるデータ型は次のとおりです。

文字用　　：　文字（XX），漢字（NN），漢字（XX）

数字用　　：　99999

数字編集用：　Z，9，¥などを組み合わせた各種数字編集文字列

また，登録されていないデータ型を指定したい場合，［自由な設定］ボタンで表示されるダイアログで任意に設定できます。

データ長

論理マップの長さ（バイト数）です。通常は，桁を基に各ターゲットに応じた値が自動的に計算されます。ユーザ任意の値を設定できるターゲットもあります。

データ名

データ項目名（またはデータ名）は，データの入出力に関する各項目の領域の名称です。

データ名のうち，修飾名（表示属性の変更をAPから指示するための名前）を格納する領域の名称を制御項目データ名といいます。

テスト支援

ドローで作成した物理マップファイルや書式イメージファイルを使って，帳票の内容を確認するための機能です。APを作成する前に，実行時の帳票印刷をテストできます。

「単体表示／印刷」，「連続表示／印刷」，「遷移シミュレーション」の3種類のテストができます。

デリミタ線

複数の短い縦けい線をます目ごとに横に並べて配置するオブジェクトです。1桁ごとに区切る目盛りを描画するときに使います。

ドロー

画面や帳票を定義する機能（エディタ）です。画面や帳票のレイアウトや各オブジェクトの属性を定義します。定義内容から，マップ定義ファイル（書式オーバレイでは書式定義ファイル），物理マップと論理マップ（書式オーバレイでは行制御データファイルと書式イメージファイル）を作成します。

また，ドローからテスト表示やテスト印刷，および論理マップ表示などの機能も利用できます。

ドローセットアップ

ドローセットアップは，画面や帳票の定義に関する標準の値を設定するための機能です。XMAP3では，セットアップする項目の標準値を用意していて，この標準値を変更する場合にだけ設定します。このセットアップの内容はマップの形式に関係しているので，画面や帳票を作成する前にセットアップを済ませておく必要があります。

ドローセットアップで設定する項目は，次の内容に分かれます。

画面・帳票定義（ドロー）での各種ダイアログの初期値となる項目
（ドローの各種ダイアログで指定，変更の省力化のため）

セットアップだけで指定する項目
ドローセットアップで指定する項目については，システム全体で共通となるため，全体の運用を考えて設定してください。

なお，動的変更で修飾名を追加したい場合や，その属性の変更，設定をしたい場合については，レイアウト定義をする前に必ず設定しておく必要があります。レイアウト定義後にセットアップ内容を変更したい場合には，セットアップの内容を変更後，ユティリティの「セットアップ情報反映」機能でマップ定義ファイルにセットアップ情報を反映してください。

（ハ行）

ハードマージン

プリンタが紙を送るために必要な領域で，ハードウェア（プリンタ）に依存します。したがって，ユーザが任意に設定することはできません。また，LIPSスルーとGDIモードで次のような違いがあります。

GDIの場合，プリンタドライバが持つマージン

LIPSスルーの場合，物理的に印字できない領域

ただし，プリンタドライバが持つマージンが，印刷するプリンタのハードマージンと同じかどうかは機種によって異なります。一般には，プリンタのハードマージンより大きくとられます。なお，ユーザがドローで指定できるマージンをソフトマージンまたは単にマージンといいます。

ビッグエンディアン

バイナリ形式のデータを扱う際，メモリ上に左から右側へ1バイトずつ格納する形式です。

（例）

(000A)₁₆を2バイトのメモリに格納した場合は，(000A)₁₆になります。

表示・印刷環境ファイル（X3PCONF）

帳票を印刷するときの環境を設定するファイルです。帳票では用紙サイズや向きなどを設定します。

なお，このファイルの設定項目には，直接ファイルをエディタで開いて編集する（セットアップで設定できない）項目もあります。表示・印刷セットアップで設定できる項目については，セットアップ情報が優先されます。

場所と名前 ： XMAP3インストール先¥Etc¥X3PCONF

物理マップ

画面や帳票のオブジェクトの位置などを格納した情報ファイルで，拡張子は.pmpです。画面・帳票の定義終了時に，論理マップとともに生成されます。

ディスプレイやプリンタの入出力データを論理マップデータに変換したり，論理マップデータを入出力データに変換したりするときにXMAP3が参照します。

プリンタ構成ファイル（X3PPINF）

プリンタ構成の設定ファイルです。このファイルの内容は，表示・印刷セットアップの「プリンタ」で設定します。

場所と名前 ： XMAP3インストール先¥Etc¥X3PPINF

フレーム

複数のオブジェクトの組み合わせを縦方向または横方向に反復して並べるためのオブジェクトです。テキスト・フィールドなどを組み合わせて表形式で並べる場合に使います。論理マップには配列として展開されます。

プレプリント帳票

180dpiのドットインパクトプリンタ用の帳票です。カット紙に対応するものと，連続紙に対応するものとがあります。

プレプリント用紙（あらかじめけい線や標題などが印刷されている用紙）に対して可変データを印字するときに使います。

バーコードやOCR文字も使えます。

（マ行）

マージン

ページプリンタで，用紙に穴を開けることを想定して設定しておく余白のことです。用紙の左上を基点にしてマージンを設定し，レイアウト開始位置をずらせます。このようにユーザが指定するマージンをソフトマージンといいます。これに対し，プリンタドライバおよびプリンタ装置ごとに，ハードマージンと呼ばれるハード機構上，印刷できない領域があります。このハードマージンの値よりも小さいマージンを設定すると，ハードマージンが有効になるので，注意してください。

なお，ハードマージンは，GDI使用時にはプリンタドライバが持つ値となり，PDLスルー使用時にはプリンタ装置が持つ値となります。また，PDFファイル出力の場合は，ハードマージンがないため，指定したとおりのレイアウトとなります。

マップ生成

ユティリティの機能の一つです。マップ定義ファイルから，論理マップファイルと物理マップファイルを生成します。

また，書式定義ファイルから書式イメージファイルと行制御データファイルを生成します。

マップ帳票

けい線帳票，プレプリント帳票，網掛け帳票，およびグラフィック帳票の総称をマップ帳票といいます。

マップ定義ファイル

帳票（画面）定義用ドローで定義した帳票や画面の定義情報であるソースマップを格納したファイル（拡張子は.imp）です。XMAP3は，このマップ定義ファイルを基に，物理マップと論理マップを生成します。

マップ展開方式

マップ生成時に出力される論理マップの数値領域の展開形を指定します。展開形式には，次に示す2種類があります。

リトルエンディアン用マップを展開
Windows，Linuxの場合で，スタンドアロンまたはC/Sシステム構成のときに使用できる展開方式で論理マップを生成します。

ビッグエンディアン用マップを展開
C/S（Windows，Linux以外のWSで共用）構成の場合に使用できる展開方式で論理マップを生成します。

（ヤ行）

予約フィールド

OLTPサーバ構成で，日付，時刻など，OpenTP1が提供する予約項目を出力するフィールドです。ドローで予約項目名称を定義することで，項目名に対応したデータが帳票に印刷されます。

（ラ行）

リトルエンディアン

バイナリ形式のデータを扱う際，メモリ上に右から左側へ1バイトずつ格納する形式です。

(000A)₁₆を2バイトのメモリに格納した場合は，(0A00)₁₆になります。

レイアウトパターン

ドローで画面／帳票を新規作成するときに，用途に応じて指定するパターンです。標準的なレイアウト領域のサイズやパターンなどがあらかじめ設定されていて，ドローでのレイアウト定義の基本フォーマットとなります。

XMAP3が標準提供しているレイアウトパターンのほかに，ユーザが独自に作成・登録することもできます。

レイアウト領域

ドローのレイアウト領域です。XMAP3のレイアウト定義の範囲は，この領域になります。オフセットとユーザが設定したマージン値（ソフトマージン）を除いた領域になります。

連結出力バーコード

バーコードを印字するオブジェクトです。連結出力バーコードは，従来のJANコードなどのような単一データ（商品コードなど）をバーコードとして印字するオブジェクトに対して，複数データ（メーカーコード，支払い期限，支払い金額など）を一つのバーコードとして印字するオブジェクトです。データはAPから指定し，論理マップを介して帳票に印字します。このとき，一つのバーコードに対して複数の論理項目（分類項目）を使用します。

バーコードの種類には，EAN-128があります。EAN-128バーコードを印刷する場合は，300dpi（推奨は600dpi）以上のプリンタを使用してください。

連続紙

連続紙は，各ページの境がミシン目になってつながっている用紙です。シリアルインパクト帳票でだけ利用できます。

論理マップ

画面や帳票の可変情報を設定する出力論理マップと，画面から入力されたデータなどを設定する入力論理マップがあります。ファイルの拡張子は，COBOLの場合は.cbl，C言語の場合は.hです。画面・帳票の定義終了時に，登録集原文として物理マップとともに生成されます。

COBOLでAPを作成する場合は，COPY文で論理マップを取り込みます。AP実行時には，APに取り込まれた論理マップのデータ領域を介して，データがやり取りされます。

索引

[記号]
[Ａ][Ｃ][Ｄ][Ｅ][Ｆ][Ｇ][Ｊ][Ｌ][Ｍ][Ｏ][Ｐ][Ｓ][Ｖ][Ｗ][Ｘ]
[ア行][カ行][サ行][タ行][ナ行][ハ行][マ行][ヤ行][ラ行][ワ行]

(記号)

#include指示語

(英字)

(Ａ)

Access

AP

API

APインタフェースの概要

APインタフェースの概要

APインタフェースの種類

APインタフェースの種類

APが渡す項目

AP環境ファイル

AP間でオープンを引き継ぐ

AP間でオープンを引き継ぐ

AP作成時のポイント

APのインタフェース

APのインタフェース

APのコーディング

APパターン

APパターン

APパターンとAP部品

APパターンの一覧

AP部品

AP部品

AP分割時の注意

APをコーディングする

atof

atol

(Ｃ)

C/Sシステム

C/Sシステム構成時の通信データ削減

CALL文による印刷

CALL文の発行順序

CALL命令

CD項

COBOLエディタでのAP部品の利用

COBOL開発マネージャ

COBOL開発マネージャ

COBOL開発マネージャでのXMAP3の利用方法

COBOLでの印刷命令

COBOLでの印刷命令

COBOLのサンプル例題と関連ファイル名一覧

COBOLを使用したプログラムサンプル

CPI

CPI

CSVファイル

CSVファイル印刷例題

C言語

C言語固有のコーディング例

C言語での印刷命令

C言語での印刷命令

C言語での帳票印刷命令

C言語のサンプル例題と関連ファイル名一覧

C言語用パターンの利用方法

C言語を使用したプログラムサンプル

(Ｄ)

Delphi

Delphiでの印刷方法

Delphiを使用した書式印刷例

DISABLE文

DLLの呼び出し

DLLの呼び出し

DLLの呼び出し

(Ｅ)

EAN-128バーコードの印字幅調整

EAN-128バーコードのスタート／ストップキャラクタの印字幅調整

ESC/Pスルーモード

EUC

(Ｆ)

FAXC/SPOOL出力モード

FAX印刷例

(Ｇ)

GDI

GDIかPDLスルーかの見直し

GDIモード

GENOVL01パターン（COBOL）

GENOVL01パターン（C言語）

GENREP01パターン（COBOL）

GENREP01パターン（COBOL）

GENREP01パターン（C言語）

GENREP02パターン（COBOL）

(Ｊ)

JP1を使用した例

JSTQL_COMアドレス〔jstqlcls関数〕

JSTQL_COMアドレス〔jstqlctp関数〕

JSTQL_COMアドレス〔jstqldat関数〕

JSTQL_COMアドレス〔jstqllpt関数〕

JSTQL_COMアドレス〔jstqlopn関数〕

JSTQL_COMアドレス〔jstqlpag関数〕

JSTQL_CTLアドレス

JSTQL_CTLアドレス

jstqlcls関数

jstqlctp関数

jstqldat関数

jstqllpt関数

jstqlopn関数

jstqlpag関数

jstqlpag関数

jsvwadrv関数

jsvwadrv関数

(Ｌ)

LIPS（LBP Image Processing System）スルーモード

LPI

LPI

(Ｍ)

memcpy

memset

MODATR02部品

(Ｏ)

OCR

OCR可変項目の定義

OCR項目

OCR文字コード

OCR文字をOCRリーダで読み込ませるときの注意

OCRリーダを使用するとき

OCRを使用するときの注意

OLTP

OLTPサーバ構成での帳票印刷

(Ｐ)

PDF

PDFファイル出力モード

PDFファイルの圧縮

PDL（Page Description Language）スルーモード

PDLスルーモード

(Ｓ)

SEND

SEND文

SEND文による印刷

sprintf

STATUS KEY句の実行状態コード

(Ｖ)

Visual Basic

Visual BasicおよびAccessでの印刷方法

Visual Basicを使用した書式印刷例

(Ｗ)

Windowsスプーラの設定

Windowsスプーラへの登録タイミングの見直し

Windows対応プリンタ

(Ｘ)

X3MWDRV

X3MWHOST

X3PCONF

X3PHOST

X3PPINF

XMAP_COMアドレス

XMAP_REQアドレス

XMAP-COM

XMAP-REQ

XMAP3オープンの引き継ぎ

XMAP3関連ファイル

XMAP3実行支援

XMAP3実行支援

XMAP3で使用できる日立COBOL

XMAP3で使用できる日立COBOL

XMAP3で提供している定義パターン

XMAP3で提供しているプログラムパターン

XmapDrvClose関数

XmapDrvCreateOpen関数

XmapDrvCreate関数

XmapDrvGetError関数

XmapDrvOpen関数

XmapDrvSend関数

XmapDrvSetDataCode関数

XmapFrmClose関数

XmapFrmCreateOpen関数

XmapFrmGetError関数

XmapFrmSetChannel関数

XmapFrmSetData関数

XmapFrmSetFont関数

XmapFrmSetInterval関数

XmapFrmSetLine関数

XmapFrmSetNewLine関数

XmapFrmSetPage関数

XmapFrmSetPoint関数

XmapFrmSetWidth関数

(ア行)

(あ)

網掛け

網掛け帳票

網掛け帳票

網掛け帳票で作成した帳票の例

網掛け帳票の機能内容

網掛け帳票の帳票属性

網掛け帳票の定義パターン

網掛け帳票の用紙設計

網掛け帳票の用紙設計の流れ

網掛けの濃さ

網掛けの自由配置

網掛けのフィールドを選択する

網掛けの見直し

(い)

インクジェットプリンタ

印刷拡張セットアップ

印刷サービス名アドレス

印刷サービス名称

印刷サービス名称

印刷サービス名を指定する環境変数

印刷先の保存

印刷実行の対処方法

印刷時の注意事項

印刷対象プリンタ

印刷できる行数

印刷できる行数

印刷できる行数

印刷できる行数

印刷できる行列数

印刷できる列数

印刷できる列数

印刷できる列数

印刷できる列数

印刷動作

印刷動作

印刷ドキュメント名

印刷ドキュメント名

印刷ドキュメント名

印刷ドキュメント名

印刷ドキュメント名

印刷ドキュメント名

印刷ドキュメント名指定

印刷ドキュメント名の論理マップ生成規則

印刷部数

印刷部数

印刷部数指定

印刷枚数を指定する環境変数

印刷モード

印刷モード選択のポイント

印刷様式（定義パターン）の決定

印字領域

印字領域

印字領域

印字領域

印字領域

印字領域

印字領域

印字領域とレイアウト領域

印字領域とレイアウト領域

印字領域とレイアウト領域との関係

インタフェーステーブルの取り込み方法

インタフェース領域

インタフェース領域の取り込み方法

インパクトプリンタ

(う)

埋字

埋字

埋字と桁寄せに関するマッピング規則

(え)

英数

エリアの一括クリア

円

円および円弧の自由配置

円弧

円弧の属性

円の属性

(お)

オープンインタフェース領域

オープンインタフェース領域

オープン要求

オープン要求

同じ帳票レイアウトで中身が異なるものを複数枚印刷

同じ内容のものを複数枚印刷（コピー印刷）

オブジェクト同士の重なり

オフセット

オフセット

(カ行)

(か)

カーソルキーでのオブジェクトの移動

外部装置名

重ね印刷

重ね印刷例題

飾り用ビットマップの見直し

カスタマバーコードのチェックデジット計算方法

仮想端末の自動割当て

仮想端末名ファイル

カット紙

カット紙間の移行

カット紙で使用できる用紙サイズ

カット紙で使用できる用紙サイズ

角の丸め位置と角の丸め

可変部の論理マップ生成規則

カラーデータの扱い

カラー文字を使用している帳票を出力

環境部

環境変数

関数の発行順序

関数の発行順序

(き)

基準ます目

基準ます目

基準ます目

基準ます目

基準ます目

基準ます目

基準文字サイズ

行送りの制御情報テーブル

行間隔

行間隔

行間隔

行制御データファイル

行制御データファイル

行制御データファイル

行制御データファイル

行制御ファイル

行単位

共通インタフェース領域

共通インタフェース領域

行データ

行データの制御情報テーブル

行データの制御情報の内容

行データの属性の設定

行データの帳票印刷

行データの帳票印刷

行データの編集方法

行の高さまたは列の幅の変更

(く)

矩形

矩形内の斜線

矩形内の斜線

矩形の角の丸め位置

矩形の自由配置

グラフィック

グラフィック

グラフィック帳票

グラフィック帳票

グラフィック帳票

グラフィック帳票で作成した帳票の例

グラフィック帳票の機能内容

グラフィック帳票の定義パターン

グラフィック帳票の用紙設計

グラフィック帳票の用紙設計の流れ

グラフィックデータの印刷

グラフィックデータの使用条件

グラフィックデータの渡し方

グラフィックの属性情報

グラフィックファイルのサイズ

グラフィックファイルのフォーマット

グラフィックフォルダ

グラフの変更による再印刷

グリッド

グリッド

クリップボードの利用

クローズ要求

クローズ要求

(け)

けい線

けい線

けい線

けい線

けい線帳票

けい線帳票

けい線帳票属性

けい線帳票で作成した帳票の例

けい線帳票の機能内容

けい線帳票の定義パターン

けい線帳票の用紙設計

けい線帳票の用紙設計の流れ

けい線の繰り返し

けい線の繰り返し

けい線の繰り返し

けい線の自由配置

けい線の種類，および線の太さ

けい線の動的変更とAP

けい線の配置

けい線の見直し

けい線表示属性の動的変更

桁寄せ

桁寄せ向き

(こ)

項目

コーディング前の準備

固定グラフィック

固定グラフィック

固定バーコード

固定バーコードのエラーチェック

固定フィールド

固定フィールド

固定フィールドの自由配置

固定部の出力論理マップ生成規則とマッピング規則

固定部の論理マップ生成規則とマッピング規則

異なる帳票を交互に印刷

異なるバージョン間でのOCR印刷

異なるプリンタに帳票を印刷

異なるプリンタに帳票を印刷

コピー枚数の論理マップ生成

コンパイラ

コンパイラオプション

コンパイラオプション

コンパイル

コンパイル

コンパイル

コンパイル

コンパイル時の主なエラー

コンパイル時のポイント

コンパイル時のポイント

(サ行)

(さ)

サービス名ファイル

再定義名

作成する帳票の決定

(し)

下敷き

下敷き機能

下敷き機能

下敷き機能

実行

実行

実行時の主なエラー

実行時のポイント

実行時のポイント

実行時のポイント

実行手順

実行手順

斜体

修飾名

出力OCR

出力OCRで指定できる文字

出力OCRの自由配置

出力OCRの設計

出力OCRの配置方法

出力OCRの利用

出力OCR文字の間隔調整

出力グラフィック

出力グラフィック

出力グラフィックの定義

出力グラフィックの利用

出力グラフィックの論理マップ生成規則

出力時のAPインタフェース

出力する行データ

出力データ

出力バーコード

出力バーコードの定義

出力日付／時刻フィールド

出力フィールド

出力フィールド

出力フィールド

出力フィールドの自由配置

出力フィールドの利用

出力要求

出力要求

出力論理マップ

使用できるAPI

使用できる色

書式イメージファイル

書式イメージファイル

書式イメージファイル

書式オーバレイ

書式オーバレイ

書式オーバレイ印刷ユティリティコマンド

書式オーバレイ印刷ユティリティコマンド

書式オーバレイ出力方式

書式オーバレイ使用時の注意事項

書式オーバレイ定義とAPのコーディング

書式オーバレイで作成した帳票の例

書式オーバレイのFAX出力

書式オーバレイの簡易印刷

書式オーバレイの行データのコーディング

書式オーバレイの帳票属性

書式オーバレイの定義パターン

書式オーバレイの用紙設計

書式オーバレイ名称

書式オーバレイ名称

書式属性の定義

書式付き出力関数

書式定義ファイル

書式データファイル

書式のAPパターン

書式の機能内容

書式の設定

書式ファイル

書式名格納エリア

書式名格納領域のアドレス

書式名を指定する環境変数

書式を利用したAP

書体を指定する環境変数

シリアルインパクトプリンタ

シリアルインパクトプリンタの印字合わせ

(す)

数字

数字から数値に変換

数字から数値に変換

数字から数値への変換

数字編集項目

数字編集項目の利用

数値から数字に変換

数値から数字に変換

数値から数字への変換

スケール単位

スプール単位出力

スプール単位出力

(せ)

制御項目の定義

制御項目の論理マップ生成規則

制御データ

遷移図（遷移シミュレーション用）

遷移図（連続表示／印刷用）

先頭印刷位置

占有けい線

占有けい線

(そ)

属性情報一覧

ソフトオーバレイ方式

(タ行)

(ち)

チェックデジットの計算方法

チェックデジットの計算例

帳票印刷命令

帳票印刷命令

帳票オブジェクトの制限値

帳票出力時のXMAP3とAPの関係

帳票出力の概要

帳票設計の概要

帳票設計の基本用語の説明

帳票設計の流れ

帳票属性の定義

帳票端末名

帳票定義とAPのコーディング

帳票定義と書式定義の制限値

帳票定義前の確認

帳票入門例題

帳票のAPパターン

帳票のFAX出力

帳票のオブジェクト定義とAPのコーディング

帳票のパターン

帳票の部品パターン

帳票のレイアウト

帳票用紙を設計

帳票レイアウトを構成するオブジェクト

直線

(つ)

通信記述項

通信記述項（CD項）

(て)

定義サンプル

定義サンプルとAPパターンの組み合わせ

定義対象

定義対象と重なり印刷の関係

定義パターン

定義パターン

定義パターンの選択

定義パターンの選択

定義パターンの登録

定数部

データ有無コード

データ型

データ長

データの一括コピー

データ名

データ名とコメントの編集

データ名の検索と置換

データ名の順序をソートする

データ名の編集

データ名編集ダイアログ

データ名編集ダイアログ

データ量の見直し

テスト印刷

テスト支援

デバイスID

デリミタ線

(と)

動的変更テーブル

登録集原文を格納するフォルダ

ドットプリンタ

トラブルの対処方法

ドロー

ドローセットアップ

ドローセットアップ

(ナ行)

(な)

斜め線

(に)

日本語

(ハ行)

(は)

バーコード

バーコード印刷に必要な幅

バーコード種別

バーコードのサイズ

バーコードの自由配置

バーコードの属性情報

バーコードの定義

バーコードの反復

ハードマージン

バブルジェットプリンタ

汎用APインタフェース

汎用APインタフェース

汎用APインタフェースを使用したコーディング例

汎用関数を使用した場合のC言語での印刷方法

(ひ)

非占有けい線

日立COBOL使用時のトラブル

日立COBOLによる命令

左寄せ配置の指定

左寄せ配置の指定

ビッグエンディアン

日付・時刻とAP

日付・時刻の表示形式と格納形式

日付／時刻項目の定義

日付／時刻の論理マップ生成規則

日付と時刻

表けい線の枠

表けい線の枠

表けい線の枠

表サイズ変更例題

表示・印刷環境ファイル

表示属性の動的変更

表示属性の動的変更

表示属性の動的変更

標準書式例題

標準帳票例題

標準提供動的変更テーブル

標準提供ファイル

標準のデータ名

標準パターン

(ふ)

ファイル単位

ファイルの取り込み

ファイルの取り込み

ファイルの取り込み

フィールド・けい線系の属性情報

フィールドの反復

フィールドの反復

フィールドの反復

フィールドの見直し

フィールド表示属性の動的変更

物理マップ

部品

部品

部品の登録

部品の利用

不要なオープン要求の見直し

プリンタ構成ファイル

プリンタ出力用ファイル

ブレーク項目例題

フレーム

フレーム

フレーム（明細行）の定義

フレーム内のオブジェクトの削除

フレームの繰り返し間隔の変更

フレームの自由配置

フレームの操作

フレームの反復回数とサイズの変更

フレームへのオブジェクトの追加

プレプリント帳票

プレプリント帳票

プレプリント帳票属性

プレプリント帳票で作成したバーコード入りラベル

プレプリント帳票の機能内容

プレプリント帳票の定義パターン

プレプリント帳票の用紙設計

プレプリント帳票の用紙設計の流れ

プログラム中の命令とXMAP3

プログラムテンプレートを使用したファイルの編集

プログラムのパターン

(へ)

ページ単位

ページプリンタ

ベタ打ち

ベタ打ち

(マ行)

(ま)

マージン

マージン

マージン

ます目単位

ます目の設定

ます目の設定

ます目の設定

ます目の設定

ます目の設定

ます目の配置

ます目の配置

ます目の配置

ます目の配置

マッピング規則

マッピング規則

マッピング規則

マップ生成

マップ帳票

マップ帳票

マップ帳票で使用できる機能

マップ定義ファイル

マップ展開方式

マップ名

マップ名の決定

マップ名の決定

(み)

右寄せ配置の指定

右寄せ配置の指定

ミシン目単位での改ページ

ミシン目単位での改ページ

(も)

文字強調変更例題

文字サイズ

文字サイズ（ポイント数）の変更

文字サイズ（ポイント数）の変更

文字色の設定〔固定フィールド〕

文字色の設定〔出力OCR〕

文字色の設定〔出力日付／出力時刻フィールド〕

文字色の設定〔出力フィールド〕

文字色の設定〔予約フィールド〕

文字属性の動的変更とAP

文字の大きさ

文字の大きさ

文字の大きさ

文字の拡大

文字の拡大

文字の間隔

文字の間隔

文字の間隔

文字編集DLL

文字編集DLL

文字列変換関数

(ヤ行)

(ゆ)

ユーザAP例

(よ)

要求インタフェース領域

要求インタフェース領域

用紙サイズ

用紙サイズ

用紙サイズ

用紙サイズ

用紙サイズ

用紙サイズと文字間隔

用紙の種類

用紙排出

用紙排出

予約項目名

予約フィールド

予約フィールド

予約フィールドの自由配置

予約フィールドのマッピング規則

(ラ行)

(ら)

ライブラリ

ラインプリンタ

(り)

リターンコード

リターン情報

リトルエンディアン

リンク（MAKE）時の主なエラー

リンケージオプション

リンケージ時の注意事項

リンケージ時のポイント

リンケージ時のポイント

(れ)

レイアウト手順

レイアウト手順

レイアウト手順

レイアウトパターン

レイアウト領域

レイアウト領域

レイアウト領域

レイアウト領域

レーザビームプリンタ

連結出力バーコード

連結出力バーコードの定義

連続紙

連続紙からカット紙への移行

連続紙で使用できる用紙サイズ

連続紙で使用できる用紙サイズ

連続紙へのベタ打ち

連続紙へのベタ打ち

(ろ)

論理データ

論理マップ

論理マップ

論理マップ可変部

論理マップ固定部

論理マップ生成規則

論理マップの構成

論理マップの再定義

論理マップの再定義

論理マップの取り込み方法

論理マップの取り込み方法

(ワ行)

(わ)

和暦

■ 商標類

Acrobatは，Adobe Systems Incorporated（アドビシステムズ社）の商標です。
Adobeは，Adobe Systems Incorporated（アドビシステムズ社）の商標です。
AIXは，米国における米国International Business Machines Corp.の登録商標です。
BackOfficeは，米国Microsoft Corp.の登録商標です。
Delphiは，米国Borland International,Inc.の登録商標です。
ESC/Pは，セイコーエプソン（株）の商標です。
HP-UXは，米国Hewlett-Packard Companyのオペレーティングシステムの名称です。
Itaniumは，アメリカ合衆国および他の国におけるインテル コーポレーションまたはその子会社の登録商標です。
Java 及びすべてのJava関連の商標及びロゴは，米国及びその他の国における米国Sun Microsystems,Inc.の商標または登録商標です。
JFIFは，C-Cube Microsystems 社が規定したフォーマットの名称です。
LBP-B406Eは，キヤノン（株）の商品名称です。
Linuxは，Linus Torvaldsの米国およびその他の国における登録商標あるいは商標です。
LIPSは，キヤノン（株）が開発した言語仕様です。
LIPSII+は，キヤノン（株）が開発した言語仕様です。
LIPSIIIは，キヤノン（株）が開発した言語仕様です。
Micro Focus COBOLは，Micro Focus International Limited の商標です。
Microsoftは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Microsoft Accessは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Microsoft Excelは，米国Microsoft Corp.の商品名称です。
MS-DOSは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
OLEは，米国Microsoft Corp.が開発したソフトウェア名称です。
PA-RISCは，米国Hewlett-Packard Companyの商標です。
Red Hatは，米国およびその他の国でRed Hat,Inc. の登録商標若しくは商標です。
Solarisは，米国Sun Microsystems,Inc. の米国およびその他の国における商標または登録商標です。
TurboLinuxの名称及びロゴは，TurboLinux,Inc. の商標です。
UNIXは，X/Open Company Limited が独占的にライセンスしている米国ならびに他の国における登録商標です。
Visual Basicは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Visual C++は，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Windowsは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Windows NTは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Windows Serverは，米国およびその他の国における米国Microsoft Corp. の商標です。