嵌套的jasper子报告与json数据源

时间:2015-06-02 05:56:32

标签: json jasper-reports datasource subreport

我有一个包含数组中数组的json数据源,我正在使用子报表,这些子报表具有使用datasourceExpression和' subdata()'来源的数据源。主数据源上的方法。

我现在的问题是将另一个列表传递给另一个子报表,我不想再次使用子数据,我需要以某种方式做的是将包含json文本的字段作为String从当前子报表传递到下一个子报告作为json数据源。

有谁知道如何实现这一目标?

我正在使用iReport 5.6.0创建 JasperReports 的报告。

1 个答案:

答案 0 :(得分: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”),现在迭代嵌套数组我设置字段“asignaturas”,类型为“java.lang.Object”。

然后我在细节带上添加一个子报告,在“子报告属性”中选择: “使用数据源表达式”和数据源表达式的值:

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

然后在子报告中,我将字段添加到详细信息区域(在此示例中为字段“asignatura”),它将相应地打印嵌套数组,用于主数组的每个节点。