コンビニエンスストアでの料金収納サービスで使用されている、GS1-128(コンビニバーコード、旧称UCC/EAN-128)バーコードには対応していますか?

文書番号 : 37773     文書種別 : 使用方法     登録日 : 2015/05/11     最終更新日 : 2015/05/11
文書を印刷する
対象製品
ActiveReports for .NET 9.0J
詳細
BarcodeコントロールのStyleプロパティ(ページレポート/RDLレポートの場合、Symbologyプロパティ)を"EAN128FNC1"に設定することで、GS1-128(コンビニバーコード、旧称UCC/EAN-128)バーコードを出力することが可能です。これを使用することで、コンビニエンスストアでの料金収納サービスで使用されているような、請求書の作成が可能です。

ただし、BarcodeコントロールのStyleプロパティ等を"EAN128FNC1"に設定すれば、料金収納サービスで使用されている形式のバーコードがすべて自動的に生成されるというわけではございません。

"EAN128FNC1"に設定することで、「標準料金代理収納ガイドライン」に沿ったバーコードを出力することが可能であるに過ぎません。実際には、ガイドラインに沿うようにBarcodeコントロールのサイズや調整用のプロパティを設定する必要があります。

たとえば、ガイドラインには、「左右の余白(クワイエットゾーン)を含むバーコードのシンボル長は60mm以内とする。」とありますが、BarcodeコントロールのStyleプロパティを"EAN128FNC1"に設定すれば、幅60mmのバーコードシンボルが自動的に生成されるわけではありません。バーコードシンボルが幅60mmになるように、Barcodeコントロール自体の幅を調整する必要があります。

また、製品ヘルプの以下のトピックで案内している製品付属サンプルでは、料金収納サービス用のバーコードを出力するレポートを紹介しております。

ActiveReportsユーザーガイド
 - サンプルとチュートリアル
  - サンプル
   - レポートギャラリー サンプル

上記サンプルに含まれている「¥Reports¥Section Report¥PaymentSlip.rpx」のスクリプトコードには、料金収納サービス用バーコードを出力する際に使用するCode128Optionsクラスの3プロパティ(Dpi、ModuleSize、BarAdjustプロパティ)の設定例を紹介しております。

料金収納サービス用のバーコードを出力したい場合には、これらのプロパティを設定し、ガイドラインに沿ったバーコードシンボルが出力されるように調整する必要があります。

上記の製品付属サンプルでは各プロパティの設定をスクリプト内で行っておりますが、デザイン時にプロパティウィンドウから設定することも可能です。また、コード形式のレポートの場合、イベントコード(~.vbや~.cs)上で実装することも可能です。製品ヘルプの以下のトピックをご覧ください。

ActiveReportsユーザーガイド
 - よくある質問
  - セクションレポート
   - バーコード
    - 「GS1-128バーコードでバー幅補正やFNC1を出力する」

また、Barcodeコントロールに設定するデータは44桁固定であり、44桁目はチェックディジット(モジュラス10/ウェイト3)である必要がありますが、このチェックディジットについては、Barcodeコントロールでは自動的に算出されません。

チェックディジットを含む44桁のデータをあらかじめ用意し、Barcodeコントロールに設定する必要があります。

GS1-128形式全体としてのチェックディジット(モジュラス103)やスタート/ストップコードについては、Barcodeコントロールによって自動的に設定されます。



【Code128Optionsクラスの各プロパティに関する補足説明】

Dpiプロパティはプリンタの解像度を、ModuleSizeプロパティはバーコードのモジュール幅を設定するためのプロパティです。

流通システム開発センターから出されている「標準料金代理収納ガイドライン」にはプリンタの解像度とそれに対応する基本モジュールサイズのドット数の基準が示されておりますので、基本的にその基準に従ってこれらのプロパティを設定することになります。(前述の製品付属サンプル「PaymentSlip.rpx」のスクリプトに記載されている内容も、これらの基準を参考にしております。)

また、GS1-128形式のバーコードは、4種類の太さのバーから構成されるバーコードです。各バーの太さは基本モジュール(最小モジュール)の定数倍であり、その比率は「1:2:3:4」となります。

しかしながら、前述の「PaymentSlip.rpx」のスクリプト内の記述にもある通り、インクのにじみ等によって、上記のような比率でバーコードが印字されず、結果的に読み取り精度が低下するケースが考えられます。

このような時に黒バーの出力幅を微調整するために使用するのが、BarAdjustプロパティになります。このプロパティに、より小さな数値を設定すれば、黒バーの太さが細くなり、より大きな数値を設定すれば、黒バーの太さが太くなります。

たとえば、インクがにじむことを考慮して、あらかじめ黒バーを細く設定します。その結果、インクがにじんでも各バー幅の比率が定められた値に近くなり、読み取り精度を向上させることが可能になります。

なお、製品ヘルプの以下のトピックにあります通り、BarAdjustプロパティはDpiプロパティ、及びModuleSizeプロパティに0以外の値が設定されていなければ、有効になりません。ご注意ください。

クラスライブラリリファレンス
 - GrapeCity.ActiveReports.v9 アセンブリ
  - 名前空間
   - GrapeCity.ActiveReports.Options 名前空間
    - クラス
     - Code128Options
      - プロパティ
       - BarAdjust プロパティ

※これは、レポートの種類に関係なく、共通の仕様です。

また、実際のバーコードの読み取り精度は、Barcodeコントロールの幅や上記の各プロパティの設定以外に、使用するプリンタの解像度や、印刷用紙・インク(トナー)の品質、バーコードリーダーの仕様や性能などに依存します。

したがって、BarAdjustプロパティなどに設定する値は、常に固定の値というわけではなく、実際の環境に応じて変化する可能性があります。弊社から特定の値をご提示するものではありませんので、想定される実行環境等で実際に動作を確認し、設定すべき値を決定してください。
関連情報
キーワード
機能・仕様 セクションレポート バーコード