JPAddressを用いて、さらに優れた住所入力フォームを作成しよう
顧客と開発者の生産性を格段に向上させる、業務システムの画面UI 第2回
ダウンロード サンプルファイル (45.4 KB)
PlusPakと連携した郵便バーコードの出力
PlusPakとJPAddressを組み合わせることで、住所情報から郵便バーコードを生成することができます。
郵便バーコードを利用するには以下のように行います。
プロジェクトの作成
「JPaddressPluspakSample」という名前で、Windowsフォームアプリケーションを作成します。
GcPostalBarCodeコントロールの追加
GcPostalBarCodeコントロールをツールボックスに追加します。
ツールボックスからGcPostalBarCodeとTextBoxコントロールを2つデザインビューから画面に配置します。
TextBoxの入力値から郵便バーコードを生成する
TextBoxに入力された値から郵便バーコードを生成するように設定します。
GcPostalBarCodeの郵便バーコードを生成するためのソースとなる値には、郵便番号や住所を表す文字列に加えてコントロールを指定することもできます。コントロールを指定する場合はZipCodeInputControlプロパティとAddressInputControlにソースとなるコントロールを指定します。
デザインビューから配置したGcPostalBarCodeコントロールをクリックして選択状態にします。
プロパティウィンドウのZipCodeInputControlにtextBox1を指定し、AddressInputControlにtextBox2を指定します。
プロジェクトをデバッグ実行し動作を確認する
「F5」キーを押してプロジェクトをデバッグ実行します。
textBox1に郵便番号(ハイフン抜き)を入力、textBox2に住所を入力すると郵便バーコードが郵便番号に合わせたコードに変化するのが確認できます。
入力例
- 郵便番号:1130033
- 住所:東京都文京区本郷7丁目3-1
TextBoxの代わりにGcPostalを利用する
TextBoxではなく、GcPostalを郵便バーコードのソースにすることもできます。
その場合はZipCodeInputControlに指定せず、GcPostalコントロールの値が変更された際のイベント「ValueChanged」に指定したイベントハンドラー内で処理を行います。
GcPostalに郵便番号が入力された際に、住所の文字列を取得して、住所入力の補助とすることでより効率よく入力が可能になります。
GcPostalにイベントハンドラーを指定する
デザイナーから画面にGcPostalコントロールを追加します。GcPostalコントロールをクリックした状態でプロパティウィンドウの稲妻アイコンをクリックしてイベントを表示します。
イベントの中から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などのコンポーネントとの連携を検討すると良いでしょう。
この記事は参考になりましたか?
- 顧客と開発者の生産性を格段に向上させる、業務システムの画面UI連載記事一覧
- この記事の著者
-
西村 誠(ニシムラ マコト)
Microsoft MVP Windows Platform Development。 Flash、PHPの開発経験もあり国産ECサイト構築フレームワーク「EC-CUBE」の公式エバンジェリストでもある。 ブログ:眠るシーラカンスと水底のプログラマー 著書:基礎から学ぶ Windowsストアアプリ開発
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社
この記事は参考になりましたか?
この記事をシェア
