Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.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
Jasper reports 如何在报表中显示多列数据_Jasper Reports_Subreport - Fatal编程技术网

Jasper reports 如何在报表中显示多列数据

Jasper reports 如何在报表中显示多列数据,jasper-reports,subreport,Jasper Reports,Subreport,要求: 我有一个DB表格,如下所示: COP_MASTER ----------------- CopDuty CopName Duty1 Alpha1 Duty2 Alpha2 Duty1 Alpha3 Duty1 Alpha4 Duty2 Alpha5 使用iReport,我需要准备一份如下所示的报告: CopDuty CopName Duty1 Alpha1 Aplpha3 Alpha4 Duty2

要求:

我有一个DB表格,如下所示:

COP_MASTER
-----------------
CopDuty CopName    
Duty1     Alpha1
Duty2     Alpha2
Duty1     Alpha3
Duty1     Alpha4
Duty2     Alpha5
使用iReport,我需要准备一份如下所示的报告:

CopDuty        CopName
Duty1          Alpha1 Aplpha3 Alpha4
Duty2          Alpha2 Aplha5
在这里,copname列表水平增长(或者更简单地说,列是动态的)

我已经尝试过使用subReport,在subReport的细节栏中有一个List元素,其中List元素的PrintOrder保持“水平”。但是列表是垂直增长的,而不是水平增长的

有什么建议或帮助吗

  • 准备一份独立报告,将copName作为要显示的字段
  • 使“报告属性”选项卡中的printOrder属性可用为“水平”
  • 更改列值:n(其中n>1)
  • 转到主报表并添加子报表元素,选择“justaddthesubreport元素”
  • 转到子报表元素的“属性”选项卡,执行以下更改:

    子报表表达式:$p{Subreport_DIR}+“CopSubReportFileName.jasper” DataSourceExpression:new net.sf.jasperreportsengine.data.JRBeanCollectionDatasource($F{cops})

  • 这里我们必须注意,如果“警察”是与“职责”BO关联的BO,那么上述解决方案就可以了。但是,如果要通过DB conn直接对其进行测试,则必须将“dutyId”作为报告输入参数传递给子报告,以便获取和打印相应的copname