「Training Manual Lesson-7 (フィールドマッパーの基礎)」 For Ver.8.03

WilComm/400 Ver.8.03 & WilComm 4.8
Manual No - TRN057 (Last Update 2012/08/14)
WilComm V8.03 & 4.8
 Copyright 2012
1
本解説書は、フィールドマッパーを初めてお使いになるフォーム設計者向けトレーニング・マニュアルです。
Lesson-7 では、フィールドマッパーについて解説しています。
(目的)
1. フィールドマッパーの操作方法を理解する。
(目次)
1. ウィルコムのオーバレイの概説
3
2. フィールドマッパー(オーバーレイ定義)のための事前準備その1
4
3. フィールドマッパー(オーバーレイ定義)のための事前準備その2
6
4. フィールドマッパー(オーバーレイ定義)の定義
14
A. フィールドマッパーの起動
14
B. 単一フィールドのマッピング
17
C. テーブルフィールドのマッピング
18
D. バーコードフィールドのマッピング
19
E. 条件付きマッピング
20
F. マッピング定義の保管
20
2
[ 1. ウィルコム・オーバレイの概説 ]
ウィルコムには、オーバーレイ機能があります。IBM i のスプールデータを、あらかじめを用意したオーバーレイ
フォームにマージして、ファックス / メール / 印刷 / 電子保管といった配信を行います。
Lesson-6 では、フォームデザイナーで、ライブラリー・リストのスプールデータをマッピングするためのオーバー
レイフォームを作成していただきました。
Lesson-7 では、Lesson-6 で作成したオーバーレイフォームに、スプールデータをどのように配置するかの定義を
作成しましょう。
定義の作成は、Field Mapper(フィールドマッパー)を使って行います。
<オーバーレイフォーム Lesson-6 >
<スプールデータ>
<オーバーレイフォームへのマッピンク定義 Lesson-7>
<マージ処理>
゙
3
<配信結果>
[ 2. フィールドマッパー(オーバーレイ定義)のための事前準備 -1 ]
Lessin-6 で作成したオーバーレイフォームは、ウィルコムサーバーに保管していただきました。
最新のフォームデザイナーで作成されるファイルは拡張子が「f3t」、「f3x」、「f3y」、「f3z」の4種類ありますが、
「f3t」、「f3x」の2種類をコピーしてください。
拡張子が「f3t」のファイル : フォームのデザイン(レイアウト)が格納されています。
拡張子が「f3x」のファイル : フォーム上で定義した変数フィールドの名前が格納されています。
拡張子が「f3y」のファイル : 今後の機能拡張用ファイルです。
拡張子が「f3z」のファイル : 今後の機能拡張用ファイルです。
ウィルコム・サーバーの場合は、必ず以下のフォルダーに保管してください。(トライブ名は、環境によって読み替
えてください)
[32bit 版 Windows の場合]
C:\Program Files\Wilkinson\WilComm 4\WilForm\Forms
[64bit 版 Windows の場合]
C:\Program Files (x86)\Wilkinson\WilComm 4\WilForm\Forms
4
[ 3. フィールドマッパー(オーバーレイ定義)のための事前準備 - 2 ]
マッピング定義を作成するにあたって、対象のスプールデータを IBM i からサンプルとしてダウンロードする
必要があります。ダウンロードするファイルを、サンプル・スプール・ファイルと呼びます。
Lesson-4 を既に終了していたる場合は、既にサンプル・スプール・ファイルをウィルコムサーバーに取り込
んでいます。(Distribution Wizard のデータ条件設定で使用したことを思い出してください。)
サンプル・スプール・ファイルの拡張子は「map」です。
Lesson-4 では、ライブラリーリストのスプールデータサンプルを、QPRTLIBL.map の名称で、以下のフォルダ
にダウンロードしていただきました。以下のフォルダにあることを確認してください。
<<コピー先フォルダー>>
[32bit 版 Windows の場合]
C:\Program Files\Wilkinson\WilComm 4\WilForm\Sample Spool Files
[64bit 版 Windows の場合]
C:\Program Files (x86)\Wilkinson\WilComm 4\WilForm\Sample Spool Files
サンプル・スプール・ファイルは、オーバーレイフォームを作成する都度、対象のスプールデータから作成す
る必要があります。
サンプル・スプール・ファイルの作成要領は、マニュアル「サンプル・スプール・ファイルの作成(AS0023)」
を参照してください。
サンプル・スプール・ファイルは、メモ帳などのテキストエディタで開くことができます。
スプールのイメージそのものであることを、ご確認いただけます。
サンプル・スプール・ファイルをダウンロードする理由は、Lesson-4 の Distribution Wizard でデータ条件
設定を行う場合や、本 Lesson における Field Mapper(フィールドマッパー)の設定を行う場合に、定義作成画
面で、スプールデータのイメージを照会することで、視覚的判断を容易にするためです。
5
[ 4. フィールドマッパー(オーバーレイ定義)の定義 ]
4-1 フィールドマッパーの起動
デスクトップにあるフォルダ「WilComm 4」の中から、Field Mapper をダブルクリックします。
フィールドマッパーが起動します。
新規作成を選択します。
6
サンプル・スプール・ファイルとオーバーレイフォームの関係付けを行います。
①対象スプールファイルの最大行数
最大桁数(横幅)を指定します
④ドロップダウンリストからオーバ
②サンプルデータを使用にチェックし、
ーレイフォームを選択します。
[Browse]ボタンを押します。
Lesson-6 で保存した QPRTLIBL を
選択します。
③QPRTLIBL.MAP を選択し、
[開く]ボタンを押します。
OK ボタンを押します。
7
サンプル・スプール・ファイルの内容が表示されます。
8
4-2 単一フィールド変数へのマッピング
Lesson-6 で作成したオーバーレイフォームには、以下の名前で変数を作成しました。
I(年), 1
I(月), 1
I(日), 1
I(帳票タイトル), 1
I(ライブラリー名), 21
I(タイプ), 21
I(装置), 21
I(テキスト記述), 21
I(バーコード), 1
単一フィールド変数
テーブルフィールド変数
バーコード変数
4 つの単一フィールド変数に、スプールデータのどの位置をマッピングするかを定義します。
ライブラリー・リストの文字列をマウスでドラッグして、この
範囲を選択します。単一フィールド変数「I(帳票タイトル)」
にマッピングする予定です。
9
選択した領域に対する「新規フィールドマップの設定」ウィンドウが表示されます。
マウスでドラッグした領域の行・桁の
開始位置。幅・高さが表示されます。
ドロップダウンリストから、対象領域
ここで、値を直接修正することも可能
をセットしたいオーバーレイフォー
です。IBMi OS のバージョンによって
ムの変数名を選択します。
開始位置は異なるかもしれません。
10
以下のように、変数「I(帳票タイトル)」を選択します。
OK ボタンで、単一フィールド変数「I(帳票タイトル)」へのマッピング定義が確定します。
マッピングが確定している領域は、白く反転しています。
(注)スプールデータに出力されていても、マッピングをしていないデータは、最終アウトプットには出力され
ません。ここでマッピング定義を作成した領域の値のみが、オーバーレイフォームに出力されます。
11
同じ要領で、
「I(年)
」
「I(月)
」
「I(日)
」の 3 つの単一フィールド変数に対しても、マッピング領域を確定
してください。
「I(年)
」
行=1 桁=97 幅=2 高さ=1 の領域です。
「I(月)
」
行=1 桁=100 幅=2 高さ=1 の領域です。
「I(日)
」
行=1 桁=103 幅=2 高さ=1 の領域です。
12
4-3 テーブルフィールド変数へのマッピング
I(年), 1
I(月), 1
I(日), 1
I(帳票タイトル), 1
I(ライブラリー名), 21
I(タイプ), 21
I(装置), 21
I(テキスト記述), 21
I(バーコード), 1
単一フィールド変数
テーブルフィールド変数
バーコード変数
4 つのテーブルフィールド変数に、スプールデータのどの位置をマッピングするかを定義します。
ライブラリー一覧の繰返し行をマウスでドラッグして、この範
囲を選択します。列としてオーバーレイフォームに設定した、
テーブルフィールド変数「I(ライブラリー名)」にマッピング
する予定です。
13
選択した領域に対する「新規フィールドマップの設定」ウィンドウが表示されます。
マウスでドラッグした領域の行・桁の
ドロップダウンリストから、対象領域
開始位置。幅・高さが表示されます。
をセットしたいオーバーレイフォー
ここで、値を直接修正することも可能
ムの変数名を選択します。
です。
14
以下のように、変数「I(ライブラリー名)」を選択します。
OK ボタンで、テーブルフィールド変数「I(ライブラリー名)」へのマッピング定義が確定します。
高さ=14 になっています。
オーバーレイフォームのテーブルフィールド変数はすべて繰返し行=21 で設定しています。(Lesson-6)
上記指定の場合、テーブルフィールド変数の 15 行目から 21 行目には何もマッピングされません。
Lesson-6 及び Lesson-7 では、オーバーレイフォーム上は 21 行、マッピングは 15 行で行います。
これは、繰返し行の性質を覚えていただくために、あえて行っています。
今後、様々なオーバーレイフォームを開発していただく上で、この繰返し行は重要です。スプールデータの繰
返し行は、最高で何行になるようにプログラムが作られているかを意識する必要があるからです。
スプールデータの最高行を、オーバーレイフォーム上の変数における繰返し行として設定する必要があります。
ライブラリーリストのスプールデータは、出力したジョブ環境によっては 14 行以上出力されているかも知れ
ません。その場合は、マッピング領域を変えてください。
ただし、ライブラリー・リストを出力しているコマンドは、リストの終わりに「* * * * *
リストの終わり
* * * * *」の文字列を出力しており、出力行が可変です。
本マニュアルにおいて使用されているライブラー・リストのスプールデータの繰返し行は列ヘッダーまで含め
て 14 行です。しかし、マッピング領域を 21 行(高さ=21)で選択しますと、他のテーブルフィールド変数に予
期せぬ値がセットされてしまいます。
「* * * * *
リストの終わり
* * * * *」の文字列が位置する桁域をマッピングすると、この文字列の
一部がテーブルフィールド変数にセットされてしまうからです。
その位置が、ダブルバイト文字「終」の文字の 1 バイト目で切れてしまうようなことになると、ウィルコムは
文字の認識ができなくなり、処理することができなくなりますので、注意が必要です。
この問題はにつきましては、
「4-4 条件付きマッピング」のページで後述いたします。
ここでは、「* * * * *
リストの終わり
* * * * *」の上の行までをマッピングするようにしてください。
15
以下のように、変数「I(ライブラリー名)」にマッピングを確定した領域が、白く反転しています。
16
同じ要領で、「I(タイプ)
」「I(装置)
」
「I(テキスト記述)
」の 3 つのテーブルフィールド変数に対しても、
マッピング領域を確定してください。
「I(タイプ)
」
行=4 桁=16 幅=7 高さ=14 の領域です。
「I(装置)
」
行=4 桁=28 幅=4 高さ=14 の領域です。
「I(テキスト記述)
」
行=4 桁=39 幅=50 高さ=14 の領域です。
17
4-4 バーコード変数へのマッピング
I(年), 1
I(月), 1
I(日), 1
I(帳票タイトル), 1
I(ライブラリー名), 21
I(タイプ), 21
I(装置), 21
I(テキスト記述), 21
I(バーコード), 1
単一フィールド変数
テーブルフィールド変数
バーコード変数
バーコード変数に、スプールデータのどの位置をマッピングするかを定義します。単一フィールド変数と要領
は同じです。
IBMi OS のバージョン№をバーコードで表示することを予定し
て Lesson-6 ではオーバーレイフォームにパーコード変数を作
成しました。バージョン№部分をマウスでドラッグして、この
範囲を選択します。バーコード変数「I(バーコード)」にマッ
ピングしてください。
18
以下のように、変数「I(バーコード)」を選択します。
OK ボタンで、バーコード変数「I(バーコード)」へのマッピング定義が確定します。
マッピングが確定している領域は、白く反転しています。
以上で予定していたマッピング定義は確定しました。結果を先に確認するためには「4-5 マッピング定義の保
管」に進んでいただいても結構です。Lesson-4 DistributionWizard で作成した配信定義のオーバーレイフォ
ーム名、フィールドマップ名を変更すれば、テストが可能です。
19
4-5 条件付きマッピング
Lesson-7 で予定しているマッピングは P19 までで終了しました。
ここでは、補足的な情報として「条件付きマッピング」について解説します。
ここまで学習してきたマッピングは、ダイレクトマッピングと呼ばれるもので、スプールデータの指定した領
域は、無条件にマッピングされます。
それに対して、条件付きマッピングは、スプールデータ内の指定した位置の値に従ってマッピングするといっ
たように、マッピング動作に条件付けをすることができます。
「4-3 テーブルフィールド変数へのマッピング」では、明細部の繰替し行に出力される「* * * * *
の終わり
リスト
* * * * *」の文字列が問題となりました。
マッピングする明細部の繰返し行数を、フォームに合わせて 21 行とした場合に、21 行に満たないスプールデ
ータを処理すると、出力位置が可変である「* * * * *
リストの終わり
* * * * *」の文字列が、テー
ブルフィールド変数に対して、予期せぬ値としてマッピングされてしまいます。
「* * * * *
リストの終わり
* * * * *」の文字列はオーバーレイフォームには出力したくないかもし
れません。
ウィルコムは、繰返しの明細行に項目(列)とは関係のない文字列が、可変位置で出力されているようなスプー
ルデータを処理する場合、マッピングに工夫が必要になります。
できれは、スプールデータの明細部には、可変出力をしないように、プログラム設計することが望ましいと言
えます。
しかし、既に設計済みのプログラムで改訂することが困難な場合もあるかも知れません。
そこで、マッピング領域に「* * * * *
リストの終わり
* * * * *」の文字列が出力されても、この行
は、オーバーレイフォーム上のテーブルフィールド変数にマッピングしないように設定できれば、良いことに
なります。
言い換えれば、「* * * * *
リストの終わり
* * * * *」の文字列がない行に関してのみ、テーブルフィ
ールド変数にマッピングをするという条件付けができれば良いことになります。
20
マッピングが確定している領域は、白く反転しています。
白く反転した領域でダブルクリックすると、マッピング情報を修正することができます。
変数「I(ライブラリー名)」を条件付きマッピングによって、21 行マッピングに修正してみましょう。
「条件付きマッピング」にチェックして「条件設定」ボタンを押します。
21
スプールデータ内の、
「どのような値が、どの位置に出力されていた場合に・・・」といった条件付けをする
条件設定画面です。
「* * * * *
リストの終わり
* * * * *」の文字列は、出力行が可変ですが、出力開始位置は同じです。
27 桁目から 39 バイト幅で出力されます。
つまり、27 桁目から 39 バイト幅に「* * * * *
リストの終わり
* * * * *」の文字列が無い場合にマッ
ピングする定義にすると良いことになります。(IBMi OS のバージョンによって、開始位置が異なる場合があ
りますので、スプールデータを確認してください。)
比較領域の位置を指定するために以下のボタンを押します。
桁=27 幅=39 を指定して、OK ボタンを押します。
22
比較する値を指定します。
以下の値を指定します。
* * * * *
リストの終わり
* * * * *
比較条件で、<> を選択します。(ノット・イコール)
OK ボタンを押します。
23
マッピングの条件付けが確定しました。
これで、21 行マッピングに修正しても、
「* * * * *
リストの終わり
* * * * *」の文字列は出力されな
くなります。
高さ=21 に修正し、OK ボタンで確定します。
他のテーブルフィールド変数についても、同様の条件付けを実施してください。
以上のように、スプールデータ内に出力されている文字列から判断して、マッピングする条件付けをすること
ができました。
24
4-5 マッピング定義の保管
定義しましたマッピング情報を保管します。
[ファイル]→[名前を付けて保存]を実行します。
フィールドマップ名にはマッ
ピングで使用されたフォーム
名が自動的に設定されます。
管理上、フィールドマップ名はフォーム名と同じ名前を使用します。
上記画面では何も変更をしないで[保存]ボタンを押します。
25
拡張子が「fmp」ファイルが、ウィルコムサーバーの以下のパスに保管されていることを確認してください。
拡張子が「fmp」ファイルが、マッピング定義が保管されたファイルです。(QPRTLIBL.fmp)
ウィルコム・サーバーの場合は、必ず以下のフォルダーに保管してください。(トライブ名は、環境によって読み替
えてください)
[32bit 版 Windows の場合]
C:\Program Files\Wilkinson\WilComm 4\WilForm\ FieldMap Files
[64bit 版 Windows の場合]
C:\Program Files (x86)\Wilkinson\WilComm 4\WilForm\ FieldMap Files
マッピング定義は完成しました。お疲れ様でした。
26