我有一个json数据源与数组内的数组,我使用的子报表具有使用datasourceExpression和主数据源上的'subdata()'方法派生的数据源。使用json数据源嵌套的jasper子报表
我现在的问题是将另一个列表传递给另一个子报表,我不想再次使用子数据,我需要做的是将包含json文本的字段作为字符串从当前子报表传递到下一个子报表作为json数据源。
有没有人知道这是如何实现的?
我正在使用iReport 5.6.0创建JasperReports的报告。
我有一个json数据源与数组内的数组,我使用的子报表具有使用datasourceExpression和主数据源上的'subdata()'方法派生的数据源。使用json数据源嵌套的jasper子报表
我现在的问题是将另一个列表传递给另一个子报表,我不想再次使用子数据,我需要做的是将包含json文本的字段作为字符串从当前子报表传递到下一个子报表作为json数据源。
有没有人知道这是如何实现的?
我正在使用iReport 5.6.0创建JasperReports的报告。
有了这样的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”),它将相应地为主数组的每个节点打印嵌套数组。