我有一個碧玉報告與現場$ F {} fupgrade_package_nameJasper報表和報表參數
所以當我跑我的查詢upgrade_package_name設置爲http://www.something.com/file.exe
我想在唯一的顯示的file.exe報告而不是完整的URL。
這是如何完成的?
感謝
我有一個碧玉報告與現場$ F {} fupgrade_package_nameJasper報表和報表參數
所以當我跑我的查詢upgrade_package_name設置爲http://www.something.com/file.exe
我想在唯一的顯示的file.exe報告而不是完整的URL。
這是如何完成的?
感謝
您可以使用此表達式:
<parameter name="url" class="java.lang.String" isForPrompting="false">
<defaultValueExpression><![CDATA["http://www.something.com/file.exe"]]></defaultValueExpression>
</parameter>
<textField>
<reportElement x="122" y="28" width="100" height="20"/>
<textElement/>
<textFieldExpression>
<![CDATA[$P{url}.contains("/") ? $P{url}.split("/")[$P{url}.split("/").length-1] : $P{url}]]></textFieldExpression>
</textField>
結果將是:
的file.exe
而對於url = "just_file_wout_url.txt"
結果將是:
just_file_wout_url.txt
對於您的情況下,表現將是:
$F{fupgrade_package_name}.contains("/") ? $F{fupgrade_package_name}.split("/")[$F{fupgrade_package_name}.split("/").length-1] : $F{fupgrade_package_name}
但在您的答案中,「url」必須是一個字段,它是來自查詢的每行數據。它不一定是一個參數嗎? – reza
@reza它沒關係 - 它只是一個樣本。您可以將其更改爲字段 - 「$ F {url}」。但表達式是正確的 –
對於你的情況,表達式將是:'$ F {fupgrade_package_name} .contains(「/」)? $ F {fupgrade_package_name} .split(「/」)[$ F {fupgrade_package_name} .split(「/」)。length-1]:$ F {fupgrade_package_name}' –