Java Jasper报告中的多页具有不同的表内容

Java Jasper报告中的多页具有不同的表内容,java,jaspersoft-studio,Java,Jaspersoft Studio,伙计们。我一直在用java、MySQL和TIBCO Jasper Studio开发一个学校管理系统。但我在生成报告时遇到了一些困难。 这是我的设想 我有两个表格,分别是“学生详细信息”和“学生成绩” 在学生详细信息中得到“学生ID,学生姓名”,进一步的学生结果得到“学生ID,学科名称,成绩” 事实上,我已经成功地用Java代码在Jasper Studio的单个页面中填充了数据,以显示单个学生的考试结果 尽管如此,我真正的要求是,当我给一系列学生时,我想在Jasper报告中为给定范围的学生填充多页

伙计们。我一直在用java、MySQL和TIBCO Jasper Studio开发一个学校管理系统。但我在生成报告时遇到了一些困难。 这是我的设想

  • 我有两个表格,分别是“学生详细信息”和“学生成绩”

  • 在学生详细信息中得到“学生ID,学生姓名”,进一步的学生结果得到“学生ID,学科名称,成绩”

  • 事实上,我已经成功地用Java代码在Jasper Studio的单个页面中填充了数据,以显示单个学生的考试结果
  • 尽管如此,我真正的要求是,当我给一系列学生时,我想在Jasper报告中为给定范围的学生填充多页,以便在每页中以图片的形式显示他们的考试结果(成绩)
  • 我是如何为每个学生分别填充每个页面的。虽然我选择的所有学生的结果都显示在第一个学生页面下的第一个页面中,而不显示其他学生页面

  • 我将数据填充到报表的方法是JRTableModelDataSource for report page和report table。

    尝试以下解决方案

    将学生ID在SQL查询中使用的数据集缩短如下:

    SELECT student_details.student_id, student_details.student_name, student_results.subject, student_results.grade FROM student_details INNER JOIN student_results ON student_details.student_id = student_results.student_id ORDER BY student_details.student_id
    
    基于
    student\u id
    字段创建一个组,并将
    isStartNewPage
    属性设置为true

    学生id的字段

    <field name="student_id" class="java.lang.Integer">
        ......
    </field>
    
    <group name="student_id" isStartNewPage="true">
        <groupExpression><![CDATA[$F{student_id}]]></groupExpression>
    </group>