5

ListJava Beanのコレクション ( ) のデータセットが入力されたテーブルを示す作業用の jrxml レポートを既に作成しています。

今度は、同じデータセットを使用して Chart (初心者向けの基本的な棒グラフ) を作成したいと思います。各 Bean には、棒グラフに表示したい 4 つの値 (月、通常の時間、移動時間、残業時間) が含まれています。各 Bean が各月の 3 つのバーのグループを生成することを期待していたので、最終的にチャートには下から上に成長する 12x3 のバーが含まれ、月の名前は 3 つのバー グループの下のラベルとして機能します。各グループは、左から右に向かって、別のグループの隣に配置されます。

残念ながら、このチャートを作成することは、私が思っていたよりもはるかに難しいようです。少なくとも、テーブルを作成するのとはまったく違うようです。Jasper Studio のチャート ウィザードが機能しているかどうかもわかりません。少なくとも、グラフのデータ シリーズ ダイアログにシリーズを追加することはできません。[追加] を押しても、何も起こりません。ダイアログは開かれず、エラー メッセージも表示されず、何が問題なのかを示唆するものもありません。

主な問題は、データセット データをチャートに接続する方法が見つからないことです。

メイン レポートにグラフを埋め込もうとした後、グラフ コンテナーとして機能するためだけに作成された新しいサブレポートにも追加しようとしました。メイン レポート データセットをデータソースとしてサブレポートに渡し、それをサブレポートのグラフのメイン データ セットとして使用しようとしました。まだデータセット/チャートの接続に問題があります。[追加] ボタンを押しても何も起こりません。

以下に、私が使用している単純な Bean を示します。まず、WorkingHoursReport は、JRBeanCollectionDataSource としてレポートするために渡す Bean です。その Bean の最も興味深いフィールドは、WorkingHours Bean のリストだと思います。そのリストには常に 12 の項目があり、各月に 1 つです。これは、データソース式 new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{workingHours}) を使用して現在テーブル要素に渡しているリストです。

WorkingHoursReport.java:

public class WorkingHoursReport extends CommonReport {
    private int year;
    private List<WorkingHours> workingHours;
}

勤務時間.java:

public class WorkingHours {

    private int month = 0;
    private double hoursNormal = 0;
    private double hoursTravel = 0;
    private double hoursOvertime = 0;
    private double hoursTotal = 0;
    private double hoursTotalCumulative = 0;
 }

初めてのチャートを作成しようとしている間、私は当然のことながら、テーブルですでに正常に使用していたのとまったく同じコマンドを使用して、データソースを定義してチャートにデータを入力しようとしていました。

new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{workingHours}).

残念ながら、少なくとも jasper studio チャート作成ウィザードはデータへの接続を取得していないようでした (ドキュメントによると、チャートにデータ フィールドを選択できるはずだったダイアログが開かれませんでした)。

4

1 に答える 1