2009-07-26 4 views
0

私は答えを見つけることができなかった初心者の質問。Birt - サブストリングに従ったテーブルのグループ項目

「時間」列を持つ複数の項目を保持する表を含むレポートがあります。 私は、同じ月のすべてのアイテムが一緒にグループ化されるようにアイテムを時間でグループ化したいと思います。

これを行うには、 "Time" String(形式は "17:22 19/07/09")から月/年を抽出し、それをグループ化に使用する必要があります。 私はこのすべてをJavaでやる方法を知っています.BIRTはこれを行ういくつかの方法を提供していると思いますが、これを行う簡単な方法を見つけることができませんでした。

これについての良いチュートリアルがあれば、私はそれをチェックアウトしたいと思います。

ありがとうございます!

答えて

2

私たちは以下のようにしました。データセットのための私たちのSQLクエリでは、我々は選択の両方(それぞれ2009-01-05用と2009-01"char(my_date,iso)""left(char(date,iso),7)"(例えば)、何かのように:あなたは、レポート内の列1を、あなたのテーブルを作成して次に

select 
    left(char(my_date,iso),7) as isoyyyymm, 
    char(my_date,iso) as isodate, 
    otherfield as value 
from tbl 
order by my_date 

、テーブル内のその列の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章)です。それと、Integrating and Extending BIRTは、深刻なBIRTユーザーにとって必須です。

これは最初のレポートデザイナーにとって非常に重要です。2つ目は、組み込みJavaやJavascript、レポートオブジェクトモデル、BIRTの基礎となるアーキテクチャなど、より高度なトピックをカバーしています。これは、レポートを真に華やかにしたい場合に必要です。

0

これは、テーブル自体のグループ設定で行うことができます。グループの作成方法は、http://www.eclipse.org/birt/phoenix/tutorial/basic/basic06.php(btw。、Google Gicesの最初のヒットとして「birt table group」を検索しています)に記載されています。この場合、 は、あなたはそのようにそれを行うことができます。

  • 状態のグループヘッダーと が表示されますコンテキストメニューの行ヘッダーを右クリックします。
  • コンテキストメニューから、 グループ→以下を選択します。 [グループの詳細]ダイアログ が表示されます。
  • グループ の「時間」列をオンにし、「 」フィールドに「Time」と入力します。
  • 間隔で「月」を選択 コンボボックス
  • [OK]をクリックします。

これは、SQLまたはJSのバイディングを行わずにグループ化されたテーブルを作成します。

関連する問題