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

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

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

You are not logged in.

Announcement

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


#1 2021-09-02 15:06:11

mo888
Guest

ユーザーが選択した年月に応じて表示する年月を変更したい【機能追加】

先日こちらのトピックで質問させて頂いたものです。↓
https://fm-aid.com/bbs2/viewtopic.php?pid=71883

ここからユーザーが選択した年月に応じて表示する年月を変更したい場合どのような方法が考えられますでしょうか?ご教示頂けると大変助かります。

やったこととしては本日の日付の年から過去3年間の表示が出来たいたものに↓
https://www.dropbox.com/s/ws6n2t0nb48r4 … 2.png?dl=0

グローバルフィールド「g_集計日to」を追加して↓画像のYMフィールドのget( 日付 )の部分にg_集計日toと書き換えました。
そうすると↓画像のようにYMフィールド及びYM_フィールドが繰り返しされなくなりました。
https://www.dropbox.com/s/mqz76nynb0jj0 … 2.png?dl=0

ためしにYMフィールドのget( 日付 )の部分に直接入力する形で「2020/09/02」と変更しても状況は変わらず「"2020/09/02"」とした時に意図していた動きになりました。

そこで文字列で入れたらいいのかと考えgetastextや""を付けたりしてg_集計日toを入れようとしてみましたが意図した動きにならないようです。

なにかアドバイス頂けると大変助かります。よろしくお願いします。

#2 2021-09-02 15:19:28

mo888
Guest

Re: ユーザーが選択した年月に応じて表示する年月を変更したい【機能追加】

まずは↑のように年をユーザーが選択したものを表示させ次の段階として月を変更できたらなと考えております。

#3 2021-09-02 15:35:58

kmmn
Guest

Re: ユーザーが選択した年月に応じて表示する年月を変更したい【機能追加】

繰り返しフィールドのようなので、Extend( g_集計日to ) としてみてください。

#4 2021-09-02 16:08:22

mo888
Guest

Re: ユーザーが選択した年月に応じて表示する年月を変更したい【機能追加】

kmmn様

そうすると確かに年が繰り返し表示されるようになりました。がボディの金額が期待している箇所からずれて表示されてしまいます。
この問題は別箇所も修正する必要がありそうでしょうか?

#5 2021-09-02 16:18:31

mo888
Guest

Re: ユーザーが選択した年月に応じて表示する年月を変更したい【機能追加】

すみません。勘違いかもしれません。画面縮小の問題かもしれません。
もう少し動きを精査してみます。

#6 2021-09-02 16:36:32

mo888
Guest

Re: ユーザーが選択した年月に応じて表示する年月を変更したい【機能追加】

kmmn様

私の勘違いでした。すみません。ありがとうございます。

次の段階として現在固定で左から1月はじまりになっているものをユーザーが選んだ月はじまりに変更したいのですが、こちらはどのような方法がございますでしょうか?

#7 2021-09-03 06:40:48

Shin
Member

Re: ユーザーが選択した年月に応じて表示する年月を変更したい【機能追加】

トピックの続きですので、同じスレッドで続けられたほうがよかったかと思いますが。

表示をどうしたいのですか。指定の年月までの表示でしたら、現在の日付での年月と指定された日付の年月の差を、YM に加減しておくのが簡単です。
ただし、年集計の範囲が変わってしまい、3年分の集計になったり、4年になったりしますので、表示がややこしくなりますし、4年になると最初と最後は中途半端な数字になります

Last edited by Shin (2021-09-03 06:41:53)

Offline

#8 2021-09-03 09:36:51

mo888
Guest

Re: ユーザーが選択した年月に応じて表示する年月を変更したい【機能追加】

Shin様

返信ありがとうございます。大変勉強になります。

また私の実現したいことを上手く伝えきれずすみません。。。

やりたいこととしては以下です。重ねて申し訳ありませんがアドバイス頂けると大変助かります。

【case1.】
ユーザーが集計基準日を「2019/05/23」で入力した場合

【期待する結果】
YM_の値が
2017.06 | 2018.06 | 2019.06 | 2017.07 | 2018.07 | 2019.07 | 2017.08 | 2018.08 | 2019.08 | ................2017.05 | 2018.05 | 2019.05 | 2017 | 2018 | 2019 |

【case2.】
ユーザーが集計基準日を「2021/09/03」で入力した場合

