2011-11-09 8 views
0

ジャスパーレポートnewbieこちらです。私はtutorialquick referenceを読んで、JRに関するいくつかの記事を読んで、今ではiReportレポートデザイナーで1日ほど遊んでいます。JasperReport&Filling Components

私が最後に考えている概念の大部分は、チャートコンポーネントとそのデータの関係と関係があります。これらのそれぞれの定義を見つけるのは簡単ですが、意味のあるアプリケーションで互いにどのように関係しているかを示す、ほとんどの実践文書があるようです。

  • レポートのフィールド
  • レポートPrameters
  • レポート変数
  • データセット

iReportはで遊んことで、フィールド、パラメータと変数のように、レポートレベルで存在することができているようですデータセットの内部に配置されています。しかし、何かがField vs. Parameter vs. Variableのときの私の理解は非常に曖昧であり、データセットとの関係についての私の理解も非常に不安定です。

データセットを少しずつ使い分けることで、グラフの構成要素(円グラフ、テーブルなど)がどのように「フィードされる」か「注入される」と「ツリーを通じたフォレスト」を見るのに苦労しています。そのデータ。

Soo ...私は、答えがあればすべてを私のために結びつけてくれると思っていました(私は信じています)。たとえば、テキストフィールドと円グラフの2つのチャートコンポーネントがあるとします。私は、円グラフがそうのようなテキストフィールドの下に表示する:

The author of this report is: <value supplied by the data source> 

<pie chart here> 

ので、(私は私はそれを正しく使用していると思う...)「の時間を埋める」で、報告書は「入力されますレポートの作成者(String)の名前と2つの円のスライスで構成される円グラフ(ラベル/キーが「Eloi」、値が2のスライスの値が25のスライス) 「Morlocks」のラベル/キーが含まれています。私がここで正しいJR用語を使用しないのであれば、達成しようとしているのは、チャートの75%を消費する "Eloi"スライスと、チャートの75%を消費する "Morlocks"スライスの2つのスライスチャート。

この種のチャートを設定する方法について、誰かが説明したりコード(Java/JRXML)スニペットを与えることができれば、すべての点を結びつけてコンポーネントがどのようにデータで満たされるかを理解するのに役立つと思います。すべてのヘルプの事前のおかげで!

答えて

1

パラメータは、エンドユーザーが実行時にレポートに提供するものと考えることができます。たとえば、クエリで使用されるStartDateとEndDateを指定します。興味のある開始日はあなたが知っているものであり、データソースによって提供されていません。 (この考え方にはバリエーションがあります:アプリケーションがあなたのログインに基づいて物事を知っているかもしれないし、それらをパラメータとして提供するかもしれません)。

データソースから返されるデータこれはあなたが学びたいものです。

select political_group, gullibility from mytable where the_date > $P{StartDate}

おそらくあなたは、入力開始日は「802701」の値をして、このような結果になるだろう::などの変数の

$F{political_group} $F{gullibility} 
Eloi    75 
Morlock    25 

は思うがたとえば、あなたはこのようなクエリを実行します。この生データを操作する方法。彼らは、文字列の操作や合計を実行するようなより複雑なもののような行単位の計算だけでなく、合計と小計を計算することができます。それはあなたがしたい主なアイデアを持っているhttp://mdahlman.wordpress.com/2009/05/02/limiting-pie-pieces/

は、私が数年前に投稿この円グラフのレポートを見てみましょう。別のフィールドではなく、グラフに直接タイトルを付けます。それは非常に単純な変更になります。同様に、タイトルを「このレポートの作成者は$ P {TheAuthor}」に変更し、実行時にそのパラメータをレポートに渡すことができます。

パラメータではなくレポートタイトルのフィールドを使用することもできます。しかし、一般的にそれは意味をなさない。フィールドは、データセットに多数の値を持ちます。どちらがタイトルに属していますか?上記の場合、「Eloi」と「Morlock」はフィールドであり、実際にはレポートのタイトルには意味がありません。もちろん、特別なケースを想像することもできます.public_groupの値をすべて1つの文字列に連結してレポートタイトルに入れることもできますが、圧倒的多数のケースではこれは妥当ではありません)。

運。

+0

ありがとう@mdahlman。私の混乱の根源であると私が信じていることがあなたの反応によって明らかにされました。私は、データソース(例えば、MySQL DB)からのデータで提供されるFieldと実行時にPrameterがレポートに供給されることの違いを理解していないと思います。私にとっては、それらはすべて実行時に提供されるデータです。それらの違いは何ですか?そして、ベストプラクティスは何ですか?どちらかを使用するための決定要因は何ですか?あなたの助けをもう一度ありがとう! – IAmYourFaja

+0

これらのフォローアップの質問に答えるための詳細を追加しました。つまり、ユーザーはParam値を提供し、データソースはField値を提供します。 – mdahlman

関連する問題