FileMakerルーキーズ勉強会#32のフィードバック <★ポータルレコードの削除 ★リレーションのレコード削除許可 ★Clarisサンプルのトリガを解析>
◆開催日時:2022/09/11(日) 10:10-12:10
◆参加者:現地1名+オンライン2名。[初参加 なし]
◆ルール:ルーキーを置いてけぼりにしないこと(可能な限り)
【先に次回開催のお知らせ】
2022年11月13日(日) 10:10-12:10(オープン10:00)を予定しています。これまで毎月開催していましたが、今後は奇数月の第2日曜日で隔月開催になります。connpassのイベントページに追加されたらご参加表明よろしくお願いします↓
■connpassイベントページ ※登録も参加も無料です
https://fm-rookies.connpass.com/event/
「メンバーになる」にしておくと、新しいイベントが用意できた際に案内メールが届きます♪
☆この記事内容が難しいと感じても気にしないで下さい。たまたまそういうトピックだっただけです^ ^
◆フィードバック
【アイスブレイク】★ポータルレコードの削除
【トピック1】★リレーションのレコード削除許可
【トピック2】★Clarisサンプルのトリガを解析
【アイスブレイク】★ポータルレコードの削除
事前の抽選により、MastorBook初級編のP.274「ポータルレコードの削除」の箇所を取り上げました。
今回の参加者は皆さん何らかポータルを使っていたので、ポータル自体は知っているものとして進めました。
次のページが演習問題になっていましたので、そのサンプルファイルを使って削除機能を作ってみました。
まずはスクリプトを作成。ステップは『ポータル内の行を削除[ダイアログあり:オン]』の1行だけです。
ポータル上にボタンを配置。
ボタンには先ほど作ったスクリプトを指定します。
ゴミ箱ボタンを押すとスクリプトが動いてポータル行を削除できるようになりました^ ^
ちなみにポータル設定で「ポータルレコードの削除を許可する」(真ん中あたりにある)にチェックを入れると、スクリプトを使わずにレコード削除ができます。
削除したいポータルの行をアクティブにしておき(クリックするなどして)、レコード削除をします。
「この1つの関連レコードを完全に削除しますか?」というダイアログが出てきます。「関連レコード」という文字があるように、ポータルのレコードを削除してくれます。
なお、ポータルではなく現在のレイアウトテーブルのレコードがアクティブになっていたら(例えば主キーが「10」の「ダミータスク名10」というレコード)、当然ながら普通にそのレコードが削除されます。どこがアクティブになっているかで削除対象が変わりますのでご注意下さい。(「ポータルレコードの削除を許可する」にチェックが入っている場合)
ポータル行を削除する時にデフォルト機能のレコード削除を使うと、最初のうちは混乱してしまうかもしれません。
やはりポータル行の削除はゴミ箱ボタンを作成するのが良いかと思います^ ^
【トピック1】★リレーションのレコード削除許可
アイスブレイクの時に、「リレーションの関連レコード削除とは違うの?」という疑問が挙がりましたので、【トピック1】としてやってみることにしました。
その削除というのは、リレーションシップ編集の「他のテーブルでレコードが削除された時、このテーブルの関連レコードを削除」のことです。
実際にチェックを付けてみんなで試してみました。
右側は「担当者割当」のTO*で、そちらにチェックを付けます。これはどういう動きになるかというと、左側の「タスク管理」TOのレコードが削除されたら、関連した(紐づいた)担当者割当テーブルのレコードも削除されます。
*TO・・・テーブルオカレンス
文章で書いてもよく分からないので、キャプチャを交えて書いてみます。
分かりやすいように2つのウインドウを並べて、左に「タスク」、右に「割り当て」のテーブルのレイアウトを出しておきます。
左の「タスク」で主キーが「1」のレコードを削除します。
すると、左の「タスク」は当然削除されますし、右の「割り当て」側もタスク外部キーが「1」だった4レコードも削除されました。
これを、分かりやすく「道連れ削除」と呼ぶことにしました(笑)
さて、ここからは実験になります。
左右の削除にチェックを入れるとどうなるでしょうか?2つのチェックが入った状態でポータルの行を削除してみます。
ポータルの2行目を削除します。どうなると思いますか?
ポータル2行目が削除され、道連れ削除により左側の主キー「2」のレコードも削除されました。そしてさらなる道連れ削除で右側のタスク外部キー「2」のレコードもすべて削除されました。
削除の様子を目で追うことはできませんが、おそらく2段階の削除の動きが発生したものと思われます。
これを分かりやすく「往復ビンタ削除」と呼ぶことにしました(笑)
(やや余談です。主キー「2」のレコードが削除されても画面上には残像として表示されたままの状態になりました。実運用で行う場合は画面のリフレッシュを考えないといけません。)
次の実験です。
左側だけに削除のチェックを付けて、ポータルの行(右側のTOのレコード)を削除するとどうなるかやってみました。どうなると思いますか?
ポータルの2行目を削除してみます。タスクのレコードは主キーが「4」のレコードです。
すると、左側の主キー「4」のレコードが道連れで削除されました。右側を見ると、ポータル2行目のレコードは削除されましたが、それ以外は残っています。
リレーションがまだよく分からない方にとっては大混乱かもしれません、ごめんなさい^ ^;
とにかくリレーションには「道連れ削除」と「往復ビンタ削除」ができる機能があるということです。「往復ビンタ削除」のほうは、あまり実運用ではお目にかかりませんが、もし使う場合には充分気をつけないといけないですね。
【トピック2】★Clarisサンプルのトリガを解析
Aさんが Claris 社のサンプルファイルで悩んでいるということで、一緒にそのファイルを見てみました。
「製品カタログ」のサンプルファイルで、小さな4つの画像をクリックすると上の大きな画像に表示される、というものです。
この小さな4つの画像に2つ仕込まれているトリガが分からない、とのことで見てみました。
確かに、2つのトリガが設定されているように見えます。
フィールドがボタン化されてグループになっていたので、グループ解除をして調べたりと、色々みんなで探ってみました。
しかし、結局どのようにトリガを2つ設定したのかは解析できませんでした・・・・・・。
「製品カタログ」サンプルファイルはバージョン18の時に「新規作成」のところでサンプルが表示されて利用できました。現在のバージョン19にはありません。
Claris さんにはサンプルを提供してもらえて有難いのですが、どのように設定しているか、例えば解説動画などをアップして頂けると嬉しいのですが・・・。
サンプルをカスタマイズして利用したのは良いものの、中身が難しいと何かあったときに修正ができなくてユーザーは困ると思うんです。。
といったところで #32 は色々脱線しながらも実務に近い、話題満載な勉強会となりました!
ご参加頂いた皆さん、ありがとうございました!
一人ランチ打ち上げは、ダンダダンの焼餃子定食でした(笑)
* * * * *
(参考)今回の事前抽選トピック候補です。気になるものは次回のトピックに挙げてくださいね。
①[中402] スクリプトの作成(ファイルパスに変数を使う):取り込み
②[中663] アカウント情報
③[関768] 読み上げ(macOS)
④[関369] Get(レコードアクセス)
⑤[中704] 排他
※ [ ] はMastorBookのページ。(初級/中級/関数・スクリプト)
◇抽選会の様子→https://youtu.be/_BTXB10J_Do
* * * * *
FileMakerルーキーズ勉強会は、人が集まれば開催し、集まらなければ開催しない、初心者・初級者・入門者目線のゆるい朝活勉強会です。
参加してみたいという方で「自分が参加しても大丈夫かな?」とご不安の方は主催者までお問合せください^ ^
◎専用フォーム↓
https://forms.gle/qAmupGh2WkRis6CZ8
【次回開催のお知らせ】
2022年11月13日(日) 10:10-12:10(オープン10:00)を予定しています。これまで毎月開催していましたが、今後は奇数月の第2日曜日で隔月開催になります。connpassのイベントページに追加されたらご参加表明よろしくお願いします↓
■connpassイベントページ ※登録も参加も無料です
https://fm-rookies.connpass.com/event/
「メンバーになる」にしておくと、新しいイベントが用意できた際に案内メールが届きます♪
☆この記事内容が難しいと感じても気にしないで下さい。たまたまそういうトピックだっただけです^ ^