IReport+JasperReport系列的坑(三)子报表不显示(死活不显示-巨坑)

1.这个是IReport设计缺陷引起的。报表属性有一个叫 when no data 的选项,指的是报表Detail没有循环体数据时怎么显示。四个选项全是不显示的意思,如果主报表所有的Detail均是嵌套子报表实现,那么主报表必然会触发when no data。

IReport+JasperReport系列的坑(三)子报表不显示(死活不显示-巨坑)

2.解决方案:

为了避免主报表触发when no data,需要给主报表加一个Detail,并添加一个字段(任意命名)。传数据时,需要至少传一条来保证主报表有循环体数据,从而避免触发when no data导致的全盘不显示。此Detail高度设置为0,或者Print When Expression设置false。

IReport+JasperReport系列的坑(三)子报表不显示(死活不显示-巨坑)