2011-07-26 3 views
1

J'ai un champ ($P{ORDER}.permit) qui est Integer (0,1) et je voudrais l'afficher comme String ("Non", "Oui"). Donc, j'ai ajouté ci-dessous clés pour ResourceBoundle:Imbrication des expressions de Jasper

order.permit.0=No 
order.permit.1=Yes 

j'ai écrit expression $R{order.permit.$P{ORDER}.permit} mais il ne fonctionne pas. Une exception est levée

net.sf.jasperreports.engine.JRException: Trop de classes groovy ont été générés . Assurez-vous que vous n'utilisez pas les fonctionnalités Groovy telles que les fermetures qui ne sont pas prises en charge par ce compilateur de rapports.

Je soupçonne que cette exception est causée par l'imbrication des expressions de jaspe ou les imbriquant dans le mauvais sens.

Comment écrire l'expression pour obtenir le résultat souhaité?

EDIT: str("order.permit." + $P{ORDER}.permit) est la réponse. Détails dans le message ci-dessous.

Répondre

2

Utilisez str() au lieu de $R{}.

Voir aussi http://jasperforge.org/plugins/espforum/view.php?group_id=102&forumid=103&topicid=54665:

$ R {} et str() sont en grande partie la même chose. La différence fonctionnelle est que $ R {} ne peut être utilisé qu'avec des clés fixes/statiques, alors que str() peut être utilisé avec des clés de messages dynamiques, par ex. str ("message.prefix." + $ P {message}).

+0

Merci, 'str (" order.permit. "+ $ P {ORDER} .permit)' est la réponse! – emstol