目次
以前「SACでストーリーを作成してみた」の記事で、折れ線グラフに表示する日付範囲を指定できるようにしました。
この記事では、モデルに入っている日付の最小値と最大値の範囲内でグラフの表示期間の開始と終了に任意の日付を指定できるようにしましたが(※1)、SACには他にも様々な日付範囲の指定方法があるので6パターン試してみました。
前提条件
- SACのバージョンは2023.16.3とします。
- ストーリーは従来のデザインエクスペリエンスを使用します。
- モデルは「SACでモデルを作成してみた」という記事で作成したものを使います。
モデルに入っている日付のデータは2023年1月1日から2023年12月31日までです。 - ストーリーを開いた日は2023年8月23日です。
6つのパターン
以下6つのパターンを実装してみました。
- モデルに入っているデータ範囲内から期間を絞った上で、開始日と終了日に任意の日付を指定する
- ストーリーを開いた日を起点に、過去と将来の表示日数を指定する
- ストーリーを開いた日を起点に、過去の表示日数のみ指定する
- ストーリーを開いた日から指定日数前を起点に、過去と将来の表示日数を指定する
- ストーリーを開いた日から指定日数前を起点に、過去の表示日数のみ指定する
- モデルに入っているデータ範囲内から期間を絞った上で、過去と将来の表示日数を指定する
1.モデルに入っているデータ範囲内から期間を絞った上で、開始日と終了日に任意の日付を指定する
今回利用するモデルには2023年1月1日から2023年12月31日までのデータが入っていますが、ユーザが指定できる範囲を2023年5月15日から2023年6月15日までに絞った上で、任意の日付を開始日と終了日として指定できるようにします。
実装
開始日と終了日に任意の日付を指定したい場合はタイプを[固定]にします。タイプを[固定]にすると、いつストーリーを開いたとしても日付範囲の設定は変わりません。
タイプを[固定]、粒度を[日]に設定し、開始日を2023年5月15日、終了日を2023年6月15日として[OK]をクリックします。
検証
日付範囲フィルタが2023年5月15日から2023年6月15日の範囲で作成されました。
カレンダーアイコンをクリックして開始日を選択しようとすると、2023年5月15日より前の日付はグレーアウトしており選択できないようになっています。
2023年5月15日から2023年6月15日の範囲内である、5月20日から6月10日であれば指定することができました。
2.ストーリーを開いた日を起点に、過去と将来の表示日数を指定する
ストーリーを開いた2023年8月23日を起点に、過去30日、将来30日分のデータを表示できるようにします。
実装
ストーリーを開いた日を起点に表示日数を指定したい場合はタイプを[動的]にします。タイプを[動的]にすると、ストーリーを開いた日によって起点となる日が変わります。
タイプを[動的]、範囲タイプを[標準]、粒度を[日]に設定して、過去と将来を30日と指定した後[OK]をクリックします。
検証
ⓘにカーソルをあてると開始日と終了日が表示されるのですが、開始日は8月23日の30日前である7月24日、終了日は8月23日の30日後である9月22日と指定されており、グラフにもその通りにデータが表示されました。
グラフに表示する過去と将来の日数を変更することも可能です。
グラフに表示する過去と将来の日数には0から36500までの値を指定できるのですが、将来、過去ともに100日と指定したところ、日付範囲フィルタに2023年5月15日から2023年12月1日までと指定され、グラフにもその通りにデータが表示されました。
今度は将来、過去ともに365日を指定してみました。
日付範囲フィルタには2022年8月23日から2024年8月22日と指定されましたが、モデルには2023年1月1日から12月31日までのデータしか入っていないため、グラフには2023年1月1日から12月31日までのデータが表示されました。
3.ストーリーを開いた日を起点に、過去の表示日数のみ指定する
ストーリーを開いた2023年8月23日を起点に、将来のデータは表示せず、過去30日分のデータのみ表示できるようにします。
実装
タイプを[動的]、範囲タイプを[標準]、粒度を[日]に設定して、過去30日と指定した後、現期間までの範囲を含めるをONにして[OK]をクリックします。
検証
2023年8月23日を起点に、開始日が8月23日の30日前である7月24日と指定されており、グラフにもその通りにデータが表示されました。
4.ストーリーを開いた日から指定日数前を起点に、過去と将来の表示日数を指定する
2023年8月23日の30日前である7月24日を起点に、過去30日、将来30日分のデータを表示できるようにします。
実装
タイプを[動的]、範囲タイプを[オフセット]、粒度を[日]に設定して、過去と将来を30日と指定します。
その後、オフセット方向を[過去]、オフセット粒度を[日]、オフセット金額を[30]にして[OK]をクリックします。
(オフセット金額というのはSACのバグだと思われ、正確にはオフセット日数だと思っています。)
検証
2023年8月23日の30日前である7月24日を起点に、開始日は7月24日の30日前である6月24日、終了日は7月24日の30日後である8月23日と指定されており、グラフにもその通りにデータが表示されました。
5.ストーリーを開いた日から指定日数前を起点に、過去の表示日数のみ指定する
2023年8月23日の30日前である7月24日を起点に、過去30日分のデータを表示できるようにします。
実装
タイプを[動的]、範囲タイプを[オフセット]、粒度を[日]に設定して、過去を30日と指定します。
その後、オフセット方向を[過去]、オフセット粒度を[日]、オフセット金額を[30]にしてオフセット期間までの範囲を含めるをONにして[OK]をクリックします。
検証
2023年8月23日の30日前である7月24日を起点に、開始日が7月24日の30日前である6月24日と指定されており、グラフにもその通りにデータが表示されました。
6.モデルに入っているデータ範囲内から期間を絞った上で、過去と将来の表示日数を指定する
今回利用するモデルには2023年1月1日から2023年12月31日までのデータが入っていますが、ユーザが指定できる範囲を2023年7月1日から2023年9月30日までに絞った上で、過去30日、将来30日分のデータを表示できるようにします。
実装
このパターンでは入力コントロールオブジェクトを2つ作成します。
まず1つ目の入力コントロールオブジェクトを作成します。
タイプを[動的]、範囲タイプを[標準]、粒度を[日]に設定して、過去と将来を30日と指定した後[OK]をクリックします。
日付範囲の入力コントロールオブジェクトが1つできました。
次にユーザが指定できる範囲を2023年7月1日から2023年9月30日までに絞るために、入力コントロールアイコンをクリックして2つ目の入力コントロールを作成します。
タイプを[固定]、粒度を[日]に設定し、開始日を2023年7月1日、終了日を2023年9月30日として[OK]をクリックします。
検証
入力コントロールオブジェクトが2つできました。
1つ目の入力コントロールオブジェクトのⓘにカーソルをあてると、開始日は8月23日の30日前である7月24日、終了日は8月23日の30日後である9月22日と指定されており、グラフにもその通りにデータが表示されていることが確認できました。
ここで2つ目の入力コントロールオブジェクトによる範囲指定が効いているか確認しましょう。
1つ目の入力コントロールオブジェクトに指定されている過去と将来の日数を60日に変更してみます。
すると、開始日は8月23日の60日前である6月24日、終了日は8月23日の60日後である10月22日と指定されましたが、グラフには7月1日から9月30日までのデータしか表示されず、2つ目の入力コントロールオブジェクトによる範囲指定が効いていることが確認できました。
最後に
日付範囲の設定画面を見たものの、直感的に日付範囲の設定をするのが難しかったため、6つのパターンを実装してどのような動きになるか検証してみました。
この記事がどなたかのお役に立てば幸いです。
- カテゴリー