简体   繁体   English

Jasper Report 中具有不同表格内容的多个页面

[英]Multiple Pages in Jasper Report with different table contents

Guys.伙计们。 I've been developing a school management system with java, MySQL and TIBCO Jasper Studio.我一直在用 java、MySQL 和 TIBCO Jasper Studio 开发学校管理系统。 But I've stuck in a certain point in generating a report.但是我在生成报告时遇到了某个问题。 Here is my scenario.这是我的场景。

  1. I have two tables called "Student Details" and "Student Results".我有两个表,分别称为“学生详细信息”和“学生成绩”。

  2. In Student Details got "Student ID, Student Name" further Student Results got "Student ID, Subject Name, Grade".在学生详细信息中得到了“学生 ID,学生姓名”,进一步的学生结果得到了“学生 ID,学科名称,年级”。

  3. In fact I have successfully managed to populate data in single page in Jasper Studio with Java Code for a single student for showing his/her exam results.事实上,我已经成功地使用 Java 代码在 Jasper Studio 的单个页面中为单个学生填充数据,以显示他/她的考试成绩。
  4. Though, my real requirement is when I give a range of students I want to populate a Jasper Report with multiple pages for given range of students to show their exam results (Grade) in each page as picture.不过,我真正的要求是当我给一系列学生时,我想为给定范围的学生填充多页的 Jasper 报告,以在每页中将他们的考试成绩(等级)显示为图片。

在此处输入图片说明

  1. How ever I managed to populate each page separately for each student.我是如何设法为每个学生分别填充每个页面的。 Though results of all students which I select are showing in first page under first student and not showing other students pages.虽然我选择的所有学生的结果都显示在第一个学生下的第一页而不显示其他学生的页面。

在此处输入图片说明

My method of data populating to report is JRTableModelDataSource for Report page and Report table.我的数据填充到报告的方法是报告页面和报告表的 JRTableModelDataSource。

try with following solution,尝试使用以下解决方案,

short the dataset used by Student ID in SQL query as follows,将学生 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

create a group based on student_id field and set isStartNewPage property to true,根据student_id字段创建一个组并将isStartNewPage属性设置为 true,

field of student_id student_id字段

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

group of student_id student_id

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM