SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

ComponentZine(PlusPak)

バーコード作成.NETアプリケーションを作る

PlusPak for Windows Forms 5.0JのGcBarCodeコンポーネントを使ったアプリケーションの作成

  • X ポスト
  • このエントリーをはてなブックマークに追加

 PlusPak for Windows Forms 5.0JのGcBarCodeコンポーネントを使うと、バーコードを簡単に作成できます。今回は、商品の倉庫管理用バーコードを作成するアプリケーションを作ってみました。

  • X ポスト
  • このエントリーをはてなブックマークに追加

はじめに

 PlusPak for Windows Forms 5.0JのGcBarCodeコンポーネントを使うと、バーコードを簡単に作成できます。今回は、商品の倉庫管理用バーコードを作成するアプリケーションを作ってみました。

 このアプリケーションでは、倉庫、棚、商品の各番号を組み合わせてバーコードを作成します。作成したバーコードは、ビットマップ画像として保存されるので、Excelやデータベースなどのアプリケーションで一括管理できます。

倉庫、棚、商品の各番号を組み合わせてバーコードを作成する
倉庫、棚、商品の各番号を組み合わせてバーコードを作成する
作成したバーコードはビットマップ画像で保存される
作成したバーコードはビットマップ画像で保存される

対象読者

 Visual Basic 2005・2008またはVisual C# 2005・2008を使ってプログラムを作ったことのある人。

必要な環境

 Visual Basic 2005、2008またはVisual C# 2005、2008、Visual Studio 2005、2008でプログラムが作れる環境。

 なお、本プログラムはWindows Vista上で動作するVisual Studio 2005を使用して作成し、動作確認を行っています。

プログラム実行時の注意事項

 PlusPak for Windows Forms 5.0Jを使って作成したアプリケーションを配布する場合、PlusPak for Windows Forms 5.0Jのアセンブリファイルを添付する必要があります。これは、Common Language RuntimeのDLLをアプリケーションと一緒に配布するのと同じです。

 本記事のサンプルアプリケーションを正常に動作させるためには、次の4ファイルをインストールする必要があります。

ファイル名 説明
GrapeCity.Win.PlusPak.v50.dll 本体コンポーネント
GrapeCity.Framework.PlusPak.v20.dll 製品のフレームワーク
GrapeCity.Win.PlusPak.v50.resources.dll 本体コンポーネントのサテライトリソース
GrapeCity.Framework.PlusPak.v20.resources.dll 製品フレームワークのサテライトリソース

 これらのファイルを、プログラムを実行するBinフォルダに格納します。.NET Framework 2.0から追加されたクラスやメンバを使用しているので、.NET Framework 2.0がインストールされていることが必須条件です。

コントロールのインストール

 はじめてPlusPak for Windows Forms 5.0Jを使用する方は、Visual Studio、Visual Basic、Visual C#の開発環境にPlusPak for Windows Forms 5.0Jをインストールする必要があります。インストーラは、グレープシティのWebページからダウンロードできます。

 ユーザー情報を登録すると送られてくるメールに、ダウンロード用のURLが記載されているので、ここからダウンロードしてインストールしてください。ファイルはzip形式で圧縮されています。

 有償のコントロールですが、プロダクトキーを入力せずにインストールすることで、トライアル版として使用できます。制限事項などの詳細については、インストーラに同梱されているリリースノートを参照ください。

コントロールの追加

 PlusPak for Windows Forms 5.0Jをインストールしたら、ツールボックスに専用のタブを作成し、使用するコントロールを追加します。追加するコントロールは、「.NET Frameworkコントロール」のアセンブリ名が「GrapeCity.Win.PlusPak」で始まるコントロール「GcBarCode」です。

アセンブリ名が「GrapeCity.Win.PlusPak」で始まる「GcBarCode」コントロールを選択する
アセンブリ名が「GrapeCity.Win.PlusPak」で始まる「GcBarCode」コントロールを選択する

GUIのデザイン

 今回使用するコントロールです。GcBarCodeコンポーネント以外は、標準コントロールで構成します。

GUIで使用するコントロール
GUIで使用するコントロール

GcBarCodeコンポーネントについて

 GcBarCodeコンポーネントは、バーコードを作成するコントロールです。チェックデジットの自動計算、サイズ設定や回転処理、データ連結など多彩な機能を備えており、数値と種類の指定のみで簡単にバーコードを出力できるのが特徴です。また、解像度にあわせて最適なバーコードイメージを生成することにより、高い読み取り率を実現しています。

 GcBarCodeコンポーネントは、次のバーコードの種類に対応しています。

  • Code39(FullAscii)
  • Code49
  • Code93
  • Code128
  • EAN8
  • EAN13
  • EAN128
  • ITF
  • NW-7(Codabar)
  • PDF417
  • PostNet
  • QRコード
  • UPC(A/E add 2/5)
  • カスタムバーコード(郵便バーコード)

 今回は、一般的によく使われている横棒型のバーコードで、13桁の数字でコードを表す「JAN13」タイプのバーコードを作成します。

 一般的に流通している商品は、バーコードの先頭に日本の国籍を表すコード(49または45)やカンパニーコードを付加していますが、このアプリケーションでは社内の管理用に使用するということにし、国籍コードやカンパニーコードは入れず、倉庫の番号と棚番号、商品番号からバーコードを作成するという単純な機能にしています。

 GcBarCodeコンポーネントの使い方は簡単です。Typeプロパティに作成するバーコードのタイプを次の定数から選びます。

