Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

JPAddressを用いて、さらに優れた住所入力フォームを作成しよう

顧客と開発者の生産性を格段に向上させる、業務システムの画面UI 第2回

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2016/07/28 14:00
目次

PlusPakと連携した郵便バーコードの出力

 PlusPakとJPAddressを組み合わせることで、住所情報から郵便バーコードを生成することができます。

 郵便バーコードを利用するには以下のように行います。

プロジェクトの作成

 「JPaddressPluspakSample」という名前で、Windowsフォームアプリケーションを作成します。

JPaddressPluspakSampleプロジェクトの作成
JPaddressPluspakSampleプロジェクトの作成

GcPostalBarCodeコントロールの追加

 GcPostalBarCodeコントロールをツールボックスに追加します。

 ツールボックスからGcPostalBarCodeとTextBoxコントロールを2つデザインビューから画面に配置します。

GcPostalBarCodeとTextBoxを追加
GcPostalBarCodeとTextBoxを追加

TextBoxの入力値から郵便バーコードを生成する

 TextBoxに入力された値から郵便バーコードを生成するように設定します。

 GcPostalBarCodeの郵便バーコードを生成するためのソースとなる値には、郵便番号や住所を表す文字列に加えてコントロールを指定することもできます。コントロールを指定する場合はZipCodeInputControlプロパティとAddressInputControlにソースとなるコントロールを指定します。

 デザインビューから配置したGcPostalBarCodeコントロールをクリックして選択状態にします。

 プロパティウィンドウのZipCodeInputControlにtextBox1を指定し、AddressInputControlにtextBox2を指定します。

ZipCodeInputControlプロパティにTextBoxを指定
ZipCodeInputControlプロパティにTextBoxを指定
AddressInputControlプロパティにtextBox2を指定
AddressInputControlプロパティにtextBox2を指定

プロジェクトをデバッグ実行し動作を確認する

 「F5」キーを押してプロジェクトをデバッグ実行します。

 textBox1に郵便番号(ハイフン抜き)を入力、textBox2に住所を入力すると郵便バーコードが郵便番号に合わせたコードに変化するのが確認できます。

入力例
  • 郵便番号:1130033
  • 住所:東京都文京区本郷7丁目3-1
郵便番号に合わせて郵便コードが変化する
郵便番号に合わせて郵便コードが変化する

TextBoxの代わりにGcPostalを利用する

 TextBoxではなく、GcPostalを郵便バーコードのソースにすることもできます。

 その場合はZipCodeInputControlに指定せず、GcPostalコントロールの値が変更された際のイベント「ValueChanged」に指定したイベントハンドラー内で処理を行います。

 GcPostalに郵便番号が入力された際に、住所の文字列を取得して、住所入力の補助とすることでより効率よく入力が可能になります。

GcPostalにイベントハンドラーを指定する

 デザイナーから画面にGcPostalコントロールを追加します。GcPostalコントロールをクリックした状態でプロパティウィンドウの稲妻アイコンをクリックしてイベントを表示します。

稲妻アイコンをクリックしてイベントを表示する
稲妻アイコンをクリックしてイベントを表示する

 イベントの中からValueChangedをダブルクリックします。

 Form1.csのコードビハインドに以下のようにイベントハンドラーが自動で生成されます。

ValueChangedイベントのハンドラーが生成された
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などのコンポーネントとの連携を検討すると良いでしょう。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 西村 誠(ニシムラ マコト)

     Microsoft MVP Windows Platform Development。  Flash、PHPの開発経験もあり国産ECサイト構築フレームワーク「EC-CUBE」の公式エバンジェリストでもある。  ブログ:眠るシーラカンスと水底のプログラマー  著書:基礎から学ぶ Windows...

バックナンバー

連載:顧客と開発者の生産性を格段に向上させる、業務システムの画面UI
All contents copyright © 2005-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5