FileMaker Advent Calendar 2015の6日目
いままで使うことがなかったデザイン関数
いままで使うことがなかったデザイン関数ですが、今年はお世話になることがありました
デザイン関数
ホーム > リファレンス > 関数リファレンス > デザイン関数
デザイン関数は、開いているデータベースファイルの構造に関する情報を返します。たとえば、開いているデータベースのすべてのレイアウトやフィールドの名前を判断することができます。
FieldNames関数
目的
<ファイル名> ファイルの <レイアウト名> 上にあるすべてのフィールドの名前を、改行で区切って返します。
構文
FieldNames ( ファイル名 ; レイアウト名 )
FieldRepetitions関数
目的
<レイアウト名> 上にある繰り返しフィールド(フィールド名)の繰り返し数(フィールドを定義したときに指定した繰り返し数と異なる場合があります)と、レイアウト上のフィールドの繰り返しの方向(縦または横)を返します。
構文
FieldRepetitions ( ファイル名 ; レイアウト名 ; フィールド名 )
引数
ファイル名 - 開いているデータベースファイルの名前(ローカルまたはリモート)
レイアウト名 - 指定したデータベースファイルのレイアウトの名前
フィールド名 - 指定したレイアウト上のフィールドの名前
どんなときに使ったか?
繰り返しフィールドが大好きなので
- FieldNames関数
- FieldRepetitions関数
FieldNames関数
例えばこんなレイアウトで
FieldNames関数で現在のレイアウトにあるフィールドを取得してくる
引数は
- ファイル名→Get (ファイル名 )
- レイアウト名→Get ( レイアウト名 )
で取れるので
フィールド設定[dummy::ScriptResult; FieldNames ( Get (ファイル名 ) ; Get ( レイアウト名 ) )]
とすると
datagrid
datagrid[11]
datagrid[21]
ScriptResult
みたいに改行区切りのリストで返ってくる
返ってきたフィールドをFieldRepetitions関数に突っ込む
引数は
- ファイル名→Get (ファイル名 )
- レイアウト名→Get ( レイアウト名 )
- フィールド名→GetValue ( dummy::ScriptResult ; 1 ))
※値番号は適宜
で取れるので
フィールド設定[dummy::ScriptResult; FieldRepetitions ( Get (ファイル名 ) ; Get ( レイアウト名 ) ; GetValue ( dummy::ScriptResult ; 1 ))]
とすると
10 vertical
※GetValue ( dummy::ScriptResult ; 1 ))はdatagridのこと
となりはdatagridフィールドは
- 垂直方向
- 繰り返し数は10
の繰り返しフィールドだとわかる
ScriptResult
dummy
dummy[2]
dummy[4]
dummy[3]
FieldRepetitions関数で
1 vertical
※dummy[2]フィールドを指定したとき
みたいに返ってくる
あと繰り返しフィールドでないフィールドを指定した時にFieldRepetitions関数は
1 vertical
を返す