【FileMaker】カスタム関数を作ろう

さて、FileMaker Advent Calendar 2015 6日目です。

systemMasterからExcecuteSQLを使ってシステム値を取得するという回を覚えてますか?
システムマスタからシステム値を取得するのはよくあることだと思うので、何度もExcecuteSQLを書かずにみんなが使えるようにカスタム関数という形にしていきます。

カスタム関数を作るときは、「ファイル>管理>カスタム関数…」にあります。
スクリーンショット 2015-12-03 15.41.36.png

指定する所は、
スクリーンショット 2015-12-03 16.38.12.png
カスタム関数名、引数、計算式です。

引数は、関数のカッコ内で指定するパラメータです。
複数追加できますが、大抵3個くらいがMaxでしょうかね。

ExecuteSQLで指定するSQL文の引数に指定できます。
この「?」の部分が引数の値が入ります。
SQL文で「?」に引数を当てるというやり方は、FileMakerの仕様ではなく、SQLの仕様なので、覚えておくと他の言語でも応用できます。
仕事の幅を広げるためにも、ぜひSQLの書き方を覚えてくださいねー。

ここでは単にカスタム関数を作ることに重点を置いているので、エラー処理は書いていませんが。引数が範囲外だったらなどのエラー処理も決めておくと、より実用的になります。

では、カスタム関数を使ってみましょう。
フィールドのグローバル指定でカスタム関数を使って値を保持する例です。
スクリーンショット 2015-12-03 16.42.48.png
「カスタム」の中に、先ほど作ったカスタム関数「GetSystemValue」が出てきますね!

はい!
system2にGetSystemValueで取得した値が保持されて、表示できています!
スクリーンショット 2015-12-03 16.42.12.png

いかがでしたか?
カスタム関数は敷居が高いなぁと思っている方、何度も同じ関数を書くよりは、こうしてカスタム関数を作って共有した方が便利なので、ぜひ活用してみてください。