#コーディング標準について
##スクリプトや関数
ファイルメーカーでソリューション開発を行う場合、かなり本格的なものを作る場合でも少人数で出来てしまいますが、あとからのメンテナンス性などをこうりょするとやはりスクリプトやリレーションの表記などに関する標準化をしていきたいところです。
そんな時に私が参考にしているサイトを紹介しておきます。
その名もFileMakerStandards.org。そのまんまです。(^_^;
すべてこの通りに記述しているわけではないですが、この内容を参考にして自分なりのアレンジをしていくというもの一つの方法です。
##リレーションの表記
RDBでの開発者がファイルメーカーのソリューション開発をするときに概念の違いに一番戸惑うのがリレーションではないでしょうか。
私の理解として、ファイルメーカーのリレーションはインスタンスの関連を表すオブジェクト図だと考えています。
グラフ表記としては以下のようにテキストノートを利用し、枠と色分けして表現しています。
その他、関連によってレコード作成や削除について「+」「-」を表記するというのもアイデアとしてあるようですが私はそこまではしていません。
開発人数が増えたときには採用するかもしれませんが。
#スクリプトの引数について
スクリプトをなるべく汎用的に作成しようとすると、引数を受け取る必要がある場面が多くなります。
そこで、複数の引数を受け渡す方法についてまとめておきます。
今回はカスタム関数を利用する場合と、利用しない場合の両方を書いておきます。
##カスタム関数を利用する場合
Advanced版を利用している場合はカスタム関数を利用すると、記述をシンプルにできるのでおすすめです。
私は前述のコーディング標準で紹介したFileMakerStandards.orgのテンプレート提供ページにあるテンプレートのカスタム関数を利用しています。
簡単なサンプルを紹介します。
その他の関数を組み合わせて必須引数とオプション引数の判定なども行えますので、詳しく知りたい方はFileMakerStandardsのサイトを参照してみてください。
###スクリプトのサンプル
カスタム関数「#Assign()」を利用します。
1 #引数を受け取るだけのシンプル版
2 If [#Assign ( Get ( スクリプト引数 ) )]
3 #ここに実際の処理を記述します
4 #引数は#Assign関数でスクリプト名に書いてある変数名に格納されています
5 #この例の場合は $パラメータ1 と $パラメータ2 という変数に値が設定されています
6 End If
###スクリプト呼び出し時の記述
カスタム関数「#()」を利用します。
複数のパラメータは上記のように&でつなげるだけです。
実際には引数の順番は関係無く、名前さえ合っていれば順番が入れ替わってても正常に呼び出せます。
##カスタム関数を利用しない場合
###スクリプトのサンプル
ファイルメーカーのスタンダード版しか手元に無い場合は、カスタム関数が定義出来ないので別の方法で受け渡します。
方法は色々あると思いますが、各パラメータを改行で区切った状態で受け渡しGetValue()関数で取り出すのが分かりやすいのではないでしょうか。
1 #カスタム関数を利用しないパラメータ受け渡し例
2 変数を設定 [$パラメータ1; 値:GetValue ( Get ( スクリプト引数 ) ; 1 )]
3 変数を設定 [$パラメータ2; 値:GetValue ( Get ( スクリプト引数 ) ; 2 )]
###スクリプト呼び出し時の記述
呼び出し側は改行で区切って、引数の順番も守って記述します。
説明は以上です。
これ以外にももっと良い方法があるかもしれませんので色々試したり工夫して見て下さい。
もしももっと良い方法を見つけたら是非ご紹介下さい!(^.^)