Jasper reports 按水平顺序打印数据。动态列

Jasper reports 按水平顺序打印数据。动态列,jasper-reports,crosstab,subreport,Jasper Reports,Crosstab,Subreport,我在设计以下JasperReports格式时遇到一些问题: 我有一个要求,在我需要打印的水平顺序,而不是垂直的数据 有两个表格: 老师 Teacher_Id Teacher_Name 1 Tom 2 Monique 3 Sofie 主题 Subject_Id Subject_Name 1 Phy 2 Chem 3 Bio 4

我在设计以下JasperReports格式时遇到一些问题:

我有一个要求,在我需要打印的水平顺序,而不是垂直的数据

有两个表格:

老师

Teacher_Id  Teacher_Name
1            Tom
2            Monique
3            Sofie
主题

Subject_Id  Subject_Name
  1            Phy
  2            Chem
  3            Bio
  4            Eng
Etc.... 
下面的报告演示类似于此,其中每个记录的主题列将水平增长

TeacherId         TeacherName                    Subjects

1                 Tom                Physics        Chem          Bio
2                 Sofie              Eng            History       Geography
3                 Monique            Eng            Chem          Physics
我使用了主题的子报告。并且能够通过指定列“20”和printOrder“horizontal”来水平增长主题列表。 但通过这种方法,列可以水平打印,但不会水平增长。该尺寸固定为20,因此留下大量空白。 我不知道如何使主题列在水平方向上动态增长(动态列)。 我还尝试了subreport+list元素选项,但没有成功。 交叉表是我从未尝试过的东西,也不确定它是否会奏效。 如果我可以实现动态列,那么我可以将目标放在报告输出的下一个级别,如下所示:

TeacherId         TeacherName                         Subjects
                                   Physics        Chem          Bio      Eng

1                 Tom                Yes         
2                 Sofie                            Yes               
3                 Monique                                       Yes            

有什么线索吗?

我们必须在ireports中使用交叉表来获取动态列