メンバ名 説明
6 - JAN8 JAN/EAN 8桁バーコード
7 - JAN13 JAN/EAN 13桁バーコード
8 - EAN128 UCC/EAN128バーコード
1 - Code39 CODE39(フルアスキーもサポート)
4 - Code93 CODE93
5 - Code128 CODE128
9 - ITF ITF(Interleaved 2of5)
10 - PostNet POSTNET(USで使用される郵便バーコード)
13 - UPC UPC(A/E/アドオンにも対応)
17 - NW7 NW-7(CODABAR)
18 - JapanesePostal 郵便バーコード
3 - Code49 Code49
19 - PDF417 PDF417(簡易版も対応)
20 - QRCode QRCode(Model1/2に対応)

 そして、Valueプロパティにバーコードにする値を設定します。

 実際にバーコードを作成するのは、CreateBitmapまたはCreateMetafileメソッドを使用します。CreateBitmapメソッドはバーコードをビットマップ形式で、CreateMetafileメソッドはメタファイル形式で、画像イメージファイルとして出力します。

 このプログラムでは、バーコードをビットマップ形式で保存するようにします。

コードの作成

 コーディングはそんなに難しくありません。2つのComboBoxとTextBoxコントロールの値を連結し、GcBarCodeコンポーネントのValueプロパティにセットします。そして、CreateBitmapメソッドを実行し、バーコードをビットマップに保存します。

 保存するファイル名は、「BarCode1.bmp」「BarCode2.bmp」と、バーコードを連続して作成できるように連番を振ったファイル名にします。

 CreateBitmapメソッドは、引数に画像解像度のDPI値を指定できますので、ここでは120DPIのビットマップファイルを作成するようにしています。作成したビットマップはImageオブジェクトとして変数に格納し、Saveメソッドを実行してファイルに保存します。

 なお、コード作成の際は、GrapeCity.Win.BarCode名前空間をインポートしてください。

Visual Basic
Imports GrapeCity.Win.BarCode

Public Class Form1

    Private icount As Integer = 1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        With Me.ComboBox1.Items
            .Add("101")
            .Add("102")
            .Add("103")
            .Add("201")
            .Add("202")
            .Add("203")
            .Add("301")
            .Add("302")
        End With

        With Me.ComboBox2.Items
            .Add("01")
            .Add("02")
            .Add("03")
            .Add("04")
            .Add("05")
            .Add("06")
        End With
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim codenumber As String

        codenumber = ComboBox1.Text & ComboBox2.Text & TextBox1.Text
        TextBox2.Text = codenumber
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        With GcBarCode1
            .Type = GrapeCity.Win.BarCode.ValueType.BarType.JAN13
            .Value = TextBox2.Text
        End With

        Dim imgBarcode1 As Image = GcBarCode1.CreateBitmap(120)
        Dim fname As String = "j:\barcode\BarCode" & icount & ".bmp"

        imgBarcode1.Save(fname, System.Drawing.Imaging.ImageFormat.Bmp)
        icount += 1
    End Sub
End Class
C#
using GrapeCity.Win.BarCode;

namespace mybarcode_cs
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private int icount = 1;

        private void Form1_Load(object sender, EventArgs e)
        {
            comboBox1.Items.Add("101");
            comboBox1.Items.Add("102");
            comboBox1.Items.Add("103");
            comboBox1.Items.Add("201");
            comboBox1.Items.Add("202");
            comboBox1.Items.Add("203");
            comboBox1.Items.Add("301");
            comboBox1.Items.Add("302");

            comboBox2.Items.Add("01");
            comboBox2.Items.Add("02");
            comboBox2.Items.Add("03");
            comboBox2.Items.Add("04");
            comboBox2.Items.Add("05");
            comboBox2.Items.Add("06");
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string codenumber;

            codenumber = comboBox1.Text + comboBox2.Text + textBox1.Text;
            textBox2.Text = codenumber;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            gcBarCode1.Type = GrapeCity.Win.BarCode.ValueType.BarType.JAN13;
            gcBarCode1.Value = textBox2.Text;

            Image imgBarcode1 = gcBarCode1.CreateBitmap(120);
            string fname = "j:/barcode/BarCode" + icount + ".bmp";

            imgBarcode1.Save(fname, System.Drawing.Imaging.ImageFormat.Bmp);
            icount++;
        }
    }
}

Service Pack 1について

 なお、PlusPak for Windows Forms 5.0Jの最新版であるSP1では、新たに「GS1 DataBar」(RSSシンボル)にも対応しています。これにあわせ、Typeプロパティに次のものが追加されています。

追加内容
メンバ名 説明
22 - RSS14 RSS14(GS1 DataBar)
24 - RSS14Stacked RSS14 Stacked(GS1 DataBar Stacked)
25 - RSS14StackedOmnidirectional RSS14 Stacked Omnidirectional(GS1 DataBar Stacked Omnidirectional)
23 - RSS14Truncated RSS14 Truncated(GS1 DataBar Truncated)
26 - RSSExpanded RSS Expanded(GS1 DataBar Expanded)
27 - RSSExpandedStacked RSS Expanded Stacked(GS1 DataBar Expanded Stacked)

まとめ

 GcBarCodeコンポーネントは、サンプルプログラムを見てお分かりのように、とても簡単にバーコードを作成します。在庫管理や売り上げ管理、固定資産管理など、今やバーコードは当たり前のようになっているので、バーコード作成のアプリケーションを自社開発するのであれば、このGcBarCodeコンポーネントはとても大きな威力を発揮すると思います。

 今回は、ドロップダウンリストから倉庫・棚・商品の番号からバーコードを作成する簡単な機能にしていますが、バーコードにするデータをExcelのワークシートで一覧表にし、一気にバーコードを作成する、などということも可能です。ぜひ試してみてください。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/3345 2009/03/17 12:13

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング