Несколько страниц в отчете Jasper с различным содержанием таблицы - PullRequest
1 голос
/ 21 марта 2020

Ребята. Я занимаюсь разработкой системы управления школой с java, MySQL и TIBCO Jasper Studio. Но я застрял в определенном моменте при создании отчета. Вот мой сценарий.

  1. У меня есть две таблицы, которые называются «Сведения об ученике» и «Результаты студента».

  2. В разделе «Сведения об ученике» получен «Студент» Идентификатор, Имя студента "далее Результаты студента получили" Идентификатор студента, Имя субъекта, Оценка ".

  3. Фактически мне удалось заполнить данные на одной странице в Jasper Studio с помощью Java кода для одного студента за показ его / ее результатов экзамена.
  4. Тем не менее, мое реальное требование заключается в том, чтобы, когда я предоставляю диапазон студентов, я хочу заполнить отчет Jasper несколькими страницами для данного диапазона студентов, чтобы показать результаты своих экзаменов ( Оценка) на каждой странице в виде рисунка.

enter image description here

Как только мне удавалось заполнять каждую страницу отдельно для каждого студента. Хотя результаты всех выбранных мной учеников отображаются на первой странице под первым учеником, а не на страницах других учеников.

enter image description here

Мой метод данные, заполняющие отчет - это JRTableModelDataSource для страницы отчета и таблицы отчета.

1 Ответ

1 голос
/ 24 марта 2020

попробуйте следующее решение,

сократите набор данных, используемый идентификатором студента в запросе 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_id и установите isStartNewPage свойство true,

поле student_id

<field name="student_id" class="java.lang.Integer">
    ......
</field>

группа student_id

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