以下のようにしました。データセットの SQL クエリでは、次のように(たとえば)"char(my_date,iso)"と"left(char(date,iso),7)"(それぞれ for2009-01-05と) の両方を選択します。2009-01
select
left(char(my_date,iso),7) as isoyyyymm,
char(my_date,iso) as isodate,
otherfield as value
from tbl
order by my_date
次に、レポートにテーブルを作成するときに、列 1 を isoyyyymm に基づくグループ化列にし、テーブル内のその列を空白にする必要があります。
- 見出し、
- グループデータライン; と
- 詳細データ行。
したがって、デザイナーでは次のようになります。
+--------------------------------+-----------+-----------------+
| <Header row> | Date | Value |
+--------------------------------+-----------+-----------------+
| <Group header row (isoyyyymm)> | | |
+--------------------------------+-----------+-----------------+
| <Detail row> | [isodate] | [value] |
+--------------------------------+-----------+-----------------+
| <Group footer row (isoyyyymm)> | | Total.sum( |
| | | row["value"], |
| | | null, |
| | | "Grp1") |
+--------------------------------+-----------+-----------------+
レポート テーブルは引き続き月でグループ化されますが、表示される詳細行にはすべて完全な日付が含まれます。
Date Value
---------- -----
2009-01-01 7
2009-01-08 2
2009-01-15 1
2009-01-22 4
-----
14
2009-02-05 2
2009-02-12 0
2009-02-19 0
2009-02-26 1
-----
5
そのようにしたい場合は間隔でグループ化できますが、単純な文字列を使用できる状況では最も単純なアプローチを選択しました。明らかに、間隔が 1 週間 (または単純な文字列分析に適していないもの) の場合は、BIRT に組み込まれている間隔のグループ化を使用する必要があります。
(私の意見では) これに最適なチュートリアルは、BIRT, A Field Guide to Reporting の187 ページ (第 12 章) にあります。それと、BIRT の統合と拡張は、本格的な BIRT ユーザーにとって必携です。
これは、すべてのレポート デザイナーにとって非常に重要です。2 つ目は、埋め込み Java や Javascript、レポート オブジェクト モデル、BIRT の基礎となるアーキテクチャなど、より高度なトピックを扱います。レポートを本当に素晴らしいものにしたい場合は、これが必要です。