連載【FileMaker Go 超活用!】
第1回 iPhone/iPadでFileMakerデータベースを活用
第2回 FileMaker Goに最適化したレイアウトの作成
第2回 FileMaker Goで利用するスクリプト

FileMaker Proには一連の動作を記述できるスクリプトがあります。メニュー操作で行う一連の動作を処理ごとに名前を付けて保存しておき、レイアウトに配置したボタンのタップ、フィールドへ移動や入力といったアクションに合わせて実行させることができます。またスクリプトでは、動作しているOSの種類やウインドウのサイズなどの情報を取得する関数と組み合わせ、状況を判断して処理を実行させることができます。今回はいくつかFileMaker Goで利用するスクリプトの例を用意しましたので、それを紹介していきます。

環境情報を取得する

作成するデータベースファイルを、複数のOSに対応できるように作成している場合は、実行時に動作環境の情報を取得する必要があります。それにより、iOS上のFileMaker Goで動作しているのであればiOS専用の処理が実行できますし、またデバイスに最適化されたレイアウトを表示することができます。

プラットフォームの種類を取得する関数
書式:Get ( システムプラットフォーム )
返値 プラットフォームの種類
3 iOS
1 Mac
-2 Windows
アプリケーションおよびバージョンを取得する関数
書式:Get ( アプリケーションバージョン )
返値 デバイス
Go_iPad 1.1.2 iPad
Go 1.1.2 iPhoneまたはiPod Touch

この関数は環境により、上記の表の返値以外にも、「FileMaker Pro」や「FileMaker Web Client」などのように現在動作中のアプリケーションを表す値を返します。

また、関数を利用してデバイスが縦になっているか横になっているかを判定することもできます。

ウインドウの高さと幅を取得する関数
書式1:Get ( ウインドウ内容高さ )
書式2:Get ( ウインドウ内容幅 )

この2つの返値を比較し、高さの値が大きければデバイスを縦にしていることになりますし、幅の値が大きければデバイスを横にしていることになります。

If [Get ( システムプラットフォーム ) = 3]
  If [Get ( アプリケーションバージョン ) = "Go_iPad 1.1.2"]
    レイアウト切り替え[ 「顧客情報詳細_iPad」 (顧客情報)]
  Else
    レイアウト切り替え[ 「顧客情報詳細_iPhone」 (顧客情報)]
  End If
Else
  #  -----省略-----
End If

このうちの「レイアウト切り替え」が、FileMaker Proがあらかじめ用意しているスクリプトのステップで、続けてどのレイアウトに切り替えるかを指定することで、レイアウト切り替えを実行できます。上記の一連のスクリプトでは、システムプラットフォームの値が「3」だった場合、iOS上で動作していると判断して処理を行います(それ以外の値だった場合の処理は、「-----省略-----」の部分に記述します)。iOSだった場合の処理では、アプリケーションバージョンを取得し、iPadで動作しているならiPad用のレイアウトを、そうでないならばiPhone用のレイアウトを設定しています。

iPadまたはiPhoneを判断し顧客情報詳細のレイアウトを切り替えて表示するためのスクリプト