【期待する結果】
YM_の値が
2019.10 | 2020.10 | 2021.10 | 2019.11 | 2020.11 | 2021.11 | 2019.12 | 2020.12 | 2021.12 | ................2019.09 | 2020.09 | 2021.09 | 2019 | 2020 | 2021 |

https://www.dropbox.com/s/5wk6o633c2y9y … 1.png?dl=0

#9 2021-09-03 11:52:09

Shin
Member

Re: ユーザーが選択した年月に応じて表示する年月を変更したい【機能追加】

この 2019 | 2020 | 2021  の区分はどうなりますか。

Offline

#10 2021-09-03 13:09:16

mo888
Guest

Re: ユーザーが選択した年月に応じて表示する年月を変更したい【機能追加】

Shin様

区分...質問に対してクリティカルな回答かどうか曖昧ですが
↓こちらのように最右部から3列の年のみの表記の箇所はYM_フィールドにレイアウト重ねているだけのYMフィールドになります。
うまく回答になっていますでしょうか?

https://www.dropbox.com/s/76o9u0zvq89nr … 1.png?dl=0

#11 2021-09-03 15:19:18

Shin
Member

Re: ユーザーが選択した年月に応じて表示する年月を変更したい【機能追加】

> YM_フィールドにレイアウト重ねているだけ
という意味がわかりませんが。
私の作ったサンプルをそのまま使っているのでしたら、同じ繰り返しフィールドで、計算式に細工をして2重表示にしてあり、それを基準に集計用のデータを作っています。

お聞きしているのは、ユーザーが集計基準日を「2021/09/03」で入力した場合、年月は2018年から始まりますが、2019|2020|2021 でいいですか。また、2019年2021年の集計は、2019/1〜2019/12、2021/1〜2021/12 ですか、それとも、2018/10〜2019/9、2020/10〜2021/9 ですか。それ以外ですか。

Last edited by Shin (2021-09-03 15:44:50)

Offline

#12 2021-09-03 15:34:36

mo888
Guest

Re: ユーザーが選択した年月に応じて表示する年月を変更したい【機能追加】

Shin様

回答がズレたものになっておりすみません。

>お聞きしているのは、ユーザーが集計基準日を「2021/09/03」で入力した場合、2019年2021年の集計は、2019/1〜2019/12、2021/1〜2021/12 ですか、それとも、2018/10=2019/9、2020/10〜2021/9 ですか。それ以外ですか。

ユーザーが集計基準日を「2021/09/03」で入力した場合以下のようになるのが期待した結果になります。
2019 = 2018/10~2019/9
2020 = 2019/10~2020/9
2021 = 2020/10~2021/9

#13 2021-09-03 17:10:30

Shin
Member

Re: ユーザーが選択した年月に応じて表示する年月を変更したい【機能追加】

基準日を $$std に格納、$$YM に Year ( $$std ) * 12 + Month ( $$std ) - 1 を設定して、
YMを、
Case (
    Get ( 計算式繰り返し位置番号 )  ≥ 37 ; Year ( $$std ) - 2 + Mod ( Get ( 計算式繰り返し位置番号 ) - 1 ; 3 ) ;
    $$YM - 35 + Mod ( Get ( 計算式繰り返し位置番号 ) - 1 ; 3 ) * 12 + Div ( Get ( 計算式繰り返し位置番号 ) - 1 ; 3 )
)
金額を
Case (
    売上YM[1] = YM ; 金額[1] ;
    Year ( $$std ) - Div ( $$YM - 売上YM[1] ; 12 ) = YM ; 金額[1]
)
へ変更すればいいでしょう。

ただ、なぜこのような計算で求められるのかを理解しておかないと、後で苦労しますよ。

Last edited by Shin (2021-09-03 18:53:36)

Offline

#14 2021-09-03 19:25:13

mo888
Guest

Re: ユーザーが選択した年月に応じて表示する年月を変更したい【機能追加】

Shin様

ありがとうございます。

確かにおっしゃる通り、「なぜこのような計算で求められるのかを理解しておかないとあとで苦労しますよ」という言葉の重みを感じています。
前回頂いたサンプルに関しても自分なりに調べて理解してみておりますが完全には理解できておりませんので、今回ご提案頂いた計算も自分のファイル上で実装できたタイミングで振り返り一つずつ理解できるようにしていきたいと思います。

ところで最初の段階で言われていたように年集計の範囲が3年になったり4年になってしまうのは、やはりどうしようもないものでしょうか?

