FileMaker公式テキスト中級編!!!
中級編では、
中級開発者として複数の利用者を想定してシンプルなカスタムAppを作成する
といった内容になります。
全16章です。
前回は、11章『スクリプトと自動化 後半』について学びました。
👉FileMaker 中級編(11章)後半
今回は、12章『集計とグラフ』についての知識を学びます。
どのような集計やグラフが必要か
設計が必要
集計やグラフを使用するにも、設計が必要です。
・要件
・データモデリング
・テーブル、フィールド、関連
・レイアウト
・スクリプト
さらに以下を考えることも必要になります。
・タイミング(作業者)
・集計結果の保存/非保存
・グラフの結果表示までの時間(パフォーマンス)
開発には十分な時間や準備が必要です。
集計やグラフの要件定義と設計
要件定義と設計にあたり意識したいのは以下です。
・「いつ」 → タイミングと頻度、定期的 なのか 任意 なのか
・「なにを」 → 出力形式(画面のみ、印刷、PDF、エクスポート)と内容(項目と順も)
・ 「何故」 → 会議のため などだけではなく、結果を何のために使用するのか
(営業担当ごとの注文数や注文金額の合計で成績を見るなどの具体的な目的)
・「備考」 →出力された結果の受け渡し方法(レイアウトにアクセスしてもらう、印刷して人が配布、 メール文中に記述、メールに PDF などで添付)
●必要なデータが揃っているか
集計やグラフに必要な結果から、元になるデータを考えます。これはとても重要です。中間テーブルにきちんと値が入ってないと思った結果になりません。
●フィールドタイプ
集計やグラフの元データとして、複数のデータからの計算結果を利用する場合、
・統計関数の計算式が指定された計算タイプフィールド
・集計タイプフィールド
のどちらを使用するかを考えます。
※ 統計関数は、主に関連レコードの情報について使用されることが多いものです。
●実行するアプリケーション
処理を実行するのが、
・FileMaker Pro、 FileMaker Go などのクライアント
・FileMaker Cloud / FileMaker Server などのサーバー(ホスト)
どちらにするかを考えます。
●同じ結果のバリエーションに注意
●集計結果の見た目
●グラフのタイプ
●セキュリティ
●集計対象を誰が決めるか
●パフォーマンス 表示にかかる時間
など様々なことに注意が必要です😣
集計の作成
複数の集計タイプフィールドと集計パートを使った集計の確認と作業を行います。
●準備
集計に必要なものは、主に次の 3 つです。
・「集計タイプ」のフィールド
(※対象レコードを集計するので対象レコード数によって結果が異なる)
レイアウトパートやパートに設定されるソート対象(区分けフィールド)と組み合わせて
対象レコードの総計と区分けグループごとの小計が集計されます。
・「集計」パート
・ソート
「集計」タイプフィールドの集計対象として指定可能なのは、同テーブルのフィールドのみです。
集計に総計を加える
全体の結果を表示するために「見積リスト」レイアウトに「前部総計」パートを作成します。
1、パートを作成して設定
①レイアウトモードに切り替え、[レイアウト]-[パート設定 …]メニューを選択。
②[作成…]をクリック。[パートの定義]ダイアログが表示されます。
・「前部総計」をクリック
[OK]をクリックして[パートの定義]ダイアログを閉じます。
↓
2、レイアウトに「前部総計」パートが加わる。
①「マージフィールド」で<<s_ 見積件数 >>を配置。
・インスペクタの「外観」タブの[段落設定]で、「右揃え」
・次のように「件」を追加します。 <<s_ 見積件数 >> 件
②「マージフィールド」で<<<<s_ 見積額 >> >>を配置。
・インスペクタの「外観」タブの[段落設定]で、「右揃え」
・「データ」タブの[データの書式設定]で「通貨」を選択
・「3 桁区切りを使用」 を「オン」
「集計」タイプフィールドは、主に結果のタイプは数値です。レイアウト上では余裕のあるフィールド幅を設定します。
また、小数点以下の端数が発生するような数値では、インスペクタで書式設定をおこないます。
なお、「一覧」を選択すると改行区切りのデータ(テキスト)になります。
この場合、フィールドの高さの設定にも気をつけます。
集計結果のみを表示
「前部総計」と「小計」パートだけでのソートで「ボディ」パート(実際のデータ)の無いレイアウトも作成できます。
「ボディ」パートと集計の一覧はレイアウトを分けた方が、見やすい場合があります。
演習では、パートを変更して集計結果を表示します。
1、「ボディ」パートのパートラベルをダブルクリックして[パートの定義]ダイアログを表示します。
①「小計ソート対象」をクリックします。
②「商品外部キー」フィールドをクリックします。
③[OK]をクリックして[パートの定義]ダイアログを閉じます。
2、メッセージが表示されます。「上に印刷」をクリックします。
3、ブラウズモードでソートを実行すると集計されます。
ソートのためのスクリプト
集計を出すためには、ソートが必要です。
となると、集計とスクリプトでのソートはセットで覚えておくと便利です。
レコードのソート [記憶する ; ダイアログあり ; オフ]
レコード/検索条件/ページへ移動 [ 最初の ]
[レコードのソート]スクリプトステップは、手作業と同じように指定します。
・「見積管理 _ 明細 _ 商品」TO の「商品番号」フィールド 昇順
・「見積管理 _ 明細」TO の「商品外部キー」フィールド 昇順

