FileMakerでメディア管理 – サムネイルのタイルビューを作った その5。スクリプトについて。スクリプトをひとつだけ用意します。
スクリプト
使用するスクリプトは一つだけ。タイルビューでサムネイルをクリックしたらプレビューが開くスクリプトです。

これがそのスクリプトです。ちなみに名前は「ビューアからカードを開く」です。みんなはこんなのじゃなく真っ当でかっこいい名付けすることをオススメします。
ざっくり流れとしては、ウインドウサイズの調整仕込みをして、目的のIDをゲット、目的IDのレコードを探して、見つかればプレビューをカードスタイルで開き、目的IDのレコードに移動して表示。こうなってます。
細かく説明します。
6〜7行目: 最初にウインドウ幅と高さを変数に格納しています。プレビューが開く前の、元のウインドウサイズです。
17行目:元のウインドウの8割サイズでプレビューをカード表示させています。
8行目:変数$id = GetValue( Get( スクリプト引数 ) ; 1 ) です。「スクリプト引数」をゲットして変数$idにセットします。
タイルビューでサムネイルをクリックすると、そのレコードのIDがスクリプト引数として送られつつこのスクリプトの実行を命じられます。FileMakerに命令するURLの仕業です。
→ その2 – 機能: サムネイルをクリックするとプレビュー画像が表示される
スクリプト引数として送られたIDを受け入れ変数に格納。こうしてクリックされたレコードのIDを手に入れました。
この後、対象レコードのIDリストIDsをループで回して手元のIDと同じIDが出てくるのを待ちかまえます。
10〜11行目:ループに入ります。まずは準備としてカウンター( $i )を設定します。最初は 1 です。カウンター = 行 です。
12行目:ループはカウンター「1」からスタートします。カウンターが1なら1行目を調べ、そのIDを仮の入れ物 $image_id に格納します。
13行目:ループが終わる条件を書いています。スクリプト引数として手に入れた目的のIDと、仮の入れ物#image_idが等しければそれがアタリです。アタリを見つければループ終了させます。
14行目:ループ中のIDが目的IDと異なっていたらカウンターを2にしてループの最初に戻ります。2行目のIDが目的のIDと同じかどうかチェックするわけです。
こうして高速ループが一瞬にして目的IDが何行目にあるかを特定します。
何行目に書かれていたかを知ることがこのループの目的です。優れものの集計フィールド[一覧]は、対象レコードを一覧するだけでなく、その並び順も正しくリストします。つまり、何行目であるかということと、対象レコードのレコード番号は一致するわけです。
19行目:ここでレコード移動のスクリプトステップを入れています。ループで取得したカウンターの数値すなわち行番号すなわちレコード番号を指定します。
これで、タイルビューでクリックした画像のウインドウがプレビューとして表示されました。
以上、FileMakerでメディア管理、サムネイルをタイル状に並べるビューの実現についてのポストでした。
最後に、とても重要なことを忘れていたので追加で記しておきます。
他の重要な事柄
アクセス権の設定
URLでFileMakerに命令を渡すやり方を覚えましたが、デフォルトではこの操作が許可されておらず、許可する設定をしなければならないのでした。
管理 > セキュリティからアカウントを編集、アクセス権セットの「編集」を選んで拡張アクセスのチェックを入れます。「URLによるFileMakerスクリプトの実行を許可」がそれです。

実際の試作品をダウンロード
それから、実際に作った試作品を元にこのポストを書いたのでダウンロード出来るようにしておきます。こちらからどうぞ。
FileMaker Pro 17 で作ったファイルです。v17から実装されたセルフポータル機能を一部で使っているのでv16以前ではそうした箇所に問題が出ると思われます。また、Mac用です。Windowsだとパスなどで何らかの影響があるかもしれませんが検証していません。
尚、ファイルは圧縮時にパスワードを掛けています。4桁の数字。九九の4の段の最後です。
もったいぶったパスワードをやめました。ご自由にどうぞ。
FileMakerでメディア管理 サムネイルのタイルビュー、ひとまず完了です。いつかFMメディア管理 実作編で再登場するかもしれませんが判りません。
ダウンロードしたサムネイルタイル表示.fmp12が解凍時に壊れているとのメッセージがでてエラーになります。
ダウンロードに失敗したのかもしれないですね。
念のためにファイル名を変えたものを置き直し、圧縮アプリを変えたものを追加で用意しました。再度試してみてください。
尚、何度も同じものをダウンロードすると、OSが勝手にファイル名を変えるかもしれません。例えば ファイル名 2.fmp12 とか。ファイル名が変わるとスクリプト的にマズいのでご注意ください。