ファイルメーカーでメディア管理システムを作る話の続き、レイアウトについて。2ページ目に自動サイズ調整について追加しました。
レイアウト
さてレイアウトです。ファイルメーカーはレイアウトがすべて。レイアウトとテーブルオカレンスが一体と化した独自製法のFileMakerアイデンティティのキモ部分ですね。お楽しみの部分でもあります。
メインと一覧
FileMaker16以前はセルフポータル機能がなかったので、メイン画面と一覧画面の二つを用意するのが基本の形でした。17以降はメイン画面の端にリストを置くことが出来るので必ず一覧が必須とは言えなくなりました。これ嬉しいんです。


プレビュー
メディア管理システムの場合、肝心のメディアをどう表示するかってのがあると思います。メディアだけでっかく表示したいのか、事細かにデータを羅列したいのか、目的によりますけどデータを沢山詰め込むレイアウトではプレビュー小さめにならざるを得ません。
FileMaker16からカード表示というカッコいいウインドウスタイルが手に入りましたので、プレビュー専用のレイアウトを作ってそれをカード表示するという、QuickLookみたいな、小気味の良いインターフェイスデザインを実現することができました。これも嬉しいんです。

タイル表示
メディア管理、画像データベースのようなものを作る上でどうしてもタイル表示のブラウジングがやりたくなります。前回書きましたので繰り返しませんがファイルメーカーではレコードをタイル状に並べる機能はありません。繰り返しましたが(しつこい)
苦痛と力業でタイル表示モドキを作ることはある程度可能です。例えばレコードをひとつだけ表示するポータルにレコード開始番号を順に割り当ててたくさん並べるとか、繰り返しフィールドと計算を駆使して無理矢理行と列を作り出すとか、モドキみたいなのは作れなくはないです。
でもね、タイル表示がウインドウに追従するわけでもないし、スクロールで延々表示し続けられるわけでもないし、サムネイルの大きさを自在に変えられるわけでもないし、縦横無尽にサクサク閲覧していけるのとはほど遠いものです。何のためのタイル表示かという部分において、表層的な見た目だけのタイルモドキに価値はほとんどないんですよね。
タイル表示の快適ブラウジングを望むなら、割り切って一般の画像管理ソフトと併用するのがいいですよ。画像管理ソフトというか、どっちかというとがメディアブラウザ的なやつが向いているかな。
メディア管理ソフトを探すという一連の記事が後にポストされました
-> 画像管理のアプリケーション
データとレイアウト
FileMakerのレイアウトはグラフィックソフト並みに自由に作れて楽しいのですが、単にグラフィカルなだけじゃなく機能も豊富、アプリケーション開発に近い部分もあります。さらに機能はデータテーブルと超密接、テーブルオカレンス=レイアウト=機能=目的=操作と、実はとっても複雑で、無計画に作ってると収集付かなくなってきたりします。
長年ちまちまとFileMakerを弄ってきて、ようやくわかってきたコツみたいのがあって、それはこんなことです。
データとレイアウトを分けて考える
データテーブルを作ってフィールドを作ってレイアウトを作ってリレーション組んで・・・気がつけばレイアウトもリレーションもスクリプトも膨れあがりわけがわからないカオスと化します。やり直そうにもどこから触っていいものやら。とほほ。と、こうならないために肝に銘じるのは、データとレイアウトを分けて考えることです。
データテーブルはデータテーブル、レイアウトはレイアウトです。レイアウト用テーブルをこしらえてデータテーブルとリレーションしてやるだけでもいいし、ファイルを分けてもいいです。とにかくデータを司るテーブルはクールにデータだけがあって、そこにレイアウトの部品を持ち込まないことです。
レイアウト専用画面なり別ファイルなり別テーブルなりで思う存分作り込みます。やり過ぎて失敗したらポイと捨てます。データは別の場所で無傷です。
シンプルリレーションとシンプルレイアウト
一つのレイアウトにすべてをぶち込むと、その分リレーションの図も四方八方に広がってこれまたカオス化します。ある日根本的に修正を施そうとしても何がどう繋がってんのかわからない状態となりとほほと立ちすくみます。こうならないためには、レイアウトの目的を定め、単機能レイアウト単機能リレーションを目指します。
目指していてもどうしても複雑化します。目指しても複雑化するんだから目指さなければもっと複雑ですよね。なるべく目指します。
テーブルオカレンスのリレーションの並べ方、それから命名についても意識したほうがいいです。なるべく一方向にわかりやすく並べ、わかりやすい命名を行います。一つのリレーションで一つの言葉からちゃんとスタートするとか、「レイアウト・リレーションの起点となるテーブルを他のリレーションの部品にしない」と心がけるなどです。
起点を他のリレーションの部品になるべくしない
そうそう、これなんです。これどういうことかというと、レイアウトを作りますね。このレイアウトには特定テーブルオカレンスが表示されています。これが起点のレイアウトで起点のテーブルオカレンスです。
このテーブルオカレンスに、これからいろんなテーブルをリレーションで繋げていくわけですが、ほぼすべて起点にぶら下がるリレーションとなります。ここを意識します。
別のレイアウトBを作ったとします。そのレイアウトBで先ほどの起点レイアウトを繋げるとしますね。このときリレーションの図は、新しいほうのレイアウトが起点となっています。さっき起点だったレイアウトはこれにぶら下がってるだけ。こういうとき、リレーションの図でうっかり先ほどのテーブルに直接繋げないのがそのコツになります。先ほどの起点オカレンスを複製して、新しい起点レイアウトBを基準とする名前を付けてあげてそれを繋げるんです。
起点=レイアウトです。レイアウトこそリレーションの起点。みたいな感覚です。こんなことを意識すると、リレーションの混乱を防げます。

