|
|
検索の実行はLookupメソッドの呼び出しによって行います。検索キーワードは文字列で指定し、郵便番号、住所文字列の一部、読み仮名のいずれか が指定可能です。(事業所名での検索はできません)3種類の文字列種の違いは、メソッドの呼び出し時に自動的に判別されます。
半角および全角の数字(漢数字を除く)と半角と全角のハイフンまたは「ー」「−」から構成される文字列。桁数は任意ですが、7桁の場合には完全一致で検索が実行され、それ以外の場合は前方一致の郵便番号による検索と なります。UseZip5プロパティがTrueの場合は旧5桁の郵便番号による検索が実行されます。
例) 123-4567, 1234567, 12-34567, 987−6543, 987-6543, 123, 12345
県名または、市町村名から始まる住所文字列。住所の構成要素は
[都道府県名] + [市区町村名] + [町域名] + [町域名詳細]
であるが、検索のキーワードとなる住所文字列では[都道府県名]が省略されていてもかまいません。また市区町村名に続く文字列が不完全である場合には、前方に一致する住所が検索され ます。
県名または市区町村名から始まる住所の読み仮名。構成要素は漢字による文字列と同様です。なお、読み仮名は全角または半角のカタカナ、または、全角ひらがなです。
検索結果の1レコードは1文字列として返され、それぞれの項目は1つの文字列に次の規則で連結されます。なお、郵便番号は半角数字でハイフンを含まない形式で出力されます。いずれの場合も、結果文字列を取得後プログラムによって再度分解して用途に合った方法で使用されることを想定しています。
[郵便番号];[住所];[住所カナ];[事業所名];[事業所名カナ];[私書箱]
例) "1230865;東京都足立区新田;トウキョウトアダチクシンデン" "1230864;東京都 足立区 鹿浜;トウキョウト アダチク シカハマ"
データによっては、住所カナなどの一部の文字列が不完全または、欠落しているデータも存在することに注意してください。
VBScript, JScript(JavaScript), VisualBasic 6.0, VisualBasic for Application (ACCESSやWORDなどのOffice製品),その他のMicrosoftのほとんどの開発言語から使用が可能です。
| ProgID(バージョン非依存) | Yokins.ZipCodeSearcher |
| CLSID(バージョン非依存) | {E3EFD451-97A9-4121-A6C2-43B63B3E8811} |
| ProgID(バージョン依存) | Yokins.ZipCodeSearcher.1 |
| CLSID(バージョン依存) | {E3EFD451-97A9-4121-A6C2-43B63B3E8811} |
| Interface | IYZipCodeSearcher |
| IID | {02B7C6A8-2A3B-428A-A503-93B6913C41FB} |
| Type Library | yzipcode.dll |
| DLL | yzipcode.dll |
| 依存するOLEコンポーネント | ADODB ( ADODB.Recordset Provider JET 4.0 ) MSXML ( MSXML2.DOMDocument ) |
| プロパティ名 | 内容 | |||||||||
| ResultCount | (Read only)検索(Lookup)実行後、結果の候補数。 Method Definition [propget] HRESULT ResultCount( [out, retval] long* l); Parameters lは検索結果の候補数を表す。 |
|||||||||
| Delimiter |
検索結果文字列の住所または住所カナ文字列で、都道府県、市区町村、町域名、町域名詳細の間に空白文字を挿入するかどうかのフラグ。空白文字は、後に県名などを個別に分解する目的などに使用できる。 Method Definition [propget] HRESULT Delimiter( [out, retval] BOOL* b ); Parameters bがTrueの時空白文字を挿入する。デフォルトはFalse。 |
|||||||||
| UseZip5 | 郵便番号による検索で5桁の旧郵便番号を対象にするかを指定する。 Method Definition [propget] HRESULT UseZip5( [out, retval] BOOL* b ); Parameters b は、Trueで旧5桁の郵便番号参照を有効にする。デフォルトではFalse。 |
|||||||||
| KanaTYpe |
検索結果の住所カナ文字列
として使われるカナの種類を指定する。 Method Definition [propput] HRESULT KanaType( [in] long lType ); Parameters lTypeは次のいずれかを指定する。
|
|||||||||
| LookupTarget | 検索対象を指定する。 Method Definition [propput] HRESULT LookupTarget( [in] long lType ); Parameters lTypeはつぎのうち1つを指定する。
|
|||||||||
| DataBaseCreationDate | (Read only) データベースが編成された時の日付を取得する Method Definition [propget] HRESULT DataBaseCreationDate( [out, retval] VARIANT* pRetVal ); Parameter pRetValはDATE型の値を返す。 |
|||||||||
| Version |
(Read only) YZipCodeコンポーネントのバージョンを取得する。 Method Definition [propget] HRESULT Version([out, retval] BSTR* bstrOutput ); Parameter bstrOutput はバージョン文字列を返す。文字列は "YZipCode;[バージョン文字列];[登録状態文字列]" という構成となる。 |
|||||||||
| License | (Read only)
ライセンス登録済みの場合、ライセンスに一意な文字列を得る。ライセンス未登録の場合は空の文字列が返る。なお、この文字列は登録時のライセンスキーをあるルールに基づいて処理されたハッシュである。 Method Definition [propget] HRESULT License([out, retval] BSTR* bstrOutput ); Parameter pRetValはDATE型の値を返す。 |
| Lookup | 郵便番号検索、住所検索、読み仮名検索を実行する。 Method Definition HRESULT Lookup([in] BSTR bstrInput, [out, retval] BSTR * bstrOutput ); Parameters bstrInput bstrOutput |
| GetNextCandidate | 検索結果の次の候補を取得する。 Method Definition HRESULT GetNextCandidate( [out, retval] BSTR *bstrOutput ); Parameters bstrOutput |
カスタマイズ可能なテンプレートを使い、HTMLによるページを出力する場合は、yzipcode.dllをISAPIとして使用しGETメソッドによってページにアクセス します(GET以外、POSTなどはサポートしていません)。なお、ページにアクセスする際のQueryString(フォームの内容)は次の表に示すような内容です。
| クエリパラメータ | 内容 |
| lookup(必須) | 検索文字列 |
| Delimiter | 住所文字列の要素を空白文字で区切るかどうかを指定する。 0 : 区切り無し(デフォルト) |
| LookupTarget | 検索対象を指定する 1 : 通常の住所(デフォルト) |
| UseZip5 | 検索文字列に5桁の数字を指定した場合に旧5桁の郵便番号で検索するかを指定する。 0 :
旧5桁の郵便番号では検索しない(デフォルト) |
| KanaType | 住所の読み仮名の種類を指定 0 : 全角カタカナ(デフォルト) |
| encoding | FORMから送信される日本語文字列の文字コード。Lookupパラメータの文字列コードを指定する。デフォルトは shift_jis。 |
| xsl | 検索結果のXMLをフォーマットする場合のXSLテンプレートファイル名を指定。
指定されたファイルが存在しない場合または、空文字列を与えた場合は、XMLフォーマットをそのまま出力します。 デフォルトは yzipcode.xsl |
yzipcode.dll と同じディレクトリにある yzipcode.xsl ファイルが存在しない場合は、検索結果をXMLで出力し、XSLファイルが見つかった場合はそれを使用してXSL変換を行い、その変換結果を出力します。
XSLテンプレートを適用しない場合(適用する直前)の出力は次のようなXMLとなります。
YZipCode.dll?lookup=123086&KanaType=0&xsl=test.xsl
という条件でアクセスした結果。
任意のHTMLフォーマットを出力するために、XSLテンプレートは上記のXMLのエレメントにアクセスするようにプログラムされる必要があります。
一番用途が多いと思われるのが、オンラインショッピングなど住所の入力を求めるフォームのあるウェブサイトです。郵便番号、住所入力フォームへのアシスタントとして本システムを追加実装して、ユーザーへの利便性を向上させることができます。
(注意)メインのフォームから、郵便番号検索のウィンドウを開き、そこからJavaScriptによって、フォーム上の要素に値を書き込む場合「クロスドメイン」のセキュリティ問題に注意する必要があります。フォームのあるURLのドメインと、yzipcode.dllのあるURLのドメインが異なる場合、JavaScriptによってフォーム上の値を設定することができません。
COMオブジェクトとしての本コンポーネントはデータベースのファイルサイズ40MB近く、メモリ消費量も26MB程度となり、非力なクライアントPCの1つ1つにインストールするにはやや負担が大きいと考えられる場合があります。1組織内に複数のクライアントPCを配置する場合、1台のPCに本コンポーネントをインストールし、クライアントからはXMLサービスへのアクセスで対応するという方法が考えられます。
クライアントコンポーネントはHTTP接続が可能な既存のコンポーネント、たとえば、MSXMLなど が使用可能。