2015-06-02 60 views
0

我有一個json數據源與數組內的數組,我使用的子報表具有使用datasourceExpression和主數據源上的'subdata()'方法派生的數據源。使用json數據源嵌套的jasper子報表

我現在的問題是將另一個列表傳遞給另一個子報表,我不想再次使用子數據,我需要做的是將包含json文本的字段作爲字符串從當前子報表傳遞到下一個子報表作爲json數據源。

有沒有人知道這是如何實現的?

我正在使用iReport 5.6.0創建JasperReports的報告。

回答

0

有了這樣的JSON:

 


    {"records": 
     { 
      "Calificaciones":[ 
       {"curso":1,"cursoCompleto":true,"asignaturas":[ 
         {"asignatura":"Geometescriptiva 1"}, 
         {"asignatura":"Geometescriptiva 2"}, 
         {"asignatura":"Geometescriptiva 3"} 
        ] 

       } 
      ] 
     } 
    } 

我添加到我的主要報告的查詢「records.Calificaciones」迭代的第一陣列上和細節添加字段(CURSO,cursoCompleto,asignaturas)主要報告的帶寬(在本例中,「curso」字段將打印整數「1」),現在要在嵌套數組上進行迭代,我設置類型爲「java.lang.Object」的字段「asignaturas」。

然後,添加上詳細信息區域子報表,在「子報表屬性」選擇:在我添加子報表

new net.sf.jasperreports.engine.data.JsonDataSource(new ByteArrayInputStream($F{asignaturas}.toString().getBytes()),"") 

然後: 「使用數據源表達」爲數據源表達和值(在本例中是字段「asignatura」),它將相應地爲主數組的每個節點打印嵌套數組。