2011-11-23 4 views

Répondre

1

Vous pouvez utiliser cette expression:

<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> 

Le résultat sera:

file.exe

Et pour la url = "just_file_wout_url.txt" le résultat sera:

just_file_wout_url.txt

Pour votre cas, l'expression sera:

$F{fupgrade_package_name}.contains("/") ? $F{fupgrade_package_name}.split("/")[$F{fupgrade_package_name}.split("/").length-1] : $F{fupgrade_package_name} 
+0

mais, dans votre réponse, "url" doit être un champ, c'est un par ligne de données de la requête. Cela ne doit-il pas être un paramètre? – reza

+0

@reza Ce n'est pas grave - c'est juste un échantillon. Vous pouvez le changer dans le champ - '$ F {url}'. Mais l'expression est correcte –

+0

Pour votre cas, l'expression sera: '$ F {fupgrade_package_name} .contains ("/")? $ F {fupgrade_package_name} .split ("/") [$ F {fupgrade_package_name} .split ("/"). Longueur-1]: $ F {fupgrade_package_name} ' –

0

vous pouvez gérer la $F{fupgrade_package_name}.split(regex)[0] comme une chaîne, vous pouvez utiliser une expression régulière.

+0

Pouvez-vous préciser s'il vous plaît? – reza

Questions connexes