2009年12月15日火曜日

日付の範囲をカレンダービューで表示する


日付の範囲が入力されたアイテムをプロパティ等でみてみると、ハイフンで区切られた二つの日付が見えます。

2009/12/15 - 2009/12/17

このアイテムをカレンダービューの1列目にそのまま設定しても、最初の日(上の例では12/15)だけにしか表示されません。

カレンダービューの12月15日、16日、17日の3日間すべてに文書を表示する場合、範囲をひとつひとつの日付に分解します。

そこで登場するのが @Explode 関数です。

@Explode 関数は特定の区切り文字で区切られた単一の値をリストに分解するものとして利用しますが、日付の範囲の場合、複数値に分割してくれます。

例えば次のような式の場合、"2009/12/15", "2009/12/16", "2009/12/17" の3つの値に分解されます。

@Explode([2009/12/15 - 2009/12/17])

ここで注意しなけれならないのは、戻り値が日付のリストではなくテキストのリストであることです。

そんな訳でカレンダービューの1列目に設定する場合、上記式の戻り値を @TextToTime 関数で日時形式へ変換します。

例えば StartEndDate フィールドに日付の範囲が入力されている場合、列式へは

@TextToTime(@Explode(StartEndDate))

と指定します。

そしてビューの1列目で、ソートを昇順、「複数値を別のエントリで表示」をオンにすればできあがりです。

0 件のコメント:

コメントを投稿