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

时间:2014-05-31 05:49:39

标签: 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          Alpha2 Aplha5

此处,CopNames列表水平增长(或者更简单地说,列是动态的)。

我已经尝试过使用subReport并在subReport的详细信息区域内使用List元素,其中list元素的PrintOrder保持“水平”。但是列表是垂直增长而不是水平增长。

有任何建议或帮助吗?

1 个答案:

答案 0 :(得分:0)

  1. 使用copName作为要显示的字段准备一份独立报告。
  2. 在报告属性标签中将printOrder属性设置为"水平"
  3. 更改列值:n(其中n> 1)
  4. 转到主报表并使用选项&#34添加子报表元素;只需添加子报表元素"。
  5. 转到子报表元素的“属性”选项卡,执行以下更改,如下所示:

    子报告表达式:$ P {SUBREPORT_DIR} +" CopSubReportFileName.jasper" DataSourceExpression:new net.sf.jasperreportsengine.data.JRBeanCollectionDatasource($ F {cops})

  6. 这里我们要注意的是,如果"警察"是" Duty" BO然后上面的解决方案就好了。但如果要通过DB conn直接测试那么" dutyId"必须作为报表输入参数传递给子报表,以便提取和打印相应的copNames。