初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2019-06-21 09:49:14

valentina14
Guest

ご教授願います。別テーブルで作成された担当者別の集計を表示する方法

すみません。ご教授お願いしたいと思います。

現在テーブルが3つあります。
1、メイン
2、施術
3、販売

1のメインテーブルには顧客来店日を入力する開始日・終了日のフィールドがあり終了日は計算値で終了日=開始日、
それに対してグローバル格納で開始日フィルタと終了日フィルタを作成して任意の期間内に
どれだけの顧客が来店し、売上がいくらであったかの集計できるレイアウトを作成しています。

2の施術テーブルには
来店日・担当者・施術メニュー・金額

3の販売テーブルには
来店日・担当者・販売メニュー・金額

のフィールドがあります。
施術テーブルの来店日、販売テーブルの来店日はそれぞれメインテーブルの開始日をルックアップしています。

ポータルを使用してメインのテーブルにその日の顧客別に
担当者・施術メニュー・金額
担当者・販売メニュー・金額 を表示させています。

ここから本題です。
メインのテーブルで、ある任意の来店日期間(例:6/1〜6/30の期間)を設定すると期間内での
別々のテーブルにある担当者別の施術売上と販売売上をメインテーブルにて表示させたいと思うのですがうまくいきません。

イメージとしては

6/1〜6/30の期間を設定すると

担当者A 施術件数○件 売上○円   販売件数△件 売上△円 合計X円
詳細:::::
担当者B 施術件数○件 売上○円   販売件数△件 売上△円 合計X円
詳細:::::
担当者C 施術件数○件 売上○円   販売件数△件 売上△円 合計X円
詳細:::::

といったようにリスト表示で合計金額とその詳細も表示できるようにしたいのです。
パート設定の小計ソートを使用だとソート対象を一つしか選べないため別テーブルの内容を
一度に表示することができず行き詰まっています。

何か良い案がありませんでしょうか?

すみませんがよろしくお願いいたします。



valentina14

#2 2019-06-21 10:07:17

チポ
Member

Re: ご教授願います。別テーブルで作成された担当者別の集計を表示する方法

2と1
3と1
それぞれ何で照合しているのでしょうか?

というより、、
顧客1来店ごとに1レコードのテーブル一つで管理出来そうですがいかがでしょう?

Offline

#3 2019-06-24 17:23:59

valentina14
Guest

Re: ご教授願います。別テーブルで作成された担当者別の集計を表示する方法

チポさん、ご返信どうもありがとうございます!
返信が遅くなり申し訳ございません。

すみません、説明不足でした、、
補足させていただきます。

2と3テーブルにはそれぞれカテゴリーフィールドと内容フィールドがあります。

カテゴリーフィールド のドロップダウンリスト項目 → A・ B・ C・ D
内容フィールド2 のドロップダウンリスト項目→ 1でAを選んだ場合表示されるのは a ・ b ・c ・d
                       1でBを選んだ場合表示されるのは e・f・ g・ h
                       1でCを選んだ場合表示されるのは i・ j・ k・ l

といったようにドロップダウンで初めに何を選ぶかによって次のフィールドで表示されるドロップダウンの内容を
変えたいので別テーブルで2(内容は施術)と3(内容は商品)を作成しました。

この施術内容や商品内容は常に新しいメニューが入ったり消えたりとどれも固定ではありません。

2と1、3と1はそれぞれの顧客に対して来店日ごとにシリアル番号を振ってリレーションを組んでいます。

チポさんがおっしゃるように、全ての内容を1つのテーブルで管理できれば問題ないんですよね、、、、
これを一つのテーブルで組める方法はあるのでしょうか?


valentina14

#4 2019-06-24 18:44:45

Shin
Member

Re: ご教授願います。別テーブルで作成された担当者別の集計を表示する方法

