0

目標は次の構造です

Static Text
--------------------
Category 1
    SubCategory 1_1
    SubCategory 1_2
    ...
Category 2
    SubCategory 2_1
    ....
...
--------------------
StaticText

動的データを取得するには、次の Bean 構造を使用します

public class  BeanFactory {

  public  static Collection getVehicleData() {return the Collection}
}

カテゴリ クラス

public class VehicleData {
  private String category;
  private List<WarningData> warnings;
}

WarningData クラスは POJO です。では、この種の構造を取得する方法を誰かに教えてもらえますか?

  1. 2 つのデータセットを使用しようとしました。1 つは beanfactory を使用してデータを作成し、もう 1 つは vehicledata クラスを使用して警告データを取得する必要があります。しかし、これは私にはうまくいきませんでした。
  2. グループ化してみました。しかし、警告データにアクセスする方法がわかりません
  3. iReport Designer からテーブルまたはリスト コンポーネントを使用する必要がありますか?
  4. 式エディタでループを使用できますか?

更新 これを明確にするために。サブカテゴリを反復するにはどうすればよいですか? カテゴリの反復は成功しましたが、サブカテゴリのすべてのカテゴリを反復する方法がわかりません。

4

2 に答える 2

0

解決策は、リサのコメントからのヒントのようなものでした。問題のデータ構造の代わりに、次のような「フラットな」構造を作成しました。

public class VehicleData2 {
   private String category;
   private String categoryIconPath;
   private String iconPath;
   private String headline;
   private String warning;
}

最後の 3 つの属性は、新しいクラス WarningData にカプセル化されました。しかし、この警告データのリストを繰り返しスローすることができなかったため、私のソリューションでは、たとえばカテゴリに冗長性があります。ただし、この種の構造では、カテゴリにレポート グループを使用し、警告データを jasperreport の詳細部分に入れることができます。

于 2013-08-29T13:05:14.857 に答える
0

レコードのサブデータを反復する唯一の 2 つの方法は、 SubreportsTablesのようです。

各データソースは、フラット リストの反復子です。レポートには繰り返しの概念が 1 つだけ含まれています。つまり、データソース内の各レコードの詳細セクションを繰り返します。テーブルとサブレポートの両方に独自のデータソースがあり (含まれているレポートの現在の繰り返しに依存する可能性があります)、それに応じてDetailセクションを繰り返します。それらは入れ子にできるため、理論的にはジャスパーは必要に応じて任意のループを許可します。ループごとにサブレポートまたはテーブルを導入する必要があります。

  • ルート レコードの詳細セクション
  • サブレポート詳細セクション
  • テーブル詳細セクション
于 2019-08-06T08:41:37.963 に答える