逆引き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()
/* 日付が設定されていない時 */
: ""
)