初心者にもわかるファイルメーカーの
使い方

特定のレコードの数を表示したい

2021-10-15 |  

こういう表示したいときってありますよね。単純に”対象レコード/総レコード数”を表示したいのであれば、実装は非常に簡単です。

このようにマージ変数を組み合わせるだけです。
しかし、これではあまり応用が効きません。
例えば総レコード数が5件でも、無効扱いにしているレコードが3件あればどうでしょう。
実際にユーザーに見せられるレコード数は2件になるわけですから、2/2件表示中になっているのがしっくりしますよね。
今回は、簡単に任意の条件に一致するレコード数をレイアウト上に表示する方法を紹介したいと思います。

・ボタンバーを使う
なんとボタンバーを使います。
リレーションやフィールドを新しく作成する必要はまったくありません。

ボタンバーの名称のみなぜか計算式を使えるのでそれを活用します。
ボタンバーを1つにした上で計算式を記述します。

・計算式

Let (

  [

  !table = Get ( レイアウトテーブル名 ) ;

  !kp = "___顧客ID" ;

  !flgDelete =  "_削除" ;

  !allRecord = ExecuteSQL(

                          " SELECT COUNT " & "(" &

                           Quote (!kp) & ")"

                          & " FROM " &

                           Quote(!table)

                          & " WHERE " &

                          Quote (!flgDelete) & "= ?"  

                          ; "" ; "" ; 0

                          )+ 0 ;

  !targetRecord = Get ( 対象レコード数 ) + 0

  ];

  !targetRecord & " / " &   !allRecord  & "件表示中"

)

・解説
SQLを使って、顧客::_削除が0のレコード数を集計します。

・まとめ
ボタン上の表示なので、ヘッダやフッタなど好きなところに配置できます。
またSQLのWHERE句を変更すれば、状況に応じて好みの集計結果を表示できるので非常に便利です。