FileMaker メディア管理の作り方、7個目のバージョン。簡易的なセレクトを設置したほか、些細な使い勝手を変更。存在チェックなどを施しました。
FileMakerメディア管理を作って育てる過程を全公開するシリーズ記事です。
今回は UI 絡みの更新がいくつか。表面的な事柄が目立つかもしれません。多分、第一期をここで終えます。第二期に向かうための伏線敵な変更点もあります。
ダウンロードできます。お試しください。
FileMaker Pro v19 が必要です。一部機能がMac専用です。
アップしたファイルに失敗は付きもの、アップ直後は頻繁に更新されるかも。
おかしいなと思ったら↓バージョンを確認してください
バージョン:R7 2023.04.22 update
作成と構築 R7 の概要と使い方
ダウンロードしたファイルは空ですので、何かメディアをインポートしてお使いください。設定パネルで、フォルダかファイルか、参照か格納かなどを選んでインポートします。
セレクト
R7 の表面的な変更点はセレクトです。左の□あたりをクリックすることで選択状態となります。
ちょっと分かりにくいけど上の小さなボタンから選択したレコードを絞り込んだりします。
「選択のみ表示」で対象レコードとなりますので、例えばエクスポートの「対象すべて」で使えるようになります。
存在チェック
セレクト以外にも追加した機能がいくつかあります。存在チェックもその一つ。参照で登録したメディアが元の場所にちゃんとあるかチェックします。行方不明があれば status フィールドに「Missing」と知らせます。
存在チェックで少しこだわった点がありまして、それは「システムドライブは異なるが一致するユーザーフォルダ内では存在を確認できる」レコードを自動で修正します。
別のコンピュータに同じユーザーでログインしており、その中の例えば iCloud Drive や Dropbox 内フォルダを参照インポートした場合などに当てはまります。私個人はこのケースが非常に多いので対処しました。みんながこんな使い方をしているかどうかは疑問ですので、この機能に普遍的価値があるのか判りません。
表層的ないくつか
表面的な細々としたことも少しあります。例えば ボタンで情報パネルのオンオフできますが、プレビューでも連動します。
画面の下の方にズームボタンとか。昔は FileMaker Pro のウインドウのこの辺りにズーム機能付いていましたよね。あれ便利だったのになあ。
何の機能も付随しない単なるメモフィールドとか。
本来ならキーワードやタグのような機能を持たせるべきですが、そういうのは後回しにして取りあえず単なるテキストフィールドです。何の機能もありません。検索したいときは FileMaker Pro の標準機能を使ってください。
設計と仕組み
そんなわけで、今回の R7 ファイルを最後に、第一期を終了する予定です。
ここでダウンロード出来るファイルは、実は見えない大きな変更をしたので不具合が残ってるかもしれません。公開後しばらくはマイナー修正版のチェックもお願いします。
第一期のそろそろ最後
さて第一期とはどういう括りなのか。それは FileMaker Pro の機能の中だけでやりくりする作り方です。まだまだやれることはたくさんありますが、このあたりで区切りを付け、第二期へと進みます。その主な理由は、根本の設計を変更するからです。このまま機能を追加していっても、いつか必ず根本から変更する必要が出てきます。その時、機能豊富でスクリプトや計算式が多いと変更も大変、今のうちに止めておくのです。
テーブル名の変更
意味がなさそうで深い意味を込めた大きな変更点があります。それはメインのテーブル名を変えたことです。これまでは「MediaDB」という名前でしたが、これを「mainData」と変更しました。
FileMaker Pro は優れていて、テーブル名やフィールド名を変更したら、それを用いているスクリプトや計算式内で変更に合わせて修正してくれるんです。これすごくないですか?
ただし、変更されないケースもあります。「名前で」に書いたり、スクリプト引数に指定したりといったテキストで書き記したケースです。さっき、このファイルは不具合が残るかもしれないと言いましたが、こうした細かい部分の見逃しがありそうだからです。
それはさておき、テーブル名の変更ともうひとつ、新規にテーブルを追加しています。「subData」というテーブルで、サブ的なフィールドや刹那的なフィールドを置いています。例えばソート用のフレキシブルなフィールドとか。
これに対してメインテーブルを「mainData」と変更しました。だんだん狙いが見えてきたでしょうか。そうです。いずれ、データを受け持つファイルを分離したいと画策しているその心の準備というわけです。
ソート
今ちらっと触れましたがソートを変更したんです。その必要フィールドを subData テーブルに置きました。
フィールド名を指定するグローバルフィールドを作り、指定されたフィールドのクローンを納める計算フィールドを作り、その計算フィールドでソートするという仕組みです。
詳細については以下のポストをご覧ください。
スクリプト
ステップバイステップでファイルを育てていく中で、作ってる本人が時として混乱します。それを少しでも軽減するため、スクリプト名にバージョン名を入れるという工夫なんぞをしています。
これはこれで「名前で実行」に注意するとか、ミスの原因となり得る危険な措置ですが 💦
今回はテーブル名を変更したりsubDataテーブルを追加したので、それに関するスクリプト変更がいろいろありました。ミスも残ってるかもしれない。
存在チェックやセレクトなど、細々したスクリプトはここに載せるほどのものではないので省略します。興味があればファイルを覗いてみてください。
FileMaker パスから POSIX への段階的移行
これまで FileMaker 標準仕様の中で作ってきましたから、パスはFM形式が主でした。スクリプトステップや関数で使いますしね。しかし今回は多くの部分でそれを変更しています。
FMパスをPOSIXに変換しそれをまたFMパスに変換して使うということをスクリプト内でやっているんです。つまり基軸を POSIX に変更してるんですね。なぜそんな紛らわしいことをするのか、それはFileMakerが推奨しないクラウドストレージ上にファイルを置く使い方をしているからで、FMパスに含まれるシステムドライブ名を現在のシステムドライブに合わせて変更するためです。POSIX は別ボリュームでない限りシステムドライブ名をパスに含めませんから、一旦これを噛ますことで都合の良いパスに変換できます。