0

私はしばらくの間ウェブで検索していましたが、解決策を見つけることができませんでした。

次のような形式でJasperReportsを使用したいと思います。

--------------------------
Name:
Address:
Phone #
-------------------------
Domain       Total   Price 
www.a.com      100    7500
www.b.com      150    1500
--------------------------
Type         Total   Price
Hosting        350    3500
Surfing        175    2200
--------------------------

複数の詳細バンドが必要な場合と同じように、複数の詳細バンドを作成できますが、問題は、列のタイトルを1回だけ表示したいので、(ドメイン、合計、価格)の場合はそれを実行できることです。それらを列ヘッダーバンドに配置することによって、しかし私は他の詳細バンド(タイプ、合計、価格)の運を見つけることができません

どんな助けでも大歓迎です。

更新:データセットは次のように表示されます。

 Type    Domain    Total   Count 
 null    www.a.com 200     30 
 null    www.b.com 100     95 
 Hosting null      300     65 
 Surfing null      100     25
4

1 に答える 1

1

コメントに投稿されたデータセットの構造を考えると:

  • この式に基づいてレポートグループを作成します$F{domain} == null ? "Type" : "Domain"
  • グループヘッダーに、式と合計価格$F{domain} == null ? "Type" : "Domain"の2つの静的テキストを含むテキストフィールドを追加します。
  • 詳細バンドで、次のテキストフィールドに式を追加します。
    • フィールド1:$F{domain}==null ? $F{type} :$F{domain}
    • フィールド2:$F{total}
    • フィールド3:$F{count} * $F{total}
  • グループフッターに行を追加します

終わり。

2つの結果セットがあると仮定します。

  • 結果セットごとにサブデータセットを追加します(つまりdatasetDomainsdatesetTypes
  • (偽の)レポートグループを追加します(つまり、グループ式を使用しますnull
  • ドメイン合計価格を含む3つの静的テキストフィールドをグループヘッダーに追加します
  • これらのフィールドの下に、のフィールドを含むリストアイテムを追加しますdatasetDomains
  • リストの下に行を追加し、PositionType Fix Relative To Bottomで構成します。
  • タイプ合計価格を含む3つの静的テキストフィールドをグループフッターに追加します
  • これらのフィールドの下に、のフィールドを含むリストアイテムを追加しますdatesetTypes
  • リストの下に行を追加し、PositionType Fix Relative To Bottomで構成します。

ここに画像の説明を入力してください

結果セットが次のように構成されている場合は、次のようになります。

Type     Detail         Total  Price
----     ------         -----  -----
Domain   www.a.com      100    7500
Domain   www.b.com      150    1500
Type     Hosting        350    3500
Type     Surfing        175    2200

次のことができます。

  • に基づいてグループを作成するtype
  • ラベルには(列ヘッダーバンドの代わりに)グループヘッダーバンドを使用します。
于 2013-02-11T10:36:24.230 に答える