「商品ごと明細集計」レイアウトのソート順を
見積件数が多い順で表示したらより分かりやすいと思うな〜
↓↓↓見積件数が多い順でソート(ランキングレポート)
レコードのソート [記憶する ; ダイアログあり ; オフ]スクリプトステップのソート内容を編集します。
1、[ソート優先順位:] 「見積管理_明細_商品」TOの「商品番号」フィールドを選択。
①ダイアログの下の方にある「集計フィールドに基づいて並べ替え」をチェック
②[フィールド指定]ダイアログが表示
「s_商品件数」フィールドを指定
[OK]をクリック
③[レコードのソート]ダイアログで、「降順」を選択。
→「商品件数」が多い順に並べるため。
小計パートを 2 つにする
小計パートが複数ある場合、どのような設定をすればいいのでしょうか?
複数の小計パートを設定するときソートの順が重要になります。
「発行月ごとの結果」も表示することを考えて実際に考えてみます。
1、「小計」パートを追加して設定ます。
①[作成…]をクリック。[パートの定義]ダイアログが表示されます。
②「小計ソート対象」を選択。
③「c_発行月」フィールドを選択。
④[OK]をクリックして[パートの定義]ダイアログを閉じます。
2、メッセージが表示されます。「上に印刷」を選択。
3、[終了]をクリックして[パート設定]ダイアログをとじます。
4、レイアウトを整えます。
「発行月をソート対象とする小計(前部)」パートにフィールドを配置します。
「マージフィールド」で<<s_ 見積件数 >> <<<<s_ 見積額 >> >> <<c_ 発行月 >>
を配置する。
※レイアウト上の細かな設定は省きます。

