我想在报告中格式化日期参数。日期在我的数据库和我的报告“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 ...
我在我的一个查询中使用此参数!这可能是错误的原因吗?或者语法是假的?或者是否还有其他原因导致此错误?
答案 0 :(得分:4)
尝试使用这样的参数名称: -
new SimpleDateFormat("dd/MM/yyyy").format($F{Startdatum})
并查看报告"语言"在属性面板中,您应该将其更改为" java"。
要更改报告语言,请转到Windows - >报告检查员 - 然后单击报告名称,然后单击 - >窗口 - >属性。
在面板中,您可以选择语言。
答案 1 :(得分:0)
尝试使用该表达式
new SimpleDateFormat("dd/MM/yyyy").parse($P{Startdatum})