2013年11月30日土曜日

リレーションで、何ができるか

リレーションで、何ができるか
 
 

このリレーションが、FileMakerを飛躍的にレベルを上げた一つであるといえます。

当初は、一対一のリレーションでした、これは、
  前回の住所録で、説明したように郵便番号を入力すると、郵便番号帳に該当する郵便番号が
  あれば、そのレコードの住所を住所録の住所へ移す作業をしています

これをスクリプトで、行うことが出来ます

① 住所録で郵便番号を入力
② 郵便番号帳で、郵便番号の検索する
③ 該当レコードがあれば、郵便番号の住所を住所録の住所へ移す

このように手作業で行うことが出来ます
上記、②③を手作業で、行うとどれだけ時間がかかるでしょう、また人により作業時間が違います

リレーションを使えば、簡単に出来てしまうのです。

一対一のリレーションに、問題があります
今回の例、香川県の郵便番号帳のレコードに重複するレコードが6件あります

7611615 香川県高松市塩江町安原下(上小田)
7611615 香川県高松市塩江町安原下(炭谷)

また、香川県高松市塩江町安原下のレコードは、6件あります

7611615 香川県高松市塩江町安原下(上小田)
7611615 香川県高松市塩江町安原下(炭谷)
7611501 香川県高松市塩江町安原下(第1号)
7611502 香川県高松市塩江町安原下(第2号)
7611503 香川県高松市塩江町安原下(第3号)
7611504 香川県高松市塩江町安原下(その他)

実は、一対多のリレーションだったのです。

取得した住所の()の部分を変更すればいいとですが、リレーションには、完全な一対一と一対多があることを知ってください。

多対多の簡単なリレーションを説明します、郵便番号を調べる

住所から郵便番号を取得します

住所録に新しくフィールドを追加します
フィールド名  住所2
タイプ      計算
オプション   住所 & "龥"    龥は、jisコード7767です

リレーションを追加 リレーション名は[郵便番号 住所]
住所録     郵便番号帳
住所   =<    住所
住所2  =>    住所

わかりやすく説明すると、住所録の住所に入力すると住所2には、入力した内容の最後に「龥」が付きます

郵便番号帳の住所で、香川県高松市塩江町と同じか、大きく
              香川県高松市塩江町龥と同じか、小さい
 
住所録のレイアウトを変更します
① メニュー[表示]-->[表形式]から[フレーム]に変えます
② 各フィールド名とフィールド表示枠を整列します
③ リレーション[郵便番号 住所]のポータルを配置します
   垂直スクロールバーを表示にチェックを入れます

 
レイアウトモードからブラウズモードに戻して、
住所に、香川県高松市塩江町と入力すると五件表示されました、右のスクロールバーを
上下すると、すべての内容を見ることができます
 
確認した郵便番号をフィールド郵便番号へ入力してみてください
住所が変わりました
 
WEBブラウザで、郵便番号、住所の入力で、同じよううな機能があります
 
ここで、少しレベルアップしましょう
入力が遅い方は、毎回都道府県を入力するのは、とても面倒です
郵便番号帳にフィールドを追加します
  フィールド名 住所市から
  タイプ     計算
  オプション  市郡 & 町
住所録のリレーションを変更します
 リレーション名は[郵便番号 住所]
住所録     郵便番号帳
  住所   =<   住所市から
  住所2  =>   住所市から
   郵便番号帳の[住所]を[住所しから]に変えます

住所録の住所に、高松市塩江町と入力してみてください、県名の入力が不要となりました

もう少しアップしましよう
郵便番号の入力をボタンにします
スクリプトの作成 [郵便番号確定]
内容は、郵便番号帳の郵便番号をコピーして、住所録の郵便番号へ、ペーストします

ポータルの郵便番号をボタン設定します、
スクリプト実行[郵便番号]を設定  現在のスクリプト[すべて終了]
 
住所録の住所に、高松市塩江町と入力ます

 
 ポータルリストのどれか郵便番号をクリックしてみてください
 郵便番号と住所が変わりました
 
手入力より簡単ですね
 
郵便番号ボタンを押し間違えたら、住所の県名の削除と住所の後ろを削除して、再度郵便番号を押す必要があります、
 
細かいことですが、ここをじっくり行ってください。考え方・作成の流れ・パターンが身につきます。
いろんな方法を考えて、テストして試行錯誤すれば、同じようなことを次回は、スムーズに進むでしょう。
 




 

0 件のコメント:

コメントを投稿