SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

現役エンジニア直伝! 「現場」で使えるコンポーネント活用術(JPAddress)

データ最新化まで含めた総合ソリューション型 住所検索コンポーネント「JPAddress for .NET 1.0」

  • X ポスト
  • このエントリーをはてなブックマークに追加

画面コードの作成

 最後に画面に連結するためのコードをMainForm.vbに記述しましょう。

リスト6 MainWindow.xaml.vb
Class MainWindow 
    Private ViewModel As New MainViewModel

    Public Sub New()

        ' この呼び出しはデザイナーで必要です。
        InitializeComponent()

        ' InitializeComponent() 呼び出しの後で初期化を追加します。
        Me.DataContext = Me.ViewModel
    End Sub
End Class

 DataGridViewのAutoGenerateColumnsプロパティは、なぜかプロパティウィンドウで設定できませんが、このプロパティをFalseにしておかないと事前に設定したColumnsが無視されてデータが表示されてしまうので注意してください。なお、AutoGenerateColumnsプロパティは逆転の発想で最初はTrueにしておいてどのようなフィールド名でデータが格納しているかを一気に調べることに使うという手もあります。

実行

 デフォルトで郵便番号を設定していますので、画面が表示されたら[住所検索]ボタンをクリックしてみてください。

図15 画面構成
図15 画面構成

 グレープシティ本社の住所が表示できます。

 もちろん本来であればWPF用の方を使うのが正しい組み合わせなので、

  • 参照設定
  • Importsステートメント
  • ライセンスファイル

の「GrapeCity.Win.JPAddress.dll」を「GrapeCity.Windows.JPAddress.dll」に変更してWPF用に切り替えておきましょう。

住所の更新

 ここまで紹介した機能だけでみると、JPAddressは単なる住所検索コンポーネントでしかありません。もちろん郵便番号だけでなく、地区コードからの検索などまだ紹介していない検索機能もありますが、それ以上にJPAddressがその他の住所検索コンポーネントと違うのは辞書更新サービスの存在です。

 JPAddressのUpdateメソッドを使えば、httpを利用してグレープシティ辞書更新サービスサーバーから最新の辞書を取得して辞書データを更新することができるのです。もちろん、Proxyサーバーにも対応しており、IEでインターネットに接続できるように設定してあれば、グレープシティ辞書更新サービスサーバーへの接続もその情報を使って接続可能です。

 それでは、Updateメソッドの使い方をみてみましょう。

リスト7 辞書更新機能付きのJPAddressModel.vbの例
Imports GrapeCity.Win.JPAddress
Imports System.ComponentModel

Public Class JPAddressModel
    Implements INotifyPropertyChanged
    Private Jpa As New GcJPAddress

    Public Sub New()
        Call Update()
    End Sub

    Private Sub Update()
        Jpa.Proxy = System.Net.WebRequest.GetSystemWebProxy()
        Jpa.Proxy.Credentials = System.Net.CredentialCache.DefaultCredentials
        ' 「vwvyz」には認証IDを設定します。 
        Jpa.Update("vwvyz ")
    End Sub
    :
    (略)
    :
End Class

  このように非常に簡単なコードで実装が可能です。Updateメソッドはダウンロードと辞書更新が完了するまで処理待ち状態になるため、更新中のアプリの挙動についても考慮する必要はありません。

 このサービスは年間契約の有償サービスのため利用するには別途申し込みが必要です。ただし、トライアル版では利用できませんが、製品購入後であれば認証IDにプロダクトキーを指定することで90日間のテスト利用ができます。

まとめ

 今回のサンプルでは自動的に更新を行っていましたが、承認プロセスをアプリに取り入れ、確認用端末を更新してテスト結果がOKであれば、例えばDBなどに承認OKのフラグを立てて各端末やWebサーバーでUpdateメソッドをアプリの内部で自動的に呼び出すという流れも作ることができます。

 住所検索部分であれば、郵便局の郵便番号データダウンロードからデータをダウンロードして使いやすいように加工をしてアプリに組み込めば自作できます。しかし、定期的に更新される郵便番号データダウンロードを毎回使いやすいように加工して配布するという手間を自社要員で実施する必要はないと思います。リソースの最適化という視点やデータ生成結果の品質ということを考えても、複数の取引先にデータ配信しているところにアウトソーシングするのがよいのではないでしょうか。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
この記事の著者

初音玲(ハツネアキラ)

 国内SIerのSEでパッケージ製品開発を主に行っており、最近は、空間認識や音声認識などを応用した製品を手掛けています。 個人的には、仕事の内容をさらに拡張したHoloLensなどのMRを中心に活動しています。 Microsoft MVP for Windows Development ブログ:http://hatsune.hatenablog.jp/

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/6942 2016/03/29 17:41

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング