2016-08-25 73 views
0

我有一個問題,根據報告導出到jasper報告切換打印變量。假設我在碧玉報告中有兩個字段:$ F {A}和$ F {B}。 如果使用rtf(RTF格式)導出,jasper應打印$ F {A},如果使用rtf以外的其他格式導出,則打印$ F {B}。

我必須在jasper textField中寫什麼?
是否有作爲exportedAs(「rtf」)的函數?
<textFieldExpression><![CDATA[(exportedAs("rtf")? $F{A} : $F{A})]]></textFieldExpression>

------這裏添加新的信息------

我曾嘗試使用<exporter_property_prefix> .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

假定$ F {以PDF格式導出報表時打印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...

我不得不刪除這些空行..

+0

的可能的複製[JasperReports的:隱藏文本框時沒有HTML視圖(http://stackoverflow.com/questions/8044930/jasperreports-hide-textfield-when-not-html-查看) –

+0

你可以使用:' .exclude.key' –

+0

或者只是使用一個參數,你是通過java導出還是使用jasper-server? –

回答

2

如果你可以用不同的文本字段,net.sf.jasperreports.export.{format}.exclude.key.{suffix}性質可能有幫助。

見碧玉報告config.reference

+0

我已經嘗試過了,但是如果文本的高度不同,那麼較小的文本會留下空白區域。假設:$ F {A}包含3行。 $ F {B}包含5行。然後如果文本打印$ F {A},接下來的兩行變成空行,因爲$ F {B}包含另外2行。我需要刪除這個空行。 –

+0

也有這個屬性,removeWhenBlank = true和positionType = float –

+0

我已經把isRemoveLineWhenBlank =「true」作爲reportElement屬性,但它不會刪除空白行 –