Power Apps

【PowerApps】Plannerをガントチャートみたいに表示したい③

前回:【PowerApps】Plannerをガントチャートみたいに表示したい② | サクサク仕事

前回に続いて、日付部品を作っていきたいと思います。
週単位で表示と選択期間の表示を作ります。
どんな感じのガントチャートにしたいかによって日付部品は選んでください。

週単位で表示(日曜日から土曜日まで)

1.週の初めの日の計算

週の初めの日は、以下の方法で計算できます。
週の始まりを何曜日にするかは、StartOfWeek.Sundayの部分を修正して調整してください。

基準日.SelectedDate-Weekday(基準日.SelectedDate, StartOfWeek.Sunday)+1

(参考)
Day、Month、Year、Hour、Minute、Second、Weekday 関数 – Power Platform | Microsoft Learn

2.ギャラリーに設定

前回の記事同様、水平ギャラリーを用意します。
投稿を編集 “【PowerApps】Plannerをガントチャートみたいに表示したい②” ‹ サクサク仕事 — WordPress

水平ギャラリーのItemsを以下の式に変更します。
1週間の日数は固定なので、7日分の日付を計算します。

// 1週間の日数分繰り返し処理
ForAll(
    // 1週間の日数分、0から1ずつ加算する
    Sequence(7,0,1),
    // 基準日から週初めを計算して、そこにSequenceの結果を加算する。
    // Weekdayの第二引数で週初めの曜日を指定
    DateAdd(基準日.SelectedDate-Weekday(基準日.SelectedDate, StartOfWeek.Sunday)+1,
    Value,
    TimeUnit.Days)
)

これで、1週間分のギャラリーはできました。

選択期間の表示

1.選択期間の日数計算

基準日を2つ用意します(基準日From、基準日To)。
2つの日付の差分を計算するには、以下の式で計算できます。
DateDiffだけだと、1日足りないので、計算結果に+1しましょう。

DateDiff(基準日From.SelectedDate,基準日To.SelectedDate,TimeUnit.Days)+1

(参考)
DateAdd、 DateDiff、および TimeZoneOffset 関数 – Power Platform | Microsoft Learn

2.ギャラリーに設定

水平ギャラリーのItemsを以下の式に変更します。

// 基準日の差分繰り返し処理
ForAll(
    // 基準日の差分、0から1ずつ加算する
    Sequence(DateDiff(基準日From.SelectedDate,基準日To.SelectedDate,TimeUnit.Days)+1,0,1),
    // 基準日FromにSequenceの結果を加算する。
    DateAdd(基準日From.SelectedDate,
    Value,
    TimeUnit.Days)
)

基準日の日数に制限をかけない場合、スクロールが長くなってしまうので、ある程度で制限をかけたほうが良いかもしれないです。

今回はここまでで終わりです。
次回からは、Plannerの情報をギャラリーに表示していきたいと思います。

コメント

タイトルとURLをコピーしました