はじめに
DataMagic では、以下の 8 形式のデータを扱うことが出来ます。
- CSV
- フォーマット
- マルチフォーマット
- 階層フォーマット
- XML
- TEXT
- Excel
- DB テーブル
DataMagic で TEXT 形式以外のデータを扱う場合は、そのデータのレイアウトを定義して、入出力ファイルの設定に使用します。
ここでは マルチフォーマット形式 の定義を登録してみます。
今回の課題
例えば、下図のような発注書があります。
この発注書をデータ化して、商品の発注をしてもらう仕組みを作るとします。
単純に考えると、以下のフォーマットで発注に必要な情報は(多分)網羅しています。
がぁ、このフォーマットの場合、この発注書の空行の2行分もデータ量に含まれるので、空行分無駄な容量が必要になります。
マルチフォーマット形式
この発注書は下図のように、
- 赤枠 :1つしかない項目
- 緑枠 :1つ以上ある項目
に分けることができます。
そして、赤枠用、緑枠用に、それぞれ以下のようなフォーマットが定義できます。
この2つのフォーマットを組合わせる =〝マルチフォーマットで定義する〟になります。
レイアウト定義
フォーマット情報
マルチフォーマットで設定するフォーマットは、
- データ(この場合は発注書1枚分)を識別する項目
- 適用するフォーマットを区別する項目
- その他の項目
で構成されるのが普通です。
今回の発注書のフォーマットの場合は、
- データを識別する項目 =[発注元][発注年月日][発注書No.]
- フォーマットを区別する項目 =[区分]
を、組み合わせるフォーマットの頭(赤点線内)に定義し、後ろにフォーマット毎の項目を設定します。
マルチフォーマット情報
上記のフォーマットを登録し、〝開始位置〟と〝長さ〟を設定します。
使用するフォーマットを区別する項目は[区分]なので、区分の開始位置から、任意のバイト数(長さ)を設定します。
この発注書のフォーマットの区別は、キー値の「0」「1」で区別させるので、キー区分は〝Character〟で。
シンプルなマルチフォーマットなら、これだけで設定完了!です。
思ったより簡単でしょ。以上です。





