ファイルメーカー(FileMaker Pro 12 )で変数を使ってみよう
2013年04月05日 08:27 PM
ファイルメーカーのTips
今回は「変数」の繰り返し数の活用方法 と ループ処理 での使用方法を紹介致します。
前回の変数で説明しました内容の抜粋です。
//ywc.com/filemaker/?p=108
ローカル変数およびグローバル変数を作成して計算式の中で使用することができます。
変数を設定 [<変数名> {[<繰り返し数>]}; 値:<値または式>]
[繰り返し]は作成する変数の繰り返し数(索引)です。
繰り返しが指定されていない場合デフォルトは1です。
例)
前回で使用した名簿データを利用して月別に生まれた人数の集計してみます。
1.集計結果を表示するフィールドとして、下記のようにグローバルフィールドを作成
3.スクリプト「月別人数集計」を作成 スクリプトの内容を下記のようにします。
**************************************************
エラー処理 [ オン ]
#
#月別人数の初期化 1月から12月
#
# 1から12までカウントアップする変数「$月」に0をセット 変数を設定 [ $月; 値:0 ]
#
Loop
# $月に1ずつ加算 変数を設定 [ $月; 値:$月 + 1 ]
#
# ここで変数の繰り返し数を利用
# $月別人数[1]から$月別人数[12]までに0を設定
変数を設定 [ $月別人数[$月]; 値:0 ]
#
# $月が12になったら終了
Exit Loop If [ $月 = 12 ]
End Loop
#
レイアウト切り替え [ “名簿リスト” (テーブル) ]
#
#ループ処理する場合「ウインドウの固定」を設定すると処理スピードが速くなります
ウインドウの固定
レコード/検索条件/ページへ移動[ 最初の ]
Loop
# $月に読み取った生年月日の月を設定 変数を設定
[ $月; 値:Month ( テーブル::生年月日 ) ]
#
# ここでも月別人数を繰り返し数を利用して計算しています
# $月別人数[1]から$月別人数[12]に人数をそれぞれに加算
変数を設定 [ $月別人数[$月]; 値:$月別人数[$月] + 1 ]
#
レコード/検索条件/ページへ移動[ 次の; 最後まできたら終了 ]
End Loop
#
# 最後にレイアウトに表示するフィールドに各月の集計結果を設定
# 1から12までカウントアップする変数「$月」に0をセット
変数を設定 [ $月; 値:0 ]
#
Loop
# $月に1ずつ加算
変数を設定 [ $月; 値:$月 + 1 ]
#
# 集計結果を表示するフィールドに$月別人数[1]から$月別人数[12]の人数を順に設定
フィールドを名前で設定 [ “テーブル::g_” & Right ( “00” & $月 ; 2 ) & “月生人数”; $月別人数[$月] ]
#
# $月が12になったら終了
Exit Loop If [ $月 = 12 ]
End Loop
ウインドウ内容の再表示[]
**************************************************
このように繰り返し数を利用することによりIF文で各月を判定して計算する複雑さを回避することもできます。
是非、変数の繰り返し数を活用して下さい。
※なお、今回の例は説明用のサンプルであり、この方法が最善 というものではございません。
※(2016年3月23日 追記) 上記変数の設定の中で
変数を設定 [ $月別人数[$月]; 値:0 ]
とありますが、 名前が 「$月別人数」 値は「0」 繰り返しが「$月」です。