我已经创建了一个出勤报告,该报告根据开始日期和结束日期运行。在ireports designer中运行良好。 在ireport中,我创建了如下所示的参数。
$P{StartDate} -->**parameter class** java.util.date
$P{EndDate} -->**parameter class** java.util.date
$P{Class_startdate}-->**parameter class** java.lang.string
-->**value expression**(($P{StartDate} == null || $P{StartDate}.equals("")) ? "" : "AND cdate.curr_classdate >= TO_DATE('" + new java.sql.Date($P{StartDate}.getTime()).toString() + "', 'yyyy-MM-dd')")
$P{Class_enddate} -->**parameter class** java.lang.string
-->**value expression**(($P{EndDate} == null || $P{EndDate}.equals("")) ? "" : "AND cdate.curr_classdate >= TO_DATE('" + new java.sql.Date($P{EndDate}.getTime()).toString() + "', 'yyyy-MM-dd')")
当同一报告通过java文件运行时,引发如下所示的异常。
Exceptiionnet.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression :
Source text : ($P{StartDate} == null || $P{StartDate}.equals("")) ? "" : "AND cdate.curr_classdate >= TO_DATE('" + new java.sql.Date($P{StartDate}.getTime()).toString() + "', 'yyyy-MM-dd')"file2application/pdf
我的servlet代码,
try {
System.out.println("Start ....");
String jrxmlFileName = "D:/ForReports/AttendanceReport.jrxml";
String jasperFileName = "D:/ForReports/AttendanceReport.jasper";
JasperCompileManager.compileReportToFile(jrxmlFileName, jasperFileName);
Class.forName("org.postgresql.Driver");
String dbUrl = "jdbc:postgresql://localhost:5432/openbravo";
String dbUname = "postgres";
String dbPwd = "password";
Class.forName("org.postgresql.Driver");
Connection conn = DriverManager.getConnection(dbUrl, dbUname, dbPwd);
Map<String, Object> map = new HashMap<String, Object>();
map.put("Course_ID", request.getParameter("param1"));
map.put("StartDate", request.getParameter("param2"));
map.put("EndDate", request.getParameter("param3"));
JasperReport jr = JasperCompileManager.compileReport(jrxmlFileName);
JasperPrint jp = JasperFillManager.fillReport(jr, map, conn);
JasperExportManager.exportReportToPdfFile(jp,
"D:/ForReports/Downloads/" + request.getParameter("param1") + ".pdf");
System.out.println("Done exporting pdf format to view");
// JasperViewer.viewReport(jp,false);
conn.close();
} catch (Exception e) {
System.out.print("Exceptiion" + e);
}
请提出关于如何格式化日期和传递日期的答案。 谢谢你。