私はiReportとJasperReportsを使用しています。レポートを作成し始めたとき、iReportはデフォルトでGroovyを使用しますが、 Javaに変更する必要があり ます(仕事の制約)。Groovy でレポートを作成すると、完全に機能しますが、Java言語に変更すると、レポートでクラス (クラスの Java からのフィールド) を使用するため、問題が発生するため、間違いは次のとおりです。myfield cannot be resolved or is not a field.
レポートを作成するために使用するクラスは次のとおりです。
public final class GrupoEstadistico implements Serializable {
private Estadistico ccDocumento;
private Estadistico ccNombres;
//another class that is an attribute of type Estadistico
private Date periodo;
private String tipoEntidad;
//and another primitives atributes: strings, int
//getters and setters
}
これはEstadisticoクラスです。
public final class Estadistico implements Serializable, Comparable<Estadistico> {
private String nombreEntidad;
private int codigo;
private int numeroConsultas = 0;
//and aother primitives atributes: strings, int
//getters and setters
}
また、レポートではGrupoEstadisticoクラスのすべての属性をフィールドのように使用します。
そして、次のような式を使用して各Estadisticoの値を取得します。
$F{ccDocumento}.numeroConsultasanyone
レポートをコンパイルしようとすると、次のような問題が発生します。
numeroConsultas cannot be resolved or is not a field.
私が理解していることは次のとおりです。
- iReportがクラス属性を見つけられないため、これには
- iRreportは、私が使用する表現を理解していません。
これは私が私の問題を解決しようとしたことです:
- iReportのクラスパスに必要なクラスを含む jar ファイルを追加します。
reporte.model.GruoEstadistico
レポートのプロパティに次のようなインポートを追加します。そして、xmlを編集して、タグ スクリプトレットを追加します。
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd"
name="ListaConsultaEstadistico" pageWidth="895" pageHeight="595"
orientation="Landscape" columnWidth="855" leftMargin="20" rightMargin="20"
topMargin="20" bottomMargin="20"
scriptletClass="reporte.model.GrupoEstadistico"
uuid="b0990d7b-fade-4200-a2ef-fb0416f5a9c2">
アップデート:
次の方法でJavaコードからレポートを呼び出しています。
/**Create a List of GrupoEstadistico class. */
List<GrupoEstadistico> this.dataSource = new ArrayList<GrupoEstadistico>();
/**Fill my List....*/
JasperPrint jasperPrint= JasperFillManager.fillReport( reportPath,this.parametros,
new JRBeanCollectionDataSource( this.dataSource ));
データソースは List<GrupoEstadistico>
しかし、まだ機能しません。
誰でも私を助けることができますか?