PlusPakと連携した郵便バーコードの出力
PlusPakとJPAddressを組み合わせることで、住所情報から郵便バーコードを生成することができます。
郵便バーコードを利用するには以下のように行います。
プロジェクトの作成
「JPaddressPluspakSample」という名前で、Windowsフォームアプリケーションを作成します。
![JPaddressPluspakSampleプロジェクトの作成](http://cz-cdn.shoeisha.jp/static/images/article/9557/9557_016_s.gif)
GcPostalBarCodeコントロールの追加
GcPostalBarCodeコントロールをツールボックスに追加します。
ツールボックスからGcPostalBarCodeとTextBoxコントロールを2つデザインビューから画面に配置します。
![GcPostalBarCodeとTextBoxを追加](http://cz-cdn.shoeisha.jp/static/images/article/9557/9557_024.gif)
TextBoxの入力値から郵便バーコードを生成する
TextBoxに入力された値から郵便バーコードを生成するように設定します。
GcPostalBarCodeの郵便バーコードを生成するためのソースとなる値には、郵便番号や住所を表す文字列に加えてコントロールを指定することもできます。コントロールを指定する場合はZipCodeInputControlプロパティとAddressInputControlにソースとなるコントロールを指定します。
デザインビューから配置したGcPostalBarCodeコントロールをクリックして選択状態にします。
プロパティウィンドウのZipCodeInputControlにtextBox1を指定し、AddressInputControlにtextBox2を指定します。
![ZipCodeInputControlプロパティにTextBoxを指定](http://cz-cdn.shoeisha.jp/static/images/article/9557/9557_025.gif)
![AddressInputControlプロパティにtextBox2を指定](http://cz-cdn.shoeisha.jp/static/images/article/9557/9557_026.gif)
プロジェクトをデバッグ実行し動作を確認する
「F5」キーを押してプロジェクトをデバッグ実行します。
textBox1に郵便番号(ハイフン抜き)を入力、textBox2に住所を入力すると郵便バーコードが郵便番号に合わせたコードに変化するのが確認できます。
入力例
- 郵便番号:1130033
- 住所:東京都文京区本郷7丁目3-1
![郵便番号に合わせて郵便コードが変化する](http://cz-cdn.shoeisha.jp/static/images/article/9557/9557_027.gif)
TextBoxの代わりにGcPostalを利用する
TextBoxではなく、GcPostalを郵便バーコードのソースにすることもできます。
その場合はZipCodeInputControlに指定せず、GcPostalコントロールの値が変更された際のイベント「ValueChanged」に指定したイベントハンドラー内で処理を行います。
GcPostalに郵便番号が入力された際に、住所の文字列を取得して、住所入力の補助とすることでより効率よく入力が可能になります。
GcPostalにイベントハンドラーを指定する
デザイナーから画面にGcPostalコントロールを追加します。GcPostalコントロールをクリックした状態でプロパティウィンドウの稲妻アイコンをクリックしてイベントを表示します。
![稲妻アイコンをクリックしてイベントを表示する](http://cz-cdn.shoeisha.jp/static/images/article/9557/9557_028.gif)
イベントの中からValueChangedをダブルクリックします。
Form1.csのコードビハインドに以下のようにイベントハンドラーが自動で生成されます。
private void gcPostal1_ValueChanged(object sender, EventArgs e) { }
イベントハンドラーを以下のように修正します。
private void gcPostal1_ValueChanged(object sender, EventArgs e) { this.gcPostalBarCode1.ZipCode = this.gcPostal1.Value; // GcPostalに入力された郵便番号から住所が取得できる場合はtextBox2を補完する if (gcPostal1.Addresses != null && gcPostal1.Addresses.Count() > 0) { var address = gcPostal1.Addresses[0]; this.textBox2.Text = address.Prefecture + address.City + address.Town; } }
郵便バーコードを利用するシナリオ
郵便バーコードを利用する業務アプリケーションのシナリオはいくつか考えられます。
1つは、基幹となるシステム上に存在する住所情報を直接読み込めないような遠隔の作業場で、住所情報を取得したい場合です。例えば、本部とは離れた倉庫から出荷処理を行う場合などに、郵便バーコードから素早く住所情報を読み取れることで作業効率を上げることができるでしょう。
もう1つは、郵便バーコードを印字することで郵便物の配送料金の割引を受ける場合です。大量の郵便物を扱う業態ならメリットを見いだせるでしょう。この場合、帳票出力をサポートするActiveReportsなどのコンポーネントとの連携を検討すると良いでしょう。