顧客来店日を入力する開始日・終了日のフィールド の終了日とは何を設定するのですか。上の説明では来店日が設定されるようですが。
また、1来店では、1施術・1販売でしょうか、それとも複数の施術・販売がありますか。
複数あるのでしたら、別テーブルで管理する必要が出てきます。
ただ、施術・販売をまとめて1テーブルにしてしまう作り方もあります。もちろん、その中で、カテゴリーから詳細を選んでいく様な構造は作れます。この構造でしたら、この中だけでのクロス集計で上の集計は可能ですよ。

Offline

#5 2019-06-25 09:03:40

valentina14
Guest

Re: ご教授願います。別テーブルで作成された担当者別の集計を表示する方法

Shinさん、ご返信いただきありがとうございます!

今お店のデータベースを作っています。
一来店につき施術・販売共にメニューの数はお客様によるので1来店、1施術・1販売ではないんです。

例えばマッサージ店とすると
6/25にお客様Aさんが来店され、
担当1が施術ヘッドマッサージ1,500円
担当2が1施術ボディマッサージ3,000円
担当3が販売アロマオイル1,000円
をした、といった感じです。
そして任意のある一定の期間で担当者ごとに施術・販売の売上を集計したいと考えています。

となるとやはり別テーブルで作成しないといけないんですね、、、

終了日フィールドを作ったのは月次の売上集計を調べる際にスクリプトトリガで
開始日6/1 終了日6/30 と入力すると6月の売上が表示されるというように作ったフィールドでどちらも=来店日となります。

施術と販売をまとめて1つのテーブルに作った方がその後の集計が一覧でできるんですね!
ありがとうございます!

#6 2019-06-25 11:45:46

チポ
Member

Re: ご教授願います。別テーブルで作成された担当者別の集計を表示する方法

> ドロップダウンで初めに何を選ぶかによって
> 次のフィールドで表示されるドロップダウンの内容を変えたいので
> 別テーブルで2(内容は施術)と3(内容は商品)を作成

別テーブルにしないでも、
  動的値一覧
を使えば、最初の選択値によって次の値一覧の表記を変えられますよ。

Offline

#7 2019-06-25 13:36:30

valentina14
Guest

Re: ご教授願います。別テーブルで作成された担当者別の集計を表示する方法

チポさん、ご返信いただきどうもありがとうございます!

別テーブルにしなくても大丈夫とは現在のテーブル

1、メイン
2、施術
3、販売

で2と3を同じテーブルでできるということでしょうか?
それとも全てをひとまとめで1メインのテーブルだけで大丈夫ということなんでしょうか?
・・・無知ですみません、、、

動的値一覧!
ありがとうございます!
早速機能を調べてみます!

いつもありがとうございます。


valentina14

#8 2019-06-25 14:05:19

Shin
Member

Re: ご教授願います。別テーブルで作成された担当者別の集計を表示する方法

> 1来店、1施術・1販売ではないんです
1テーブルでは無理ですが、基本的な2テーブルと、マスターのテーブルいくつかになります。

ごく基本部分だけのサンプルです。
https://www.dropbox.com/s/3z5s2i2t660wp … 2.zip?dl=0
集計範囲は、変数で設定しています。

Last edited by Shin (2019-06-25 14:06:46)

Offline

#9 2019-06-25 14:42:59

valentina14
Guest

Re: ご教授願います。別テーブルで作成された担当者別の集計を表示する方法

Shinさん、ご返信どうもありがとうございます!

・・・す、すごいです、、、。
こんな短時間で、、、、。

これからじっくりプログラムを確認させていただいて参考にさせていただきます!

本当にどうもありがとうございます!!



valentina14

#10 2019-06-25 15:30:58

Shin
Member

Re: ご教授願います。別テーブルで作成された担当者別の集計を表示する方法

販売と施術の区別をせずに入力する(表示は別にもできます)のでしたら、もっとシンプルになります。こちらの方がいいかも。
https://www.dropbox.com/s/3z5s2i2t660wp … 2.zip?dl=0

