ファイルメーカー(FileMaker Pro 12 )で変数を使ってみよう

2013年04月05日 08:27 PM

ファイルメーカーのTips


今回は「変数」の繰り返し数の活用方法 と ループ処理 での使用方法を紹介致します。

前回の変数で説明しました内容の抜粋です。
//ywc.com/filemaker/?p=108

ローカル変数およびグローバル変数を作成して計算式の中で使用することができます。

変数を設定 [<変数名> {[<繰り返し数>]}; 値:<値または式>]

[繰り返し]は作成する変数の繰り返し数(索引)です。
繰り返しが指定されていない場合デフォルトは1です。

 

例)
前回で使用した名簿データを利用して月別に生まれた人数の集計してみます。 画像01

 

1.集計結果を表示するフィールドとして、下記のようにグローバルフィールドを作成 画像02

2.総人数は計算フィールドを作成し、下記の計算式を設定 画像03

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」  繰り返しが「$月」です。

20160323-183003