住所検索コンポーネントの住所情報の取得方法について解説します。
郵便番号コントロールの機能は、「JPAddress for Windows Forms(以下、JPAddress)」を利用して実現されており、検索機能を利用するためにはJPAddressのインストールが必要です。また、検索機能を使用するためには、JPAddressのGcJPAddressコンポーネントをページに配置する必要があります。
詳細については「JPAddress for .NETとの連携」を参照してください。
住所検索コンポーネントは拡張プロバイダとして動作します。住所検索コンポーネントをフォームに追加すると、フォーム上に配置されたコントロールが拡張され、SetAddressOutputSetting メソッドが入力コントロールのプロパティグリッドに 「AddressOutputSetting プロパティ」として追加されます。
AddressOutputSetting プロパティはAddressOutputSetting クラスを参照し、このクラスの以下のプロパティを設定することで、出力用コントロールおよび動作の設定を行うことができます。
プロパティ値 | 説明 |
---|---|
ByZipCodeForGeneral | 住所の郵便番号を対象に検索を行います。 |
ByZipCodeForCompany | 大口事業所の個別番号を対象に検索を行います。 |
ByZipCodeForAll | 住所の郵便番号と大口事業所個別番号の両方を対象に検索を行います。 |
ByPhoneCode | 市外局番を対象に検索を行います。 |
ByJISCode | 全国地方公共団体コードを対象に検索を行います。 |
SplitAreaDetails プロパティをTrue に設定してそれぞれを別々のレコードとして扱った場合、分割した最初のレコードが検索結果として返されます。 |
コードによって検索の対象と出力用コントロールを設定するには、以下のように SetAddressOutputSetting メソッドを使用します。
Imports GrapeCity.Win.Editors ' AddressOutputSettingオブジェクトを作成します。 Dim AddressOutputSetting1 As AddressOutputSetting = New AddressOutputSetting() ' AddressOutputSettingオブジェクトに検索の対象と出力用コントロールを設定します。 AddressOutputSetting1.AddressQuerymode = AddressQuerymode.ByZipCodeForAll AddressOutputSetting1.AddressOutput = GcTextBox2 AddressOutputSetting1.AddressKanaOutput = GcTextBox3 AddressOutputSetting1.ZipCodeOutput = GcTextBox4 AddressOutputSetting1.JISCodeOutput = GcTextBox5 AddressOutputSetting1.ClearTarget = True AddressOutputSetting1.SplitAreaDetails = True AddressOutputSetting1.GenerateCompanyAddressKana = True ' GcAddressにAddressOutputSettingオブジェクトを設定します。 GcAddress1.SetAddressOutputSetting(GcTextBox1, AddressOutputSetting1)
using GrapeCity.Win.Editors; // AddressOutputSettingオブジェクトを作成します。 AddressOutputSetting addressOutputSetting1 = new AddressOutputSetting(); // AddressOutputSettingオブジェクトに検索の対象と出力用コントロールを設定します。 addressOutputSetting1.AddressQuerymode = AddressQuerymode.ByZipCodeForAll; addressOutputSetting1.AddressOutput = gcTextBox2; addressOutputSetting1.AddressKanaOutput = gcTextBox3; addressOutputSetting1.ZipCodeOutput = gcTextBox4; addressOutputSetting1.JISCodeOutput = gcTextBox5; addressOutputSetting1.ClearTarget = true; addressOutputSetting1.SplitAreaDetails = true; addressOutputSetting1.GenerateCompanyAddressKana = true; // gcAddressにAddressOutputSettingオブジェクトを設定します。 gcAddress1.SetAddressOutputSetting(gcTextBox1, addressOutputSetting1);
住所検索コンポーネントでは以下のメソッドを提供しており、これらを利用して対象の住所情報を取得することが可能です。
' 郵便番号から住所情報を取得します。 GcListBox1.DataSource = GcAddress1.GetAddress("1638001", True, GrapeCity.Win.Editors.ZipCodeQueryMode.Both, True) ' 市外局番から都道府県市区町村情報を取得します。 GcListBox2.DataSource = GcAddress1.GetAddressFromPhoneCode("03", False) ' 住所から郵便番号を取得します。 GcListBox3.DataSource = GcAddress1.GetZipCode("東京都渋谷区渋谷", GrapeCity.Win.Editors.ZipCodeQueryMode.GeneralZipCode)
// 郵便番号から住所情報を取得します。 GcListBox1.DataSource = gcAddress1.GetAddress("1638001", true, GrapeCity.Win.Editors.ZipCodeQueryMode.Both, true); // 市外局番から都道府県市区町村情報を取得します。 GcListBox2.DataSource = gcAddress1.GetAddressFromPhoneCode("03", false); // 住所から郵便番号を取得します。 GcListBox3.DataSource = gcAddress1.GetZipCode("東京都渋谷区渋谷", GrapeCity.Win.Editors.ZipCodeQueryMode.GeneralZipCode);
上記サンプルコードの実行結果は次のようになります。
GcListBox1 :AddressOutputting イベントをハンドルすることで検索結果を取得することができます。検索結果をコントロールに出力しないでメッセージで表示するなどといった用途に対応できます。
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load ' AddressOutputSettingオブジェクトを作成します。 Dim AddressOutputSetting1 As GrapeCity.Win.Editors.AddressOutputSetting = New GrapeCity.Win.Editors.AddressOutputSetting() AddressOutputSetting1.AddressQuerymode = GrapeCity.Win.Editors.AddressQuerymode.ByZipCodeForAll AddressOutputSetting1.SplitAreaDetails = True AddressOutputSetting1.GenerateCompanyAddressKana = True ' GcAddressにAddressOutputSettingオブジェクトを設定します。 GcAddress1.SetAddressOutputSetting(GcMask1, AddressOutputSetting1) GcMask1.Value = "1638001" ' AddressOutputtingイベントが発生します。 AddHandler GcAddress1.AddressOutputting, AddressOf GcAddress1_AddressOutputting End Sub Private Sub GcAddress1_AddressOutputting(sender As System.Object, e As GrapeCity.Win.Editors.AddressOutputtingEventArgs) Handles GcAddress1.AddressOutputting ' 出力された住所を表示します。 MessageBox.Show(e.OutputAddress) End Sub
private void Form1_Load(object sender, EventArgs e) { // AddressOutputSettingオブジェクトを作成します。 GrapeCity.Win.Editors.AddressOutputSetting addressOutputSetting1 = new GrapeCity.Win.Editors.AddressOutputSetting(); addressOutputSetting1.AddressQuerymode = GrapeCity.Win.Editors.AddressQuerymode.ByZipCodeForAll; addressOutputSetting1.SplitAreaDetails = true; addressOutputSetting1.GenerateCompanyAddressKana = true; // gcAddressにAddressOutputSettingオブジェクトを設定します。 gcAddress1.SetAddressOutputSetting(gcMask1, addressOutputSetting1); gcMask1.Value = "1638001"; // AddressOutputtingイベントが発生します。 gcAddress1.AddressOutputting += new EventHandler<GrapeCity.Win.Editors.AddressOutputtingEventArgs>(gcAddress1_AddressOutputting); } private void gcAddress1_AddressOutputting(object sender, GrapeCity.Win.Editors.AddressOutputtingEventArgs e) { // 出力される住所を表示します。 MessageBox.Show(e.OutputAddress); }