パラメータ選択月の前 2 カ月を指定する方法
質問
フル機能版フォームで、会計年度と相対期間をパラメータで指定し、指定月と前 2 カ月分を表示するフォームを作成したいのですが、 指定月は「実行時の視点メンバ」を指定すればよいと思いますが、前月・前々月を指定する方法がわかりません。
-
パラメーター指定:会計年度(年)、相対期間(月)
売上高 | 実行時の視点メンバの前々月 | 実行時の視点メンバの前月 | 実行時の視点メンバ月 |
---|---|---|---|
商品 A |
|||
商品 B |
|||
商品 C |
回答
「実行時の視点メンバ」を基準として相対的な期間を指定するフォームは、下記のような 相対期間のメンバリストを作り、フォーム設計で当リストを指定 することで実現できます。
ここで、指定月によっては、年をまたぐため、*前年度用のリストと当年度用のリスト*を作成し、前年度には前年度用、当年度には当年度用のリストを設定する必要があります。
詳細は、解説を参照ください。
解説
前年分と当年分のリストを分けて表示する理由は、例えば視点メンバが 4 月の場合
売上高 |
2月(前年分) |
3月(前年分) |
4月(当年分) |
商品 A |
|||
商品 B |
|||
商品 C |
上記のように前年度分の月をこの順番で表示する必要があるためです。
まず、過去 2 ヶ月(当年度用)のメンバリストについて、 +
視点メンバが 6 月の場合、メンバリスト式で利用できる @relative_position
がどのような値をとるか考えてみます。
-
視点メンバが 6 月の場合
視点メンバからの過去 2 ヶ月なので 4 月、5 月、6 月です。
4月 |
5月 |
6月 |
7月 |
8月 |
9月 |
10月 |
11月 |
12月 |
1月 |
2月 |
3月 |
-2 |
-1 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
@relative_position
の範囲としては -2 〜 0 の範囲が該当するので、メンバリストの式としては以下のような計算式になります。
@relative_position >= -2 and @relative_position <= 0
これは視点メンバが 7 月 〜 3 月の場合でも成り立ちます。
一方で、過去 2 ヶ月の月が前年度にまたがるようなケース、例えば視点メンバが 5 月の場合 @relative_position
がどのようになるか考えてみます。
-
視点メンバが 5 月の場合
過去 2 ヶ月(当年)で表示したいのは 4 月と 5 月です。
4月 |
5月 |
6月 |
7月 |
8月 |
9月 |
10月 |
11月 |
12月 |
1月 |
2月 |
3月 |
-1 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
@relative_position
で言うと -1 と 0 になり、先程の計算式でまかなうことができます。
視点メンバが 4 月の場合も同じことが成り立ちますので、過去 2 ヶ月(当年度用)のメンバ式としては以下で定義することができます。
@relative_position >= -2 and @relative_position <= 0
次に、過去 2 ヶ月(前年度用)のメンバリストですが、こちらは視点メンバが 4 月の場合と 5 月の場合だけメンバが表示されます。(それ以外の場合は過去 2 ヶ月(当年)だけで表示することができます)
-
視点メンバが 4 月の場合
2 月と 3 月を表示
4月 |
5月 |
6月 |
7月 |
8月 |
9月 |
10月 |
11月 |
12月 |
1月 |
2月 |
3月 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
-
視点メンバが 5 月の場合
3 月を表示
4月 |
5月 |
6月 |
7月 |
8月 |
9月 |
10月 |
11月 |
12月 |
1月 |
2月 |
3月 |
-1 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
以上を考えると、過去 2 ヶ月(前年)のメンバリスト式としては
@relative_position >= 10
となります。
視点メンバが 6 月以降の場合、@relative_position
は最大でも 9 でしかないのでリストにはなにも表示されません。