3

我有一份报告,其中 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 导出器将包含带中提到的列。谁能让我知道我在这里做错了什么?

4

1 回答 1

4

如果 printWhenExpression 是用 Boolean.FALSE 硬编码的,那么它将永远不会出现在 PDF 和 CSV 中。尝试在 jrxml 中添加宽度和高度为 0 的元素,这将使其不会出现在 PDF 中,但它会出现在 CSV 中,因为您使用的是 JRCsvMetadataExporter

于 2012-07-18T04:42:01.360 回答