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

<この項の構成>
(1) バーコードの定義
(2) バーコードの論理マップ生成規則
(3) バーコードのマッピング規則

(1) バーコードの定義

バーコードをドローで定義することで生成されます。

(2) バーコードの論理マップ生成規則

バーコードの論理マップ生成規則について説明します。

《COBOL》
  • 出力バーコードの場合

    [図データ]

  • 連結出力バーコードの場合

    [図データ]

《C言語》
  • 出力バーコードの場合

    [図データ]

  • 連結出力バーコードの場合

    [図データ]

(3) バーコードのマッピング規則

バーコードのマッピング規則について説明します。

《APが出力項目データ名の領域に代入した内容と結果》
  • JAN,CODE39,NW-7,ITFの場合
    APが出力項目データ名の領域に代入した内容結果
    すべてデータの場合代入されたデータに対応するバーコードを印字します。
    先頭1文字がデータ有無コードデータ有無コード(1F)16を仮定した場合
    例として,X'1F414234'またはX'1F1F1F'のようなデータが該当します。このときは,何も印字しません。
    データの後半にデータ有無コードデータ有無コード(1F)16を仮定した場合
    例として,X'4142431F1F'のようなデータが該当します。この場合,データ有無コード以前のデータに対応するバーコードを印字します。
    バーコードの種類によって,何も印字されない場合があります。
  • カスタマバーコードの場合
    APが出力項目データ名の領域に代入した内容結果
    すべて
    データ
    の場合
    (22文字)
    すべて正しいデータ代入されたデータに対するバーコードを印字します。
    すべて空白((20)16),NULL((00)16すべて制御コード(CC4)で印字します。
    データの途中が空白((20)16)またはNULL((00)16空白((20)16)またはNULL((00)16)の部分は,制御コード(CC4)で印字します。
    データの途中およびすべて不当データ何も印字しません。
    先頭1文字がデータ有無コードデータ有無コード(1F)16を仮定した場合
    例として,X'1F414243'またはX'1F1F1F'のようなデータが該当します。この場合,何も印字しません。
    データの後半にデータ有無コードデータ有無コード(1F)16を仮定した場合
    例として,X'4142431F1F'のようなデータが該当します。この場合,何も印字しません。
    注※
    カスタマバーコードのデータについては,「4.2.9(9) カスタマバーコードのチェックデジット計算方法」を参照してください。

  • EAN-128の場合
    一つのバーコードデータが複数の項目から成る場合,項目単位にマッピングし,その結果を連結して一つのバーコードを印字します。次の表では,項目単位のマッピング規則について説明します。
    APが出力項目データ名の領域に代入した内容結果
    すべて
    データ
    の場合
    すべて正しいデータコードセットの指定がBまたはCの場合
    代入されたデータの先頭にコードセットの制御コード(CodeBまたはCodeC)※1を付けて,対応するバーコードを印字します。
    コードセットの指定が継続の場合
    代入されたデータに対応するバーコードを印字します。
    すべて空白((20)16)またはNULL((00)16コードセットの指定がBまたはCの場合
    コードセットの制御コード(CodeBまたはCodeC)※1に対応するバーコードを印字します※2
    コードセットの指定が継続の場合
    何も印字しません※3
    データの途中およびすべて不当データ何も印字しません※4
    先頭1文字がデータ有無コードデータ有無コード(1F)16を仮定した場合
    例として,X'1F414243'のようなデータが該当します。
    コードセットの指定がBまたはCの場合
    コードセットの制御コード(CodeBまたはCodeC)※1に対応するバーコードを印刷します※2
    コードセットの指定が継続の場合
    何も印字しません※3
    データの後半にデータ有無コードデータ有無コード(1F)16を仮定した場合
    例として,X'4142431F1F'のようなデータが該当します。
    コードセットの指定がBまたはCの場合
    代入されたデータの先頭にコードセットの制御コード(CodeBまたはCodeC)※1を,データ有無コード以前のデータ末尾に制御コード(FNC1)※1を付けて,対応するバーコードを印字します。
    コードセットの指定が継続の場合
    データ有無コード以前のデータ末尾に制御コード(FNC1)※1を付けて,対応するバーコードを印字します。
    注※1
    制御コードは一つだけ付けます。データ文字には出力されません。
    注※2
    すべての項目に対して,すべて空白,すべてNULLまたは先頭1文字にデータ有無コードが指定されている場合,何も印字しません。
    注※3
    ほかの項目データのマッピング結果でバーコードを印字します。
    注※4
    不当データが含まれている場合,ほかの項目データの内容に関係なくバーコードを印字しません。

 

なお,EAN-128バーコードとして印字するバーコードは,APから指定されたバーコードの桁数の総和が2以上の場合だけ印字されます。ここで,バーコードの桁数とは,APから指定されたデータのうち,バーコードパターンとならないデータ※1を除いた次のデータの総和です。

注※1
コードセットCの項目に指定された(,),-,空白。
注※2
各項目で連続するコードセットCの項目のデータ桁数総和が偶数でない(2で割り切れない)場合,データ不正となり,バーコードは破棄されます。

APからの指定データによって印字されないで,破棄されるケースの例を次に示します。