みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
http://www.russ.jp/stepbbs/step.cgi?mode=view&no=64589
>[64657] Re: [64589] 郵便番号入力から
>DATE : 11/10/20(木) 09:19
>NAME : チポ
>私は、
>郵便番号フィールドにトリガで、一文字ずつフィールド確定する様にして、
>前方一致のリレーションのポータルで住所候補を絞り込む様にしています。
>郵便番号入力途中でも、その候補から
>選択、クリックで郵便番号と住所を入力できます。
>結構気に入っていますよ。。
これをやろうとするのですが、、うまくいきません。
また、その他の類似の過去ログを見ようと検索したりしたのですが、
例のシステム不安定が原因なのか、何も見れないので困っています。
具体的におしえていただけませんでしょうか?
(過去にアップされていたサンプルファイルなどございませんでしょうか?)
郵便番号はFMに取り込んであります。
トリガで確定する、、、あたりはなんとかできそうですが、
一番わからないのはリレーションの張り方です。
環境はwin7 pro
FM12advです。
Offline
一寸違いますが、テンプレートを公開してあります。
『郵便番号(正引き・逆引き)検索テンプレート公開』→ http://www.russ.jp/stepbbs/step.cgi?mode=view&no=72757
Offline
Hiroさん、ありがとうございます。
早速ダウンロードしました。
実は社内規定でインターネット接続不可のマシンでの運用のため、
完全ローカルで処理したいんです。
ですので、残念ですが今回利用することができないんです。
(教えていただいたファイルは、また別の機会に利用させていただきます!)
現在、完全一致で住所をリレーションで引っ張ってくることまではできました。
それで事足りるといえばそれまでなのですが、
今後のためにも一度インクリメントサーチ的?なことを実装してみたい&勉強してみたいと思いまして。
郵便番号をどんなフィールドにしてどんなリレーションにすればいいのかと悩んでいます。
Offline
郵便番号側で、例えば1234567でしたら、1.12.123.1234.12345.123456.1234567 というフィールドを作っておきます。
入力側からそれへリレーションを張っておいて、1文字入力毎にフィールドを確定させていくと、例えば、1234 が入力された時点で、1234567.1234566.1234557.1234467などが選択されます。
Offline
Shinさん、ありがとうございます。
ということは、
郵便番号を頭から順に組み合わせたものを格納する7個のフィールドを新規に作り、
スクリプトか何かで収めればいいんですね。
ただ、データがすごく大きくなりそうな気がします。
いまからやってみます。
Offline
1個のフィールドにしたら良いですよ。
繰り返しフィールドでも良いですし、改行区切りのデータの羅列でも良いです。
Offline
改行区切りでやってみます!
Offline
別の方法
入力する側に
郵便番号 & Char ( 65519 )
のフィールドを追加して、それを範囲リレーションに使う。
郵便番号は数字しか使わないので
郵便番号 & "a"
でもいいか。
Shinさん、
改行区切りのフィールドとリレーション結果、思い通りの動きで成功しました。
ありがとうございました!
(改行区切りには カスタム関数のPyramidText ( Letter )を使いました)
concatさん、
その方法も試したのですが、うまくいきません。
せっかくなのでそちらも成功させたいです。
名簿用テーブルと郵便番号テーブルがあります。
郵便番号入力フィールド <= 郵便番号簿の郵便番号
and 郵便番号範囲用フィールド => 郵便番号簿の郵便番号
のように範囲設定したのですが、7桁入力するまで何も表示されず、
7桁入力で表示されるので範囲が利いてないようです。
フィールドタイプはすべて数字です。
なにか気をつける設定などありますでしょうか?
教えていただけるとうれしいです。
Offline
Left ( 郵便番号入力 & "0000000" ; 7 )
Left ( 郵便番号入力 & "9999999" ; 7 )
のようにすればうまくいくでしょう。
逆になりますが、住所の町名から郵便番号を取得するサンプル--郵便番号検索11zip
Last edited by keima (2013-12-14 19:37:41)
Offline
フィールドタイプはテキストにします。
頭の0に意味がある場合、数字タイプは不適です。http://www.filemaker.com/12help/jp/html … tml#172489
FM12ならポータルフィルタが使えますから、
郵便番号、入力フィールド共にテキストとして、
その条件式
郵便番号 >= 入力 and 郵便番号 < 入力 + 1
でいいんじゃないかな。
前方一致のリレーションは、
それが無いときに無理無理考えだしたものです ;;
Offline
みなさんありがとうございます。
keimaさんの式も参考にした結果、範囲リレーションがうまくいきました。
ですが、またまた別の方法をご提示いただいてありがとうございます。
ポータルフィルタのやり方でも動作OKでした。
ただ、こちらは動作が重く実用的ではありませんでした。
(全国の郵便番号を対象にしているので仕方ないのかもしれませんが)
せっかく教えていただいたのにごめんなさい。
改行コードで郵便番号をばらしてやる方法か
範囲リレーションでの方法が結果的に簡単で速度もあるようです。
ひょっとして私のポータルフィルタの設定が悪くて速度がモタモタしてるだけなんでしょうか?
そのときのリレーションは両テーブルをグローバルフィールドを作成してそれでくっつけてます。
(郵便番号同士のXリレーションでもいいかもしれませんが)
ポータルフィルタってもっとサクサクっと動作するのでしょうか?初めて使ったのでわかりません。。。
Offline
一旦関連レコードを取得してからフィルタの条件で検索するわけだから、
リレーション条件でできるものは、程度の差はあってもポータルフィルタにした方が必ず遅いと思いますけど。
Listerさん、ありがとうございました。
そうですよね。
これで解決にします。
みなさんありがとうございました。
Offline
Pages: 1
[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 599.78 KiB (Peak: 616.69 KiB) ]