このリレーションが、FileMakerを飛躍的にレベルを上げた一つであるといえます。
当初は、一対一のリレーションでした、これは、
前回の住所録で、説明したように郵便番号を入力すると、郵便番号帳に該当する郵便番号が
あれば、そのレコードの住所を住所録の住所へ移す作業をしています
これをスクリプトで、行うことが出来ます
① 住所録で郵便番号を入力
② 郵便番号帳で、郵便番号の検索する
③ 該当レコードがあれば、郵便番号の住所を住所録の住所へ移す
このように手作業で行うことが出来ます
上記、②③を手作業で、行うとどれだけ時間がかかるでしょう、また人により作業時間が違います
リレーションを使えば、簡単に出来てしまうのです。
一対一のリレーションに、問題があります
今回の例、香川県の郵便番号帳のレコードに重複するレコードが6件あります
7611615 香川県高松市塩江町安原下(上小田)
7611615 香川県高松市塩江町安原下(炭谷)
また、香川県高松市塩江町安原下のレコードは、6件あります
7611615 香川県高松市塩江町安原下(上小田)
7611615 香川県高松市塩江町安原下(炭谷)
7611501 香川県高松市塩江町安原下(第1号)
7611502 香川県高松市塩江町安原下(第2号)
7611503 香川県高松市塩江町安原下(第3号)
7611504 香川県高松市塩江町安原下(その他)
実は、一対多のリレーションだったのです。
取得した住所の()の部分を変更すればいいとですが、リレーションには、完全な一対一と一対多があることを知ってください。
多対多の簡単なリレーションを説明します、郵便番号を調べる
住所から郵便番号を取得します
住所録に新しくフィールドを追加します
フィールド名 住所2
タイプ 計算
オプション 住所 & "龥" 龥は、jisコード7767です
リレーションを追加 リレーション名は[郵便番号 住所]
住所録 郵便番号帳
住所 =< 住所
住所2 => 住所
わかりやすく説明すると、住所録の住所に入力すると住所2には、入力した内容の最後に「龥」が付きます
郵便番号帳の住所で、香川県高松市塩江町と同じか、大きく
香川県高松市塩江町龥と同じか、小さい
住所録のレイアウトを変更します
① メニュー[表示]-->[表形式]から[フレーム]に変えます
② 各フィールド名とフィールド表示枠を整列します
③ リレーション[郵便番号 住所]のポータルを配置します
垂直スクロールバーを表示にチェックを入れます
レイアウトモードからブラウズモードに戻して、
住所に、香川県高松市塩江町と入力すると五件表示されました、右のスクロールバーを
上下すると、すべての内容を見ることができます
確認した郵便番号をフィールド郵便番号へ入力してみてください
住所が変わりました
WEBブラウザで、郵便番号、住所の入力で、同じよううな機能があります
ここで、少しレベルアップしましょう
入力が遅い方は、毎回都道府県を入力するのは、とても面倒です
郵便番号帳にフィールドを追加します
フィールド名 住所市から
タイプ 計算
オプション 市郡 & 町
住所録のリレーションを変更します
リレーション名は[郵便番号 住所]
住所録 郵便番号帳住所 =< 住所市から
住所2 => 住所市から
郵便番号帳の[住所]を[住所しから]に変えます
住所録の住所に、高松市塩江町と入力してみてください、県名の入力が不要となりました
もう少しアップしましよう
郵便番号の入力をボタンにします
スクリプトの作成 [郵便番号確定]
内容は、郵便番号帳の郵便番号をコピーして、住所録の郵便番号へ、ペーストします
ポータルの郵便番号をボタン設定します、
スクリプト実行[郵便番号]を設定 現在のスクリプト[すべて終了]
住所録の住所に、高松市塩江町と入力ます
ポータルリストのどれか郵便番号をクリックしてみてください
郵便番号と住所が変わりました
手入力より簡単ですね
郵便番号ボタンを押し間違えたら、住所の県名の削除と住所の後ろを削除して、再度郵便番号を押す必要があります、
細かいことですが、ここをじっくり行ってください。考え方・作成の流れ・パターンが身につきます。
いろんな方法を考えて、テストして試行錯誤すれば、同じようなことを次回は、スムーズに進むでしょう。




0 件のコメント:
コメントを投稿