【问题标题】:Detect Export Jasper Report Form检测出口 Jasper 报告表
【发布时间】:2016-08-25 21:29:09
【问题描述】:

我在根据报告导出到的内容切换 jasper 报告中的打印变量时遇到问题。假设我在 jasper 报告中有 2 个字段:$F{A} 和 $F{B}。 jasper 如果使用 rtf(富文本格式)导出,则应打印 $F{A},如果使用非 rtf 导出,则应打印 $F{B}。

我必须在 jasper 文本字段中写什么?
有没有exportedAs("rtf")的功能?
<textFieldExpression><![CDATA[(exportedAs("rtf")? $F{A} : $F{A})]]></textFieldExpression>

------ 在此处添加新信息 ------

我尝试使用 .exclude.key
<property name="net.sf.jasperreports.export.rtf.exclude.key.NOTRTFFIELD"/>

让另一个打印的是pdf。
<property name="net.sf.jasperreports.export.rtf.exclude.key.NOTPDFFIELD"/>

我也将键放在报告元素中。

<code>
<reportElement key="NOTRTFFIELD">
<reportElement key="NOTPDFFIELD">
</code>


但是当 $F{A} 和 $F{B} 的行数不同时,它会为行数较少的字段留下空白空间。


$F{A} :
A1线
A2线
A3线

$F{B} :
B1线

假设报表导出为 PDF 时打印 $F{A},报表导出为 RTF 时打印 $F{B}。

如果我们打印为 PDF : other line... line A1 line A2 line A3 other line...

如果我们打印为 RTF : other line... line B1 ---blank line--- ---blank line--- other line...

我必须删除那些空行..

【问题讨论】:

  • 您可以使用:&lt;exporter_property_prefix&gt;.exclude.key
  • 或者只是使用一个参数,你是通过java导出还是使用jasper-server?
  • 我通过 java 导出。我希望我可以使用参数,但如果我这样做,我必须更新当前的框架。这是不允许的,如果我必须这样做,这需要时间。

标签: jasper-reports


【解决方案1】:

如果您可以使用不同的文本字段,net.sf.jasperreports.export.{format}.exclude.key.{suffix} 属性可能会有所帮助。

见碧玉报告config.reference

【讨论】:

  • 我试过了,但是如果文字的高度不同,那么较低的文字会留下空白。假设:$F{A} 包含 3 行。 $F{B} 包含 5 行。然后如果文本打印 $F{A},接下来的 2 行将变为空行,因为 $F{B} 还包含 2 行。我需要删除这些空行。
  • 还有一些属性,removeWhenBlank=true 和 positionType=float
  • 我已将 isRemoveLineWhenBlank="true" 作为 reportElement 属性,但它不会删除空行
  • @user3859858 你需要 positionType="float" 在其他元素上,也许最简单的方法是传递一个参数
  • 我使用了 positionType=true 但仍然出现空行。我无法传递参数,因为我必须更新框架。我公司的规定是不允许的。
猜你喜欢
  • 2022-06-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-02
  • 2013-02-02
  • 1970-01-01
  • 2013-01-04
相关资源
最近更新 更多