我有一个报告,其中pdf和csv的导出结果在某些列中有所不同,我想对两个导出使用相同的模板。与PDF输出相比,CSV会有更多或更少的列。我使用 JRCsvMetadataExporter 作为我的CSV导出器。所以我尝试做的是为CSV和PDF创建一个单独的乐队,在用于CSV的乐队中,我的代码就像
<band height="0">
<printWhenExpression><![CDATA[Boolean.FALSE]]></printWhenExpression>
<textField>
<reportElement x="0" y="0" width="119" height="0">
<property name="net.sf.jasperreports.export.csv.column.name" value="Column_1"/>
<propertyExpression name="net.sf.jasperreports.export.csv.data"><![CDATA[$F{COL_1}]]></propertyExpression>
</reportElement>
</textField>
</band>
但是当我运行导出时,没有为CSV生成任何内容,我预计当 printWhenExpression 为false时,它不会包含在PDF导出中,CSV导出器将包含乐队中提到的列。谁能让我知道我在这里做错了什么?
答案 0 :(得分:4)
如果使用Boolean.FALSE对printWhenExpression进行硬编码,则它将永远不会出现在PDF和CSV中。尝试在jrxml中添加宽度和高度为0的元素,这将使其不显示在PDF中,但它将显示在CSV中,因为您使用的是JRCsvMetadataExporter