1

ireport 4.1.1 を hibernate jpa で使用しており、2 つのエンティティを取得するクエリがあります。

select a,b from TableA a left join a.tableBList b

a と b の値を取得しようとしています。Java では、2 つの項目を持つオブジェクト (Object[]) の配列を返しますが、ジャスパー レポートでこれを実行しようとすると、次のエラーが発生します。

Exception in thread "main" net.sf.jasperreports.engine.JRRuntimeException: net.sf.jasperreports.engine.JRException: Error retrieving field value from bean : fieldName

fieldName を返されるオブジェクトの名前に置き換えるだけでよいと思いますが、それがわからず、見つけようとしましたが、成功しませんでした。誰か助けてください???

前もって感謝します :)

4

1 に答える 1

0

このエラーは、データがビーンズ プロパティとマッピングされていないか、データ パターンがビーンズ プロパティに従っていないことが原因で発生します。私は私のJavaプロジェクトで同じ問題を抱えていました。そして、あなたのデータは適切な2D配列形式でなければならないことを整理し、どこかからサンプルデータを取得してこれを行いました

String[][] data =
{{ "N263Y", "T-11", " 39 ROSCOE TRNR RACER"},
{ "N4087X", "BA100-163", "BRADLEY AEROBAT"},
{ "N43JE", "HAYABUSA 1", "NAKAJIMA KI-43 IIIA"},
{ "N912S", "9973CC", "PA18-150"}};

        JTable m = new JTable(data,headers);
try {

            JasperReport jasperReport = JasperCompileManager.compileReport(fileName);

            if(jasperReport != null )
               System.out.println("so far so good ");

            // Fill the report using an empty data source

            JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params, new JRTableModelDataSource(m.getModel()) );//create());//con.connection);
            try{
            JasperExportManager.exportReportToPdfFile(jasperPrint, outFileName);
            System.out.printf("File exported sucessfully");
            }catch(Exception e){
                e.printStackTrace();
            }
            JasperViewer.viewReport(jasperPrint);

        } catch (JRException e) {
            JOptionPane.showMessageDialog(null, e);
            e.printStackTrace();
            System.exit(1);
        }

ノート:

フィールド名は小文字で始める必要があります。さらに、フィールド名は、そのデータ内で提供される列名のように小さくする必要があります。

これがあなたを助けることを願っています。

于 2012-09-11T08:04:22.437 に答える