Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带有jasper报告的多个图表_Java_Charts_Jasper Reports_Subreport - Fatal编程技术网

Java 带有jasper报告的多个图表

Java 带有jasper报告的多个图表,java,charts,jasper-reports,subreport,Java,Charts,Jasper Reports,Subreport,我希望能够创建以下jasper报告 载有一般资料的主要报告 然后是多个图表(动态图表数量) 目前,我在这个报告中只有一个图表,我向它提供了一个对象列表(来自java),其中每个对象都有一个“键”(即日期)和一个值(即数字) 对于这张图表,一切正常, 现在,当我想要绘制多个图表时,我不知道如何进行 从其他帖子中,我看到一些人使用“子报表”,并将图表放在子报表上 我试过了,图表确实出现过多次,但都是空的 这或多或少是我的数据集 class ChartData{ String name;

我希望能够创建以下jasper报告

载有一般资料的主要报告 然后是多个图表(动态图表数量)

目前,我在这个报告中只有一个图表,我向它提供了一个对象列表(来自java),其中每个对象都有一个“键”(即日期)和一个值(即数字)

对于这张图表,一切正常, 现在,当我想要绘制多个图表时,我不知道如何进行

从其他帖子中,我看到一些人使用“子报表”,并将图表放在子报表上

我试过了,图表确实出现过多次,但都是空的 这或多或少是我的数据集

class ChartData{
   String name;
   List<ChartItem> items;
}


class ChartItem{
   Date key;
   Integer value;
}
类图表数据{
字符串名;
清单项目;
}
类图表项{
日期键;
整数值;
}
如何将数据从主报表传递到子报表? 如何在子报告中使用它? 我将使用“名称”成员作为图表上方的标题

在子报告中,必须使用名为“\u THIS”的保留字段

你必须加上这一行

<field name="_THIS" class="some.class.type"/>

例如:

<field name="_THIS" class="com.company.ChartData"/>
or 
<field name="_THIS" class="java.lang.Integer"/>
此字段将在运行时用数据集中的当前项填充

这是主报告中的子报告部分

<subreport>
    <reportElement x="0" y="23" width="572" height="118" uuid="27e38f7e-9329-4c77-a590-fe1b7eabef85"/>
    <dataSourceExpression><![CDATA[$P{GAPS}]]></dataSourceExpression>
    <subreportExpression><![CDATA["sub_gaps.jasper"]]></subreportExpression>
</subreport>

其中“GAPS”是用于从java代码中注入数据的参数的名称

<parameter name="GAPS" class="net.sf.jasperreports.engine.data.JRBeanCollectionDataSource"/>