#15 2021-09-03 19:41:54

mo888
Guest

Re: ユーザーが選択した年月に応じて表示する年月を変更したい【機能追加】

Shin様

連投すみません。
もしくは他の方法であれば実現可能そうな方法があったりするのでしょうか?

#16 2021-09-04 08:43:09

Shin
Member

Re: ユーザーが選択した年月に応じて表示する年月を変更したい【機能追加】

年集計する時の、年の定義をしっかり考えて、矛盾がおきないように式を作っておくと、そのようなことは起こりません。
このような集計を行うときに、私が昔々に考えついた Year() * 12 + Month() という式(ある程度の数学力があれば、誰でも考えつくと思いますが)と、それを元に戻す式が何を意味しているかがわかれば、後は簡単です。

> 他の方法であれば実現可能そうな方法があったりするのでしょうか?
いくつもありますよ。SQLのクエリーで集計する方法、自己リレーションで集計値をだしておいてそれを別テーブルにリレーションで表示させる方法、などあります。クロス集計で検索してみると、いろいろ見つかります。

どの方法で集計するにしても、2021/1 2022/1 2023/1 2021/2 2022/2 2023/2 ... という並びは、なかなか面倒です。
全く別の作り方で、その並びを、2021/1 2021/2 2021/3 ... 2021/12 2022/1  ... という並びにしておき、レイアウト上で1繰り返しのフィールドを配置し、繰り返し位置の指定で並び替える、という方法もありますよ。

Last edited by Shin (2021-09-04 12:18:45)

Offline

#17 2021-09-04 22:09:25

mo888
Guest

Re: ユーザーが選択した年月に応じて表示する年月を変更したい【機能追加】

Shin wrote:

基準日を $$std に格納、$$YM に Year ( $$std ) * 12 + Month ( $$std ) - 1 を設定して、
YMを、
Case (
    Get ( 計算式繰り返し位置番号 )  ≥ 37 ; Year ( $$std ) - 2 + Mod ( Get ( 計算式繰り返し位置番号 ) - 1 ; 3 ) ;
    $$YM - 35 + Mod ( Get ( 計算式繰り返し位置番号 ) - 1 ; 3 ) * 12 + Div ( Get ( 計算式繰り返し位置番号 ) - 1 ; 3 )
)
金額を
Case (
    売上YM[1] = YM ; 金額[1] ;
    Year ( $$std ) - Div ( $$YM - 売上YM[1] ; 12 ) = YM ; 金額[1]
)
へ変更すればいいでしょう。

ただ、なぜこのような計算で求められるのかを理解しておかないと、後で苦労しますよ。


返信ありがとうございます。

Shin様に更新して頂いている前トピックのサンプルも上記のような実装内容になっていると思うのですが基準日を2021にすると繰り返しフィールドのYM_の値の最初の方が2018~になっていたりするのですが、もし良かったらこちらの正しい定義についてもご教示頂くことは出来ませんでしょうか?

#18 2021-09-04 22:43:56

Shin
Member

Re: ユーザーが選択した年月に応じて表示する年月を変更したい【機能追加】

全体で36ヵ月表示ですので、最初の月は、基準日の35ヶ月前です。
何になれば正しいのですか。

Last edited by Shin (2021-09-04 22:45:05)

Offline

#19 2021-09-04 23:25:32

mo888
Guest

Re: ユーザーが選択した年月に応じて表示する年月を変更したい【機能追加】

Shin様

私の伝え方が悪く大変申し訳ありません。。。

下記のCase2.のようになれば私の期待する結果になるのですが現状は添付画像のように
2018.10|2019.10|2020.10.....のように3年前からではなく4年前からになってしまっていたり、後半になると
2019.06|2020.06|2021.06...のように狙っている結果になっていたりとするものですからこちらを全て下記のCase2.のようになれば私の期待する結果になります。

【case2.】
ユーザーが集計基準日を「2021/09/03」で入力した場合

【期待する結果】
YM_の値が
2019.10 | 2020.10 | 2021.10 | 2019.11 | 2020.11 | 2021.11 | 2019.12 | 2020.12 | 2021.12 | ................2019.09 | 2020.09 | 2021.09 | 2019 | 2020 | 2021 |

https://www.dropbox.com/s/rdtn5zs1owyc0 … 7.png?dl=0

#20 2021-09-05 08:50:52

Shin
Member

