シーオーリポーツ的便利機能(2)

みなさま、こんにちは。しむぅです。

過去(2001年~2003年)にメールニュースにて配信された「シーオーリポーツ的便利機能」を掲載していきます。
現行の製品と動作が異なる場合もあります。ご了承ください。

現在、UCC/EAN-128という仕様名称は、2006年1月からGS1-128に変更されています。

benri_title11

EAN-128 バーコードの使用方法

師匠!シーオーリポーツで EAN-128が使えるんですか?
うむ。ところで EAN-128 とはなんぞや?
日本では企業間の商品統一コードとして JANコードと呼ばれるバーコードが広く普及しています。しかし、この JANコードでは『A会社のB製品』を示すだけです。そこで国際 EAN 協会が中心となって、更なる効率化を目指して商品コードおよび商品関連情報までをバーコードに盛り込めるように標準化したものが EAN-128です。
ふむふむ。そうゆうことじゃったのか。
えっ?
フォームエディタでのレイアウト設計
EAN-128 は、商品コードおよび商品関連情報などを CODE128 を使い表現したものなので CODE128 のバーコードフィールドを貼り付けてください。
使い方-その1-
  • 出力データ
    (01)94901234567894(3101)000355
  • プログラム 
    
    Dim bData1() As Byte
    ' キャラクタセットC EAN-128であることを示す「FNC1」
    '  ↓   ↓
    bData1 = ChrB(204) & ChrB(241) & _
       StrConv("01949012345678943101000355", vbFromUnicode)
    .CrObjects("EAN-128_1").Text = bData1
    
例2
  • 出力データ
    (01)04912345678904(17)990101(10)ABC123
  • プログラム
    
    Dim bData2() As Byte
    ' キャラクタセットC EAN-128であることを示す「FNC1」
    '  ↓   ↓
    bData2 = ChrB(204) & ChrB(241) & _
       StrConv("01049123456789041799010110", vbFromUnicode) & _
       ChrB(203) & StrConv("ABC123", vbFromUnicode)
    '  ↑
    ' キャラクタセットB
    .CrObjects("EAN-128_2").Text = bData2
    
EAN-128であることを示す「FNC1」がポイントですな。
師匠!困ったことにASPではこの方法が使えないんです。
それはいったい、どうしたことじゃ?
実は、ASPではバイト配列が使えないんです。
では、ASPでは使えないと申すのか?
だいじょ~ぶ。まぁ~かせて!!今回のリビジョンアップでASPでも EAN-128 が作成できるように・・・って作ったのは師匠でしょ!
最近物忘れがひどくてのぉ~、ふぉっふぉっふぉっふぉっふぉ
ASPで使えるように、次のように特殊キャラクタを文字列でも指定できるようになったわけですね。
そうなんじゃ。
特殊キャラクタの文字列指定
  • FNC1 = "¥F1"
  • FNC2 = "¥F2"
  • FNC3 = "¥F3"
  • FNC4 = "¥F4"
  • SHIFT = "¥SF"
  • CODE A = "¥CA"
  • CODE B = "¥CB"
  • CODE C = "¥CC"
  • ¥ = "¥¥"
使い方-その2-
例1
  • 出力データ
    (01)94901234567894(3101)000355
  • プログラム
    
    Dim sData1
    '  キャラクタセットC
    '   ↓ EAN-128であることを示す「FNC1」
    '   ↓ ↓
    sData1 = "¥CC¥F1" & "01949012345678943101000355"
    .CrObjects("EAN-128_2").Text = sData1
例2
  • 出力データ
    (01)04912345678904(17)990101(10)ABC123
  • プログラム
    
    Dim sData2
    '  キャラクタセットC
    '   ↓ EAN-128であることを示す「FNC1」
    '   ↓ ↓
    sData2 = "¥CC¥F1" & "01049123456789041799010110" & _
       "¥CB" & "ABC123"
    '   ↑
    ' キャラクタセットB
    .CrObjects("EAN-128_2").Text = sData2
    
注意事項
  • アプリケーション識別子は( )で囲まれていますが、これは表示上の見やすさのために入っているので、バーコードデータには含まれません。
  • 現時点では、自動でEAN-128のバーコードを作成できませんので、キャラクタセット等すべて、設定しなければなりません。
もっと簡単に使えるといいのになぁ。
小人さんにお願いすれば、そのうち追加アップされているかも。
えっ?本当ですかぁ?
まぁ欠点と言えば、計算間違いをすることぐらいかな?
・・・。