PowerTools InputMan for ASP.NET 8.0J
住所情報の取得

住所検索エクステンダの基本的な使用方法について解説します。

JPAddress for .NETの準備
住所検索エクステンダの機能は、「JPAddress for .NET(以下、JPAddress)」を利用して実現されており、検索機能を利用するためにはJPAddressのインストールおよび開発ライセンスが必要です。また、検索機能を使用するためには、JPAddressのGcJPAddressコンポーネントをページに配置する必要があります。
詳細については「JPAddress for .NETとの連携」を参照してください。
検索の対象と出力用コントロール
住所検索エクステンダをWebフォームに配置すると、Webフォーム上にある各コントロールのプロパティページに「GcAddress1 の AddressOutputSetting」(太字部分はショートカットエクステンダのIDにより異なります)が追加されます。



このAddressOutputSettingクラスに含まれる以下のプロパティを設定することで、出力用コントロールおよび動作の設定を行うことができます。
プロパティ 説明
AddressQueryMode 検索の対象を取得または設定します。このプロパティに設定できる値は以下のとおりです。
  • ByZipCodeForGeneral
    住所の郵便番号を対象に検索を行います。
  • ByZipCodeForCompany
    大口事業所の個別番号を対象に検索を行います。
  • ByZipCodeForAll
    住所の郵便番号と大口事業所個別番号の両方を対象に検索を行います。
  • ByPhoneCode
    市外局番を対象に検索を行います。
  • ByJISCode
    全国地方公共団体コードを対象に検索を行います。
AddressOutput 検索結果の「住所」を出力するコントロールを取得または設定します。
AddressKanaOutput 検索結果の「住所(フリガナ)」を出力するコントロールを取得または設定します。
ZipCodeOutput 検索結果の「郵便番号」を出力するコントロールを取得または設定します。
JISCodeOutput 検索結果の「全国地方公共団体コード」を出力するコントロールを取得または設定します。
PhoneCodeOutput 検索結果の「市外局番」を出力するコントロールを取得または設定します。
ClearTarget 住所出力を行う前に、出力先となるコントロールの内容を消去するかしないかを取得または設定します。
SplitAreaDetails 同じ郵便番号に複数の丁目が含まれているときにそれぞれを分割するかどうかを取得または設定します。
郵便番号によっては、ひとつの郵便番号に複数の丁目が含まれている場合があります。こういった場合に、それぞれを分割して別々のレコードとするか、複数の丁目がまとまったままのひとつのレコードとするかを設定します。
たとえば、〒105-0022は「東京都港区海岸(1、2丁目)」と登録されています。これを
  • 東京都港区海岸1丁目
  • 東京都港区海岸2丁目
と別々のレコードとして扱うか
  • 東京都港区海岸(1、2丁目)
とひとつのレコードとして扱うかを指定します。
GenerateCompanyAddressKana 大口事業所の検索結果に住所のカナを含めるかどうかを取得または設定します。
大口事業所の個別番号の検索結果にのみ有効です。住所の郵便番号の場合には住所のカナは必ず含まれます。
ExactMatchPhoneCode 市外局番の検索で完全一致検索をするかしないかを取得または設定します。

SplitAreaDetailsプロパティをTrueに設定してそれぞれを別々のレコードとして扱った場合、分割した最初のレコードが検索結果として返されます。


上記の設定はプロパティグリッドから行えますが、コードによって検索の対象と出力用コントロールを設定するには、以下のようにSetAddressOutputSettingメソッドを使用します。
Imports GrapeCity.Web.Input.IMExtenders

' AddressOutputSettingオブジェクトを作成します。  
Dim AddressOutputSetting1 As AddressOutputSetting = New AddressOutputSetting()

' AddressOutputSettingオブジェクトに検索の対象と出力用コントロールを設定します。
AddressOutputSetting1.AddressQuerymode = AddressQuerymode.ByZipCodeForAll
AddressOutputSetting1.AddressOutput = GcTextBox2.ID
AddressOutputSetting1.AddressKanaOutput = GcTextBox3.ID
AddressOutputSetting1.ZipCodeOutput = GcTextBox4.ID
AddressOutputSetting1.JISCodeOutput = GcTextBox5.ID
AddressOutputSetting1.ClearTarget = True
AddressOutputSetting1.SplitAreaDetails = True
AddressOutputSetting1.GenerateCompanyAddressKana = True

' GcAddressにAddressOutputSettingオブジェクトを設定します。  
GcAddress1.SetAddressOutputSetting(GcTextBox1, AddressOutputSetting1)
using GrapeCity.Web.Input.IMExtenders;

// AddressOutputSettingオブジェクトを作成します。  
AddressOutputSetting AddressOutputSetting1 = new AddressOutputSetting();

