Why not login to Qiita and try out its useful features?

We'll deliver articles that match you.

You can read useful information later.

3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

FileMakerAdvent Calendar 2023

Day 6

【FileMaker】今年度の集計をしたいのだ

Last updated at Posted at 2023-12-05

「今年度」という言葉を聞いて、「めんどくさ」と思う方が大半なのではないでしょうか?
今回は、この「めんどくさ」に対応していきます。

この記事の対象者

FileMakerで「今年度」の集計をしなければならなくなった人

この記事を読むと得られること

FileMakerで今年度の集計をするための構築方法

この記事のテスト環境

Claris FileMaker 20.3.1.31
記事執筆時の最新バージョンで行なっていますが、すごく新しい技術を使っているわけではないので、お気軽に試してみてください。

目指すゴール

こんな感じの年度集計ができます。
スクリーンショット 2023-12-05 16.26.34.png

事例

今回は、図書の貸し出しをしている施設で、年度末に月ごとの利用人数の集計をする事例で実装を行なっていきます。
この施設での年度は、以下になります。
4月1日〜翌年3月31日

実装

では、やっていきましょう。

テーブル設計

貸出帳

図書貸し出しをするたびに登録する、貸出帳です。

スクリーンショット 2023-12-04 19.10.30.png

計算式を拡大します。
年度は、貸出日を元に、どの年度になるかを計算しています。
1月〜3月の場合は貸出日の年をYear関数で取得し、マイナス1をします。
4月〜12月の場合は、そのまま貸出日の年をYear関数でfセットします。
スクリーンショット 2023-12-04 19.11.06.png

年月は、月ごとの集計をするために用意します。
月をセットする際は、2桁になるようにRight関数を使っています。
年月は、202312のような6桁になります。
スクリーンショット 2023-12-04 19.11.19.png

その他、抽出した人数の集計をするフィールドです。

フィールド名 設定
件数 主キーをカウントする集計タイプ

グローバル関数は、主にリレーションシップグラフで使う用です。

フィールド名 設定
g年度 年度集計をするレコードを、1年度で1レコード作る際に活用
g年月 図書貸出の年月集計をする際に活用

年度集計

年度ごとに1レコードを追加し、集計結果をまとめます。
スクリーンショット 2023-12-04 19.10.17.png
1年に1レコードなので、月ごとの集計を、利用人数フィールドの12個の配列に格納します。

配列にセットされた人数の合計を計算するフィールドを拡大します。
スクリーンショット 2023-12-04 19.10.02.png
単純に配列に入っている数字を12回回して加算するだけの単純構造です。

この計算をスクリプトで行う例も紹介しています。
どちらも同じ結果になるので、現場のボリューム感や運用に合わせてチョイスしてください。

リレーションシップグラフ

図書貸出テーブルに設置したグローバルフィールドと、年度集計の年度、図書貸出の年月を結びます。
スクリーンショット 2023-12-04 19.11.39.png

レイアウト

図書貸出帳

図書貸出帳は、貸出日に入力があれば集計できるので、今回は最低限のリスト表示にしています。
右側の「年度」は、自動で計算されるので、何もタッチしないです。
実際の運用では、出さないフィールドですが、今回は確認のために表示しています。
スクリーンショット 2023-12-04 19.11.59.png

年度集計

年度集計のレイアウトでは、配列の利用人数フィールドを縦に並べ、合計として「利用人数_合計」フィールドを置きます。
スクリーンショット 2023-12-05 17.18.39.png

スクリプト

では、集計のスクリプトを作っていきましょう。

全体

スクリーンショット 2023-12-05 17.28.17.png

解説

解説です。
2〜8行目は、年度集計テーブルに集計する年度のレコードがあるかどうかを確認しています。
レコードがなければ、新規作成し、年度をセットして準備完了です。
スクリーンショット 2023-12-05 16.58.15.png

月ごとの集計は、年度の検索をしたり図書貸出レコードをLoopで回して1個1個集計したりはしません。
年月でリレーションシップを構築したので、そのリレーションシップを活用して「件数」フィールドの集計結果を取得するのみです。
そのために、14行目では、集計する年をあらためて計算し直しています。
1月〜3月の場合は、集計年度にプラス1、4月〜12月の場合は、年度のままで図書貸出テーブルの年月を集計します。
スクリーンショット 2023-12-05 17.02.22.png

取得した件数を、年度集計のフィールドの配列にセットします。
この時、年度であることに注意です。
4月始まりなので、4月が配列のトップになります。
あー、めんどい。
考え方としては、下の図のようになります。
4月〜12月は、月から-3、1月〜3月は、月に+9すると、配列の順番を求められます。
スクリーンショット 2023-12-04 19.12.30.png

配列の順番は、17行目の変数で行います。
スクリーンショット 2023-12-05 17.10.06.png

配列の指定の仕方、初学者だとちょっとわからなかったりする人もいるかと思うので、「ここだよー!」と図を貼っておきます。
スクリーンショット 2023-12-05 17.12.11.png

テストしてみる

では、集計してみましょう。
最初は、今年度のレコードがありません。
スクリーンショット 2023-12-05 17.16.54.png

スクリプトを実行すると、今年度のレコードが出来上がり、集計も行われます。
スクリーンショット 2023-12-05 17.16.28.png

今回のやり方は、配列の順番の計算を変更するだけで会社の会計年度など(例えば年度始まりが9月とか)にも応用がききますので、現場に合わせてやってみてください。
今年度の集計をしたい人にこの記事が届きますように。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up

Qiita Advent Calendar is held!

Qiita Advent Calendar is an article posting event where you post articles by filling a calendar 🎅

Some calendars come with gifts and some gifts are drawn from all calendars 👀

Please tie the article to your calendar and let's enjoy Christmas together!

3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?