Barcodeコントロールで、カスタマバーコード(郵便バーコード)を出力する方法 【※サンプル有り】
対象製品
ActiveReports for .NET 7.0J
詳細
セクションレポートの場合は、BarcodeコントロールのStyleプロパティを、ページレポートの場合は、BarcodeコントロールのSymbologyプロパティを、それぞれ"JapanesePostal"に設定した上で、以下の内容にしたがって使用してください。
セクションレポートの場合は、Textプロパティにセットするか、DataFieldプロパティを設定してデータソースにバインドさせてください。
ページレポートの場合は、Valueプロパティにセットして下さい。
郵便番号と住所表示番号からカスタマバーコード用キャラクタの情報を抜き出す方法につきましては、日本郵政株式会社の下記ページの「6.バーコードに必要な文字情報の抜き出し法」をご参照ください。
[郵便番号制マニュアル]
http://www.post.japanpost.jp/zipcode/zipmanual/index.html
たとえば、以下のようなデータをBarcodeコントロールにセットします。
スタート/ストップコード、空白のCC4、チェックデジットは、Barcodeコントロールによって自動的に付加されます。また、アルファベットを出力する場合、「"英数字制御コード"(CC1~CC3) + "数字"(0~9)」に変換する必要がありますが、この変換処理もBarcodeコントロールによって自動的に行われます。これらのコードを考慮する必要は特にありません。
(1)20文字以下
(2)a~z、A~Z、0~9、-(半角ハイフン)のみ
上記の条件以外のデータをセットした場合、Barcodeコントロールが正常に出力されません。
Barcodeコントロールでカスタマバーコードを正常に出力するには、データが上記の条件を満足するかどうかをチェックする必要があります。
たとえば以下のコードでは、変換したカスタマバーコード用キャラクタの正当性を正規表現を用いてチェックしています。
◆サンプルコード(VB.NET)
◆サンプルコード(C#)
また、以下のような場合は、カスタマバーコードの一部が自動的に切り捨てられます。ご注意ください。
[JPAddress for .NET|日本仕様の住所検索ライブラリ]
JPAddressを使用してカスタマバーコードを生成する方法は、レポート形式によって異なります。
◆サンプルコード(VB.NET)
◆サンプルコード(C#)
PowerTools ActiveReports for .NET 7.0J
- ActiveReportsユーザーガイド
- 概念
- ページレポートの概念
- ページレポートでスクリプトの使用
- カスタムアセンブリの作成
GrapeCity.Win.JPAddress.GcJPAddressクラスへの参照を追加し、BarcodeコントロールのValueプロパティに以下のような式を設定することで、カスタマバーコードを生成することができます。
=Code.gcJPAddress1.GetPostalBarCodeValue("宮城県仙台市泉区紫山3-1-4 グレープビル2F")
以下のリンクから、JPAddressを用いてカスタマバーコードを生成するサンプルプロジェクトをダウンロードすることができます。こちらもご参考ください。
※サンプルを実行するにはJPAddress for .NET 1.0J(1.0.2012.1121)が環境にインストールされている必要があります。
サンプルはこちらへ
- Barcodeコントロールにセットするカスタマバーコード用キャラクタについて
- Barcodeコントロールでカスタマバーコードを出力する際の注意事項
- JPAddressを使用してカスタマバーコードを出力する方法について
Barcodeコントロールにセットするカスタマバーコード用キャラクタについて
BarCodeコントロールを使用して、カスタマバーコード(郵便バーコード)を出力するには、郵便番号と住所表示番号から生成されたカスタマバーコード用キャラクタをセットする必要があります。セクションレポートの場合は、Textプロパティにセットするか、DataFieldプロパティを設定してデータソースにバインドさせてください。
ページレポートの場合は、Valueプロパティにセットして下さい。
郵便番号と住所表示番号からカスタマバーコード用キャラクタの情報を抜き出す方法につきましては、日本郵政株式会社の下記ページの「6.バーコードに必要な文字情報の抜き出し法」をご参照ください。
[郵便番号制マニュアル]
http://www.post.japanpost.jp/zipcode/zipmanual/index.html
たとえば、以下のようなデータをBarcodeコントロールにセットします。
元となる住所データ | Barcodeコントロールにセットする値 |
---|---|
〒981-3205 宮城県仙台市泉区紫山3-1-4 グレープビル2F | 98132053-1-4-2 |
〒981-3205 宮城県仙台市泉区紫山3-1-4 グレープビルA棟101 | 98132053-1-4A101 |
スタート/ストップコード、空白のCC4、チェックデジットは、Barcodeコントロールによって自動的に付加されます。また、アルファベットを出力する場合、「"英数字制御コード"(CC1~CC3) + "数字"(0~9)」に変換する必要がありますが、この変換処理もBarcodeコントロールによって自動的に行われます。これらのコードを考慮する必要は特にありません。
Barcodeコントロールでカスタマバーコードを出力する際の注意事項
Barcodeコントロールをカスタマバーコードとして使用する場合、セットできるカスタマバーコード用キャラクタには、以下のような条件があります。(1)20文字以下
(2)a~z、A~Z、0~9、-(半角ハイフン)のみ
上記の条件以外のデータをセットした場合、Barcodeコントロールが正常に出力されません。
Barcodeコントロールでカスタマバーコードを正常に出力するには、データが上記の条件を満足するかどうかをチェックする必要があります。
たとえば以下のコードでは、変換したカスタマバーコード用キャラクタの正当性を正規表現を用いてチェックしています。
◆サンプルコード(VB.NET)
Private Function chkBarCode(ByVal BarcodeChar As String) As Boolean
Dim regex As New System.Text.RegularExpressions.Regex("[^a-zA-Z0-9-]")
' a~z、A~Z、~、-(半角ハイフン)以外の
' 不正な文字が含まれているかをチェックします。
If (regex.IsMatch(BarcodeChar) = True) OrElse (BarcodeChar.Length > 20) Then
' 不正な文字が含まれているか、
' データが20文字を超える場合、
' Falseを返却します
Return False
Else
' 不正な文字が含まれておらず、
' データが20文字以内の場合、
' Trueを返却します
Return True
End If
End Function
Dim regex As New System.Text.RegularExpressions.Regex("[^a-zA-Z0-9-]")
' a~z、A~Z、~、-(半角ハイフン)以外の
' 不正な文字が含まれているかをチェックします。
If (regex.IsMatch(BarcodeChar) = True) OrElse (BarcodeChar.Length > 20) Then
' 不正な文字が含まれているか、
' データが20文字を超える場合、
' Falseを返却します
Return False
Else
' 不正な文字が含まれておらず、
' データが20文字以内の場合、
' Trueを返却します
Return True
End If
End Function
◆サンプルコード(C#)
private bool chkBarCode(string BarcodeChar)
{
System.Text.RegularExpressions.Regex regex =
new System.Text.RegularExpressions.Regex("[^a-zA-Z0-9-]");
// a~z、A~Z、~、-(半角ハイフン)以外の
// 不正な文字が含まれているかをチェックします。
if ((regex.IsMatch(BarcodeChar) == true) || (BarcodeChar.Length > 20))
{
// 不正な文字が含まれているか、
// データが20文字を超える場合、
// Falseを返却します
return false;
}
else
{
// 不正な文字が含まれておらず、
// データが20文字以内の場合、
// Trueを返却します
return true;
}
}
{
System.Text.RegularExpressions.Regex regex =
new System.Text.RegularExpressions.Regex("[^a-zA-Z0-9-]");
// a~z、A~Z、~、-(半角ハイフン)以外の
// 不正な文字が含まれているかをチェックします。
if ((regex.IsMatch(BarcodeChar) == true) || (BarcodeChar.Length > 20))
{
// 不正な文字が含まれているか、
// データが20文字を超える場合、
// Falseを返却します
return false;
}
else
{
// 不正な文字が含まれておらず、
// データが20文字以内の場合、
// Trueを返却します
return true;
}
}
また、以下のような場合は、カスタマバーコードの一部が自動的に切り捨てられます。ご注意ください。
- 文字列中にアルファベットが含まれていた場合
2キャラクタ分のデータ(制御コード+数字データ)が出力されますが、それによってはみ出してしまった分は、自動的に切り捨てられ、出力されません。
(例)
"ABCDEFGHIJKLMNOPQRST" の場合
"(CC1)0(CC1)1(CC1)2(CC1)3(CC1)4(CC1)5(CC1)6(CC1)7(CC1)8(CC1)9"
が出力される
- 20~21桁目がアルファベットになる場合
最終桁は制御コードとなり、21桁目の数字データは自動的に切り捨てられ、出力されません。
(例)
"1234567890A1234567B" の場合
"1234567890(CC1)01234567(CC1)"が出力される
JPAddressを使用してカスタマバーコードを出力する方法について
弊社製品の住所検索ライブラリである「JPAddress」を使用することにより、わずかなコーディングで住所情報からカスタマバーコードを生成することが可能です。JPAddressは自動的に、上記で紹介したような複雑な変換やチェックを行ってカスタマバーコード用キャラクタを生成します。[JPAddress for .NET|日本仕様の住所検索ライブラリ]
JPAddressを使用してカスタマバーコードを生成する方法は、レポート形式によって異なります。
セクションレポートの場合
セクションレポートの場合は、JPAddressのコンポーネントをレポートに配置し、GetPostalBarCodeValueメソッドを使用することで、カスタマバーコードを生成することができます。◆サンプルコード(VB.NET)
Private Sub Detail1_Format(sender As System.Object, e As System.EventArgs) Handles Detail1.Format
Barcode1.Text = GcJPAddress1.GetPostalBarCodeValue("宮城県仙台市泉区紫山3-1-4 グレープビル2F")
End Sub
Barcode1.Text = GcJPAddress1.GetPostalBarCodeValue("宮城県仙台市泉区紫山3-1-4 グレープビル2F")
End Sub
◆サンプルコード(C#)
private void Detail_Format(object sender, EventArgs e)
{
Barcode1.Text = gcJPAddress1.GetPostalBarCodeValue("宮城県仙台市泉区紫山3-1-4 グレープビル2F");
}
{
Barcode1.Text = gcJPAddress1.GetPostalBarCodeValue("宮城県仙台市泉区紫山3-1-4 グレープビル2F");
}
ページレポートの場合
ページレポートでJPAddressのコンポーネントを使用するには、レポートにJPAddressのアセンブリ参照を追加する必要があります。アセンブリ参照を追加する具体的な手順については、製品ヘルプの以下の内容をご参照ください。PowerTools ActiveReports for .NET 7.0J
- ActiveReportsユーザーガイド
- 概念
- ページレポートの概念
- ページレポートでスクリプトの使用
- カスタムアセンブリの作成
GrapeCity.Win.JPAddress.GcJPAddressクラスへの参照を追加し、BarcodeコントロールのValueプロパティに以下のような式を設定することで、カスタマバーコードを生成することができます。
=Code.gcJPAddress1.GetPostalBarCodeValue("宮城県仙台市泉区紫山3-1-4 グレープビル2F")
以下のリンクから、JPAddressを用いてカスタマバーコードを生成するサンプルプロジェクトをダウンロードすることができます。こちらもご参考ください。
※サンプルを実行するにはJPAddress for .NET 1.0J(1.0.2012.1121)が環境にインストールされている必要があります。
サンプルはこちらへ
関連情報
キーワード
HowTo バーコード