// AddressOutputSettingオブジェクトに検索の対象と出力用コントロールを設定します。
AddressOutputSetting1.AddressQuerymode = AddressQuerymode.ByZipCodeForAll;
AddressOutputSetting1.AddressOutput = GcTextBox2.ID;
AddressOutputSetting1.AddressKanaOutput = GcTextBox3.ID;
AddressOutputSetting1.ZipCodeOutput = GcTextBox4.ID;
AddressOutputSetting1.JISCodeOutput = GcTextBox5.ID;
AddressOutputSetting1.ClearTarget = true;
AddressOutputSetting1.SplitAreaDetails = true;
AddressOutputSetting1.GenerateCompanyAddressKana = true;

// GcAddressにAddressOutputSettingオブジェクトを設定します。
GcAddress1.SetAddressOutputSetting(GcTextBox1, AddressOutputSetting1);
メソッドによる住所情報の取得
住所検索エクステンダでは以下のメソッドを提供しており、これらを利用して対象の住所情報を取得することが可能です。
メソッド 説明
GetAddress 郵便番号から「住所」を取得します。
GetCompanyAddressByKana 大口事業所個別番号に含まれる事業所名のフリガナから「住所」を取得します。
GetCompanyAddressByName 大口事業所個別番号に含まれる事業所名から「住所」を取得します。
GetAddressFromPhoneCode 市外局番から「都道府県/市区町村」を取得します。
GetCity 都道府県コードから「市区町村」を取得します。
GetCityByJISCode 市区町村コードから「市区町村」を取得します。
GetPrefecture 「都道府県」を取得します。
GetPrefectureByJISCode 都道府県コードから「都道府県」を取得します。
GetTown 市区町村コードから「町域」を取得します。
GetTownArea 市区町村コードと町域から「丁目」を取得します。
GetZipCode 住所から「郵便番号」を取得します。

次のサンプルコードは、さまざまな方法での検索の結果レコードをリストコントロールに表示する例です。
Imports GrapeCity.Web.Input.IMExtenders

' リストコントロールを設定します。
GcListBox1.AutoGenerateColumns = True
GcListBox1.ListHeaderPane.Visible = True
GcListBox2.AutoGenerateColumns = True
GcListBox2.ListHeaderPane.Visible = True
GcListBox3.AutoGenerateColumns = True
GcListBox3.ListHeaderPane.Visible = True

' 郵便番号から住所情報を取得し、GcListBox1に表示します。
GcListBox1.DataSource = GcAddress1.GetAddress("1638001", True, ZipCodeQueryMode.Both, True)
GcListBox1.DataBind()

' 市外局番から都道府県市区町村情報を取得し、GcListBox2に表示します。
GcListBox2.DataSource = GcAddress1.GetAddressFromPhoneCode("03", False)
GcListBox2.DataBind()

' 住所から郵便番号を取得し、GcListBox3に表示します。
GcListBox3.DataSource = GcAddress1.GetZipCode("東京都渋谷区渋谷", ZipCodeQueryMode.GeneralZipCode)
GcListBox3.DataBind()
using GrapeCity.Web.Input.IMExtenders;

// リストコントロールを設定します。
GcListBox1.AutoGenerateColumns = true;
GcListBox1.ListHeaderPane.Visible = true;
GcListBox2.AutoGenerateColumns = true;
GcListBox2.ListHeaderPane.Visible = true;
GcListBox3.AutoGenerateColumns = true;
GcListBox3.ListHeaderPane.Visible = true;

// 郵便番号から住所情報を取得し、GcListBox1に表示します。
GcListBox1.DataSource = GcAddress1.GetAddress("1638001", true, ZipCodeQueryMode.Both, true);
GcListBox1.DataBind();

// 市外局番から都道府県市区町村情報を取得し、GcListBox2に表示します。
GcListBox2.DataSource = GcAddress1.GetAddressFromPhoneCode("03", false);
GcListBox2.DataBind();

// 住所から郵便番号を取得し、GcListBox3に表示します。
GcListBox3.DataSource = GcAddress1.GetZipCode("東京都渋谷区渋谷", ZipCodeQueryMode.GeneralZipCode);
GcListBox3.DataBind();

上記サンプルコードの実行結果は次のようになります。
AddressOutputtingイベントの利用
住所情報が検索されると、クライアント側でAddressOutputtingイベントが発生します。このイベントをハンドルすることで検索結果を取得することができます。検索結果を任意に制御したいときなどに使用できます。

次のサンプルコードではすべての住所情報リストを複数行のテキストコントロールに表示します。
function GcAddress1_AddressOutputting(sender, eArgs)
{
    eArgs.Cancel = true;

    var addresses = eArgs.AddressInfos;
    var lines = new Array();

    for (var i = 0 ; i < addresses.length; i++) {
        lines[i] = addresses[i].GetPrefecture() + addresses[i].GetCity() + addresses[i].GetTown() + addresses[i].GetArea();
    }
    FindIMControl("GcTextBox1").SetLines(lines);
}
参照

 

 


© 2005-2015 GrapeCity inc. All rights reserved.