JANコード作成プログラム[.net]

JANコード

JANコードとは、ご存じのとおり、日本で最も普及している、

商品識別コードおよびバーコードの規格のひとつです。

商品のパッケージや梱包された箱に印刷されたり、シールが貼付けられ、

商品を識別するための情報として、POSシステムや、販売管理・在庫管理等、

様々なシステムで利用されています。

構成

JANのコード体系(構成)は以下のようになっている。

標準の13桁のコードまたは、8桁の短縮のコードが存在する。

13桁

国コード(2桁) + メーカコード(5桁) + 商品コード(5桁) + チェックデジット(1桁)

国コード(2桁) + メーカコード(7桁) + 商品コード(3桁) + チェックデジット(1桁)

8桁

国コード(2桁) + メーカコード(4桁) + 商品コード(1桁) + チェックデジット(1桁)

日本の国コードは、”49″または”45″となっている。

チェックデジット

チェックデジットは、コードの入力誤りや、バーコードの読み取りミスを防止するために、

12桁のコードから算出した、誤り検出用の付加コードです。

コードを読みとった際に、再度チェックデジットを計算し、読み取ったチェックデジットと

相違がないかで確認をすることができる。

JANコードの作成

上記のように、JANコードは決められたルールを基に作成されていることがわかる。

特に、チェックデジットについては、作成した12桁のコードからさらに計算をおこない

13桁目のコードを算出することになる。

※チェックデジットの算出についてはここを参照。

そこで、簡単ではあるが、JANコード作成用のプログラムを作成してみた。

国コードは、”49″または”45″より選択し、メーカコード(5桁)、商品コード(5桁)の

タイプで入力し、”作成”ボタンを押すと、チェックデジットを計算し、13桁のJAN

コードを表示するという単純なものです。

※とりあえず最低限の対応をしてみました。

[JANコード作成]

C#.net 2008
.net framework2.0以上

コード

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace JanCodeMaker
{
public partial class frmJan : Form
{
public frmJan()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
cmbCountry.SelectedIndex = 1;
txtMaker.Text = "";
txtSyohin.Text = "";
txtJan13.Text = "";
}

private void frmJan_Shown(object sender, EventArgs e)
{
txtMaker.Focus();

}

private void frmJan_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter) {
bool forward = e.Modifiers != Keys.Shift;
this.SelectNextControl(this.ActiveControl, forward, true, true, true);
e.Handled = true;
}

}

//チェックディジットを計算する
private void btnMake_Click(object sender, EventArgs e)
{
string source = cmbCountry.Text + txtMaker.Text + txtSyohin.Text;
if (source.Length != 12) {
MessageBox.Show("12桁で入力してください。");
}

int chk1 = 3 * (Int16.Parse(source.Substring( 1, 1)) +
Int16.Parse(source.Substring( 3, 1)) +
Int16.Parse(source.Substring( 5, 1)) +
Int16.Parse(source.Substring( 7, 1)) +
Int16.Parse(source.Substring( 9, 1)) +
Int16.Parse(source.Substring(11, 1)));
int chk2 = 1 * (Int16.Parse(source.Substring( 0, 1)) +
Int16.Parse(source.Substring( 2, 1)) +
Int16.Parse(source.Substring( 4, 1)) +
Int16.Parse(source.Substring( 6, 1)) +
Int16.Parse(source.Substring( 8, 1)) +
Int16.Parse(source.Substring(10, 1)));
int chk3 = 10 - ((chk1 + chk2) - (((chk1 + chk2) / 10) * 10));

if (chk3 == 10) { chk3 = 0; }
txtJan13.Text = source + chk3.ToString();
//MessageBox.Show(chk1.ToString() + "/" + chk2.ToString() + "/" + chk3.ToString());
}

}
}

Struts2 最初のアプリケーション

ADODB.Recordeset をXMLデータから生成する

関連記事

  1. twitterアプリケーション

    twitterと連携するアプリケーション作成のためのAPI群です。O…

  2. Struts2 RequestDispatche…

    getRequestDispatcher fowardStrutsを…

  3. C# – TransactionSc…

    業務アプリケーションにデータベース処理はつきもので、さらにデータベー…

  4. Struts2サンプル 掲示板アプリケーション

    はじめに今回はStruts2を利用した、より実践的なアプリケーション…

  5. Struts2 最初のアプリケーション

    Zero Configurationそれでは、Struts2での最初…

  6. 続 Struts 2入門

    CodeZineで、Struts2入門(1)~(8) の続編、続 S…

  7. Java SE 8 実践プログラミング

    発売日:2014年09月著者/編集:ケイ・S.ホーストマン,?柴田芳…

  8. Struts2 の脆弱性を悪用した攻撃の急増

    Webアプリケーションフレームワークで有名になったなStrutsの後継、…

最近の記事

  1. Microsft .NET C#
  2. れいといちかとまほうのトンネル
PAGE TOP