とは言っても現実には理想通りにいきません。リレーションを組んでいく中で起点を1個だけに留めることが困難な場合もあるでしょう。そういうときは上のほうの図にあるように、色のついたテキストボックスで囲んだりして、視覚的に把握できるよう工夫しています。
はじめて色のついたボックスの図を見たときは「これどうやんの?ぜんぜんわからん」と悩みましたが、リレーション図の画面で「テキスト」を選んでやると色のついたボックスが作られるんです。知ってました?私はFileMaker14のころまでまったく知りませんでした💦
メディアファイルの扱い
画像や動画ファイルをどういう扱いにしているかによりますけど、すべてを「参照」で管理しているとすればOSのファイル操作と密接、すべて取り込んで専用フォルダに格納しているならFileMakerでの操作や、上で書いたような他のメディアブラウザアプリとの併用が効率良くなります。
参照
参照をベースにしているならメディアファイルは元の場所にあります。OSのファイル管理に準じますね。FileMakerのメディア管理システムはメディアブラウザとしての役割も大きくなるのではないでしょうか。
フィールドでいうとファイルパスが重要になりますし、OSのファイル管理とどう連携させるかってところがポイントとなります。
内部管理
参照ではなく、専用フォルダにメディアファイルを格納するなら、ファイルパスに関しては大きな比重を占めなくなりますね。メディアファイルは必ず指定フォルダの中にありますからファイル操作に関する自動処理もシンプルに作れそうです。
専用フォルダにメディアファイルが集められていると、一般のメディア管理アプリを併用するメリットも出てきます。アプリでメディアフォルダを指定しておけばさくさく閲覧できますから。自ずと、FileMakerではブラウジングよりまさにデータベースとしての役割が大きくなってくると思います。
次のページは小ネタの快適操作についてですが、レイアウトについて追加を書きましたので2ページ目へと続きます。
レイアウトの2ページ目は自動サイズ調整についてです。
“FileMakerでメディア管理 2 レイアウト” への1件の返信