逆引きFormula 2.0 に戻る
「日付範囲が入力されている場合に、範囲が該当する週のグループすべてにレコードを表示したいのですが、実装方法のアイディアがあれば教えていただきたいです。(中略)。なお、マルチセレクトプロパティで複数選択した場合、選ばれているカテゴリすべてのグループに表示されることは確認しています。」という質問がありました。マルチセレクトであればよいとのことなので、マルチセレクトの雛形が作れればよいと判断しました。マルチセレクトが設定されていないものだけを集めたビューを用意して、そこで一括コピーすればいいかと思います。
- 開始日から終了日までの週番号を全て取り出し、unique にする
lets( /* 開始日*/ ds, prop("日付範囲").dateStart(), /* 終了日 */ de, prop("日付範囲").dateEnd(), /* 日付差分 */ n, de.dateBetween(ds, "days"), /* 日付が設定されている場合 */ n >= 0 ? /* n+1 個分の.を作成 */ ".".repeat(n + 1) /* 1文字ごとに分割 (n+1 個の . の配列) */ .split("") /* 開始日から終了日までの日付配列に変換 */ .map(ds.dateAdd(index, "days")) /* 週番号に変換 */ .map(100 + current.week()) /* 先頭の1をWに変換 */ .map(current.replace("^1", "W")) /* ユニークなものだけを取り出し */ .unique() /* 日付が設定されていない時 */ : "" )