これだけでは、表示されないよ〜
ソートをしないとね😙👍
複数の小計パートを設定するとき重要なのがソートの順番です!!!
↓↓↓
目的の結果を表示するために、ボタンに割り当てられているスクリプトのソート順を変更します。
小計パートの上から順番にソートされるようにスクリプトに記述しないと思った結果が出ません。
レコードのソート [記憶する ; ダイアログあり ; オフ]
レコード/検索条件/ページへ移動[ 最初の ]
レコードのソート [記憶する ; ダイアログあり ; オフ]のソート順を変更。
・「見積管理 _ 顧客 :: 顧客番号」フィールド 昇順
・「c_ 発行月」フィールド 降順 ⇦ここに挿入
・「発行日」フィールド 降順
・「見積番号」フィールド 降順
グラフの作成
グラフは図示 することで視覚的にデータの情報がわかるものです。
10 種類のグラフが用意されています。グラフも集計タイプフィールドを使用します。
縦棒グラフ | 時系列(年月など)や場所(地域や区域など)、人(担当者)などの、件数や金額など データの比較を確認したいとき |
積み重ね縦棒グラフ | 時系列(年月など)や場所(地域や区域など)、人(担当者)などの、件数や金額など データの比較とともに内訳も確認したいとき |
正負縦棒グラフ | 縦棒グラフと同じ確認をしたいが中点(ゼロであることが多い)よりも大きい、 小さいも表現したいとき |
横棒グラフ | 時系列(年月など)や場所(地域や区域など)、人(担当者)などの、件数や金額など データの比較を確認したいとき |
積み重ね横棒グラフ | 時系列(年月など)や場所(地域や区域など)、人(担当者)などの、件数や 金額など データの比較とともに内訳も確認したいとき |
円グラフ | 割合を確認したいとき |
線グラフ | 時系列(年月など)や場所(地域や区域など)、人(担当者)などの、件数や金額など データの変化の比較を確認したいとき |
面グラフ | 時系列(年月など)や場所(地域や区域など)、人(担当者)などの、件数や金額など データの変化の比較を確認したいとき |
散布図 | 2 つのデータ系列の関係を確認したいときで、次のように考えますデータ値の傾向が 左から右へ上がっていれば強い相関関係 左から右へ下がっていれば相関関係が弱い はっきりとしない場合は相関がない |
バブル | 散布図と同じでデータに応じて円の大きさが変わるものです |
グラフにどのようなデータを使うか
データをグラフにするには「データ系列」という考え方をします。
データを表のような形で考え、どの系列のラベルやデータを使うのか考えます。
『ラベル』と『データ』で考えます。
例
4月 | 5月 | 6月 | 7月 | 8月 | 9月 | |
お客様A | 10 | 20 | 30 | 40 | 50 | 60 |
お客様B | 10 | 20 | 30 | 40 | 50 | 60 |
お客様C | 10 | 20 | 30 | 40 | 50 | 60 |
お客様D | 10 | 20 | 30 | 40 | 50 | 60 |
お客様E | 10 | 20 | 30 | 40 | 50 | 60 |
上記の表の場合「月ごとのグラフ」が必要なのか「お客様ごとのグラフ」が必要なのかを考えた場合。
・「月」ごとの「データ系列」
月ごとラベル(4月など)で5つの「要素」データが含まれています。
10
10
10
10
10
・「お客様」ごとの「データ系列」
顧客ごとラベル(お客様 A など)に6つの「要素」データです。
10
20
30
40
50
60
データを表のような形で考え、どの系列のラベルやデータを使うのか考えます。
上の表から月ごとのグラフを作成するには、
・ラベル系列(4 月、5 月、6 月、7 月、8 月、9 月) → テキスト、日付、数字
・データ系列(10、20、30、40、50、60) → 数字のみ
グラフの種類により次のようになります。
縦棒グラフ | X軸→ラベル Y軸→データ 1つまたはそれ以上 |
積み重ね縦棒グラフ | X軸→ラベル Y軸→データ 2つ以上 |
正負縦棒グラフ | X軸→ラベル Y軸→データ 1つ |
横棒グラフ | X軸→ラベル Y軸→データ 1つまたはそれ以上 |
積み重ね横棒グラフ | X軸→ラベル Y軸→データ 2つ以上 |
円グラフ | X軸→カテゴリラベル Y軸→データ 1つ(スライス) |
線グラフ | X軸→ラベル Y軸→データ 1つまたはそれ以上 |
面グラフ | X軸→ラベル Y軸→データ 1つまたはそれ以上 |
散布図 | 1 つまたはそれ以上のデータ系列(各データ系列に X 軸と Y 軸が必要) |
バブル | 1 つまたはそれ以上のデータ系列(各データ系列に X 軸と Y 軸が必要) |
●グラフデータの選択
どのデータを対象レコードにするか、大きく分けて3種類、全5種類に分けることができます。
①・現在対象のレコード
・現在対象のレコード(集計レコードグループ)
②・関連レコード
・関連レコード(関連レコード集計)
③・現在のレコード
①現在対象のレコードをグラフに表示
●現在対象のレコード
ラベル→テキストフィールド
データ→数字フィールド
・[グラフ設定]ダイアログ (積み重ね横棒グラフの場合 )
[▼グラフ] X軸 ・・・データに何を積み重ねるか
[▼データソース] グラフデータ・・・現在対象のレコード
●現在対象のレコード(集計レコードグループ)
ソートされているデータかどうかの違い。(集計レコードグループにソートされているか)
小計区分けデータと集計フィールドの結果データを使う
・[グラフ設定]ダイアログ (円グラフの場合 )
[▼グラフ] カテゴリラベル ・・・小計区分けデータ
スライスデータ ・・・集計フィールドの結果が表示される。
[▼データソース] グラフデータ・・・現在対象のレコード
「集計レコードデータ」にチェック
グラフの表示前にはソートを実行する必要がある。
②関連レコードをグラフに表示
ポータルのデータでグラフを作るようなイメージ。
●関連レコード
ラベル→関連レコードの中のテキスト、日付フィールド
データ→関連レコードの中の数字フィールド
・[グラフ設定]ダイアログ (円グラフの場合 )
[▼グラフ] カテゴリラベル ・・・関連レコードのフィールドを指定
スライスデータ ・・・関連レコードのフィールドを指定
[▼データソース] グラフデータ・・・関連レコード
関連テーブル・・・ポータルがあると考えた時のTO
関連レコードのソート順・・・データをまとめるためにソート
ソートされた時のグラフの表示: 集計レコードグループ
●関連レコード(関連レコード集計)
関連レコードをソートして区分けしていること。
現在対象のレコード(集計レコードグループ)の時と同じような設定
ただし選択するフィールドがリレーションで関連しているTO上のフィールドになる。
↓↓↓
スクリプトステップで『関連レコードへ移動』を使用する
については、スクリプトステップで関連レコードへ移動を使用すれば、関連レコードのアンカーTOへ移動できるので、そしたらあとは現在対象のレコードの設定と同じことをすれば良くなる。
③現在のレコードのみグラフに表示
一つだけ扱う
[▼データソース] グラフデータ・・・現在のレコード(区切りデータ)
・改行区切りの文字列(値一覧)になっているものを使ってグラフを表現する。
・フィールドの中に改行区切りで複数の値→本来ならば別テーブル
↓↓
スクリプトで$$ラベル、$$データを生成、グラフで変数を表示。
以上で12章は終わりです。
次回は13章「モバイル/ FileMaker Go」について学習していきます😙
コメント