さらに、同じ構造を使って、ソートを変更するのみで、集計キーを変更することができます。
ここでは、担当者別、来店日別、顧客別の集計を追加実装してあります。

Last edited by Shin (2019-06-26 18:32:55)

Offline

#11 2019-06-25 16:24:32

valentina14
Guest

Re: ご教授願います。別テーブルで作成された担当者別の集計を表示する方法

Shinさん、ご返信頂きどうもありがとうございます!

色々な方法があるんですね、、、
確かにシンプルな方が使いやすい気がします!
早速考えて作ってみますね!

いただいたデータベースを自分の能力のなさを思い知らされます。
使いやすいデータベースが作れるよう、
いただいたデータからしっかり勉強させていただきます!
行き詰まっていたところ、色々なアドバイスをどうもありがとうございます!

valentina14

#12 2019-06-26 16:18:21

Hiro
Member

Re: ご教授願います。別テーブルで作成された担当者別の集計を表示する方法

FM集計機能は1元集計しかできません。希望の多次元集計は、集計計算で求めます。

作例では、3集計結果を繰り返し[3回]計算フィールドに一括取得します。
計算は、他の事前設定要素を全く必要とせず単独利用可能で安直簡便な、
SQL計算式を採用しています。

「集計配列[3回]フィールドのSQL集計式」
=======================
Choose(
   Get(計算式繰り返し位置番号)
   ; ""
   ; ExecuteSQL(
        "SELECT SUM(""金額"") FROM(""売上マスタ"")
        WHERE ""日付"" BETWEEN ? AND ? AND ""担当者""=? AND ""科目""='施術'"
        ; ""; ""; g集計開始日[1]; g集計終了日[1]; 担当者[1])
   ; ExecuteSQL(
        "SELECT SUM(""金額"") FROM(""売上マスタ"")
        WHERE ""日付"" BETWEEN ? AND ? AND ""担当者""=? AND ""科目""='販売'"
        ; ""; ""; g集計開始日[1]; g集計終了日[1]; 担当者[1])
   ; Sum(集計配列[1]; 集計配列[2])
)


●サンプル「店舗管理表.fmp12」 → ダウンロード

●「デモ画像」 → 大きいサイズで見る
hKZRm6

Last edited by Hiro (2020-05-12 23:42:03)

Offline

#13 2019-06-28 14:50:00

valentina14
Guest

Re: ご教授願います。別テーブルで作成された担当者別の集計を表示する方法

Hiroさん、ご返信頂きどうもありがとうございます!

みなさんにご教授いただいた通り、やっと何とか2と3のテーブルを一つに修正できたところなんですが、
ちょうど今集計のところで行き詰まっていたところなんです!

データ拝見させていただきました。
私が作りたいと思っていた以上の素晴らしいデータベースにびっくりです!

ありがとうございます!
参考にさせていただきます!

本当にみなさんに感謝です!

頑張ります!

#14 2019-06-29 22:05:10

valentina14
Guest

Re: ご教授願います。別テーブルで作成された担当者別の集計を表示する方法

チポさん、Shinさん、Hiroさん。

担当者別の売上げ集計ができあがりました。
たくさんの温かいご教授をありがとうございました。
皆さんのアドバイスがなければできていなかったです。
本当にどうもありがとうございました。
また、今回データベースを作成してみて、FileMakerって素晴らしいソフトだとさらに感じることができました。
まだまだ知識は足りませんがこれからも勉強を続けていきたいと思います。
ご教授下さった チポさん、Shinさん、Hiroさんに心から感謝を申し上げます。
閲覧して下さった皆さんもありがとうございました。
また質問をさせていただくこともあると思いますが、その時はよろしくお願い致します。
ありがとうございました。


valentina14

Registered users online in this topic: 0, guests: 1
[Bot] claudebot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.020 seconds, 9 queries executed - Memory usage: 558.72 KiB (Peak: 579.63 KiB) ]