在iReport中格式化日期参数

时间:2014-04-17 13:26:37

标签: jasper-reports ireport

我想在报告中格式化日期参数。日期在我的数据库和我的报告“yyyy-mm-dd”(例如2014-04-17)中看起来像这样。我尝试使用我在其他帖子中总是看到的那行Code:

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

这当然不起作用,我收到了这个错误:

  

错误填充打印...错误评估表达式:   原文:新的SimpleDateFormat( “DD / MM / YYYY”)格式($ P {} Startdatum)   net.sf.jasperreports.engine.fill.JRExpressionEvalException:错误评估表达式:   原文:新的SimpleDateFormat( “DD / MM / YYYY”)格式($ P {} Startdatum)   在net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:203)   在net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:591)   在net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:559)   在net.sf.jasperreports.engine.fill.JRFillElement.evaluateExpression(JRFillElement.java:966)   在net.sf.jasperreports.engine.fill.JRFillTextField.evaluateText(JRFillTextField.java:456)   在net.sf.jasperreports.engine.fill.JRFillTextField.evaluate(JRFillTextField.java:440)   在net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:259)   在net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:455)   在net.sf.jasperreports.engine.fill.JRVerticalFiller.fillBandNoOverflow(JRVerticalFiller.java:457)   在net.sf.jasperreports.engine.fill.JRVerticalFiller.fillPageHeader(JRVerticalFiller.java:421)   在net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:282)   在net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:151)   在net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:909)   在net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:822)   在net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:61)   在net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:446)   在net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:276)   在net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:745)   在com.jaspersoft.ireport.designer.compiler.IReportCompiler.run(IReportCompiler.java:891)   在org.openide.util.RequestProcessor $ Task.run(RequestProcessor.java:572)   在org.openide.util.RequestProcessor $ Processor.run(RequestProcessor.java:997)   java.lang.IllegalArgumentException异常:由造成无法格式化给定对象的日期   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)   在net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:190)   ... 20更多打印未填写。尝试使用EmptyDataSource ...

我在我的一个查询中使用此参数!这可能是错误的原因吗?或者语法是假的?或者是否还有其他原因导致此错误?

2 个答案:

答案 0 :(得分:4)

尝试使用这样的参数名称: -

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

并查看报告"语言"在属性面板中,您应该将其更改为" java"。

要更改报告语言,请转到Windows - >报告检查员 - 然后单击报告名称,然后单击 - >窗口 - >属性。

在面板中,您可以选择语言。

答案 1 :(得分:0)

尝试使用该表达式

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