Re: ユーザーが選択した年月に応じて表示する年月を変更したい【機能追加】

> 2019.10 | 2020.10 | 2021.10 | 2019.11 | 2020.
基準日を2021年9月にして、2021年10月11月の集計をするのですか????
あなたがいいと思うデータを、39個書き上げてください

mo888 wrote:

ユーザーが集計基準日を「2021/09/03」で入力した場合以下のようになるのが期待した結果になります。
2019 = 2018/10~2019/9
2020 = 2019/10~2020/9
2021 = 2020/10~2021/9

と自分で書いておられますが、そこに回答があるのでは。

これ以上は、ご自分でお考えください。ここは、作って、機能追加して、を請け負うサイトではありません。ご希望なら、個人的にメールいただければ受託できるかもしれません。

Last edited by Shin (2021-09-05 15:48:48)

Offline

#21 2021-09-06 09:52:17

mo888
Member

Re: ユーザーが選択した年月に応じて表示する年月を変更したい【機能追加】

Shin様
大変お世話になっております。

返信ありがとうございます。ご指摘もおっしゃる通りだと思いますのでメールにて送信させて頂きました。大変失礼致しました。

>基準日を2021年9月にして、2021年10月11月の集計をするのですか????
あなたがいいと思うデータを、39個書き上げてください

こちら記載させて頂きます。

【case2.】
ユーザーが集計基準日を「2021/09/03」で入力した場合

【期待する結果】
YM_の値が
2019.10 | 2020.10 | 2021.10 | 2019.11 | 2020.11 | 2021.11 | 2019.12 | 2020.12 | 2021.12 | 2019.01 | 2020.01 | 2021.01 | 2019.02 | 2020.02 | 2021.02 | 2019.03 | 2020.03 | 2021.03 | 2019.04 | 2020.04 | 2021.04 | 2019.05 | 2020.05 | 2021.05 | 2019.06 | 2020.06 | 2021.06 | 2019.07 | 2020.07 | 2021.07 | 2019.08 | 2020.08 | 2021.08 |2019.09 | 2020.09 | 2021.09 | 2019 | 2020 | 2021 |

Offline

#22 2021-09-06 10:41:24

Shin
Member

Re: ユーザーが選択した年月に応じて表示する年月を変更したい【機能追加】

>  2019.12 | 2020.12 | 2021.12 | 2019.01 | 2020.01 | 2021.01
2019/12 の次の年月が 2019/1 ですが??

Offline

#23 2021-09-06 10:45:24

mo888
Member

Re: ユーザーが選択した年月に応じて表示する年月を変更したい【機能追加】

すみません。。。誤字になります。

正しくは以下になります。


【期待する結果】
YM_の値が
2019.10 | 2020.10 | 2021.10 | 2019.11 | 2020.11 | 2021.11 | 2019.12 | 2020.12 | 2021.12 | 2020.01 | 2021.01 | 2022.01 | 2020.02 | 2021.02 | 2022.02 | 2020.03 | 2021.03 | 2022.03 | 2020.04 | 2021.04 | 2022.04 | 2020.05 | 2021.05 | 2022.05 | 2020.06 | 2021.06 | 2022.06 | 2020.07 | 2021.07 | 2022.07 | 2020.08 | 2021.08 | 2022.08 |2020.09 | 2021.09 | 2022.09 | 2019 | 2020 | 2021 |

Offline

#24 2021-09-06 10:54:05

mo888
Member

Re: ユーザーが選択した年月に応じて表示する年月を変更したい【機能追加】

Shin様

すみません。今回の件ですが私の思い違いでShin様に最初頂いたご提案で私の期待する値は取得できていたのかと思います。

もう少し私の中で要件を整理したいと思います。

申し訳ございません。そして大変ありがとうございます。

Offline

#25 2021-09-06 12:05:22

Shin
Member

Re: ユーザーが選択した年月に応じて表示する年月を変更したい【機能追加】

mo888 wrote:

ユーザーが集計基準日を「2021/09/03」で入力した場合以下のようになるのが期待した結果になります。
2019 = 2018/10~2019/9
2020 = 2019/10~2020/9
2021 = 2020/10~2021/9

月ごと集計で2018/10~2019/9は表示しないのに、年集計には表示する、という意味ですかね。

Last edited by Shin (2021-09-06 13:42:43)

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.007 seconds, 10 queries executed - Memory usage: 626.29 KiB (Peak: 659.2 KiB) ]