2014-04-17 1 views
1

Je souhaite formater un paramètre de date dans mon rapport. La date ressemble à ceci dans ma base de données et mon rapport "aaaa-mm-jj" (2014-04-17 par exemple). J'ai essayé de le faire avec cette ligne de code que je voyais toujours sur d'autres postes:Paramètre de date de formatage dans iReport

new SimpleDateFormat("dd/MM/yyyy").format($P{Startdatum}) 

qui ne fonctionne pas bien sûr et je reçois cette erreur:

Error filling print... Error evaluating expression :      Source text : new SimpleDateFormat("dd/MM/yyyy").format($P{Startdatum}) net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression :      Source text : new SimpleDateFormat("dd/MM/yyyy").format($P{Startdatum})     at net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:203)     at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:591)     at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:559)     at net.sf.jasperreports.engine.fill.JRFillElement.evaluateExpression(JRFillElement.java:966)     at net.sf.jasperreports.engine.fill.JRFillTextField.evaluateText(JRFillTextField.java:456)     at net.sf.jasperreports.engine.fill.JRFillTextField.evaluate(JRFillTextField.java:440)     at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:259)     at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:455)     at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillBandNoOverflow(JRVerticalFiller.java:457)     at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillPageHeader(JRVerticalFiller.java:421)     at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:282)     at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:151)     at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:909)     at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:822)     at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:61)     at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:446)     at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:276)     at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:745)     at com.jaspersoft.ireport.designer.compiler.IReportCompiler.run(IReportCompiler.java:891)     at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572)     at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997) Caused by: java.lang.IllegalArgumentException: Cannot format given Object as a Date     at java.text.DateFormat.format(DateFormat.java:301)     at java.text.Format.format(Format.java:157)     at Berichtsheft_1397742638211_397211.evaluate(Berichtsheft_1397742638211_397211:223)     at net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:190)     ... 20 more Print not filled. Try to use an EmptyDataSource...

J'utilise ce paramètre pour l'une de mes requêtes! Cela pourrait-il être la raison de l'erreur? Ou est-ce que la syntaxe est simplement fausse? Ou y a-t-il d'autres raisons pour cette erreur?

+0

pourquoi K @ Alex ReTAG l'étiquette iReport? –

+0

Cette question ne concerne pas l'utilisation du concepteur * iReport *. Il est lié à * JasperReports * moteur –

+0

Uhm, Ok je pensais que l'utilisation de l'iReport pour éditer mes expressions est assez une raison de l'utiliser comme un tag .. Apparemment pas –

Répondre

4

Essayez d'utiliser uniquement le nom paramètre comme celui-ci: -

new SimpleDateFormat("dd/MM/yyyy").format($F{Startdatum}) 

et vérifier le rapport « Langue » dans le panneau de propriété, vous devez changer pour « java ». Pour modifier la langue du rapport, allez dans Windows -> Report Inspector- et cliquez sur le nom du rapport, puis sur -> Windows -> Properties.

Ici, en bas du panneau, vous pouvez sélectionner la langue.

+0

J'ai mis à jour la réponse. – Sharad

+0

Pouvez-vous également publier le code JRXML? Êtes-vous en mesure d'obtenir la valeur du paramètre dans le rapport sans utiliser de code seulement le paramètre uniquement? – Sharad

+0

Quel était le problème? – Sharad

0

Essayez d'utiliser cette expression à la place

new SimpleDateFormat("dd/MM/yyyy").parse($P{Startdatum}) 
Questions connexes