我有一个碧玉报告与现场$ 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}' –