top of page

FileMaker チェックしたレコードのみ表示

更新日:5月20日



はじめに

 ”ほうがん” です。前回に引き続き、J.P.ホーガン氏の著書の紹介です。  今回は、彼のデビュー作「星を継ぐもの」です。そのはじまりは以下の如く、 月面で深紅の宇宙服をまとった死体が発見されました。綿密な調査の結果、驚くべき事実が判明する。死体はどの月面基地の所属でもなければ、ましてやこの世界の住人でもなかった。彼は五万年前に死亡していたのだ!  月面で5万年前に死亡していたこの宇宙服を着た死体は何者か?をめぐって物語が錯綜します。さて、結論は?  「星を継ぐもの」今まで読んだことが無かったという方、ぜひご一読ください。お勧めです。  この作品は彼のデビュー作であると同時に長らく続くシリーズの第1部で、今まで日本語訳が済んでいなかった第5部にして最終巻となる「ミネルヴァ計画(仮題)」がこの冬(2024年)に刊行されることがアナウンスされています。



チェックしたレコードのみを表示する

 本題に戻りましょう。  前回、FileMaker で複数レコードに「チェック」を入れて選択したコードを作成するという手法を紹介いたしました。

 今回はこのチェックした選択レコードのみを表示する機能を実現してみたいと思います。


複数同時利用が無い場合(前回のおさらい)

 複数同時利用がないデータベースでしたら、  レコードに「チェックボックス」フィールドを置いて、そこにチェックを入れる事で選択レコードを作成できて、  以下のようなスクリプトを実行すれば選択した対象レコードのみ表示する事ができます。 検索モードに切り替え[ 一時停止:オフ] フィールド設定[チェック; 1 ] レコード/検索条件確定[ダイアログあり; オフ] 検索実行[]



複数同時利用を想定した場合(前回のおさらい)

 複数同時利用されるデータベースでは、このレコードごとのチェックボックスを「チェック」した場合、複数の人が同時に選択した場合に個々の選択状態は保てません。同じテーブルのレコードをAという人とBという人が同時に「チェック」した場合、2人分の選択したレコードが対象となってしまいます。  このため、複数人が共有したデータベースで個々の選択状態が保ちつつ、レコードの「修正情報タイムスタンプ」が更新されるのも防ぐため、選択レコードされたレコードの情報を当該レコードに書きこまずに「グローバルフィールド」に保存する構造を前回とりました。

 今回は、この選択されたレコードの情報を持つ「g_選択レコード」の値を使用して、チェックした対象レコードのみを表示するという動作を実現します。



「g_選択レコード」と「シリアルID」の自己リーレーション作成

 前回のファイル「選択レコード」を使って、この機能を作成していきます。  「選択レコード」ファイルを開いて、現状のリレーションシップを確認します。

 同じテーブルを複製し「g_選択レコード」と「シリアルID」で連結した自己リレーションシップを作成します。


 リレーションシップの準備はこれで終了です。「OK」ボタンを押して、次に対象レコードを表示するスクリプトを作成します。



「選択レコード表示」スクリプトの作成

 「選択レコード表示」スクリプトに1ステップを作成します。 関連レコードへ移動 [関連レコードのみ表示; テーブル ; 「住所録_自己」;使用するレイアウト;<現在のレイアウト>]


これでスクリプトは完成です。



ボタン 「選択レコードのみ表示」を作成

 レイアウト画面に戻り、「選択レコードのみ表示」ボタンを作成し、先に作成した「対象レコード表示」スクリプトを割り当てます。

ブラウズモードに戻り、ボタンの動作を確認してみます。



 これで完成です。ブラウズモードでボタンを押して動作を確認してみます。  「選択レコードのみ表示」のボタンを押すと、チェックを入れたレコードのみが表示されました。

たった1ステップのスクリプトで「対象レコードのみ表示」する機能が実現できました。 関連レコードへ移動スクリプトを使うと、


検索モードに切り替え フィールド設定[] レコード/検索条件の確定 検索実行[]


などの検索スクリプトステップ群を利用することなく対象レコードの一覧を表示する事が出来ます。 覚えておいて損はない手法ですのでぜひご活用ください。 今回作成したファイルを置いておきますので、参考にしていただければ幸いです。



bottom of page