生成具有特定日期的报告

时间:2013-07-21 15:14:03

标签: java jasper-reports

我使用 iReport 4.7.0

生成报告

我想通过在2天之间搜索来生成报告,例如:从何时到何时。

这是我的代码:

java.util.Date utilStartDate = date1.getDate();
java.sql.Date start = new java.sql.Date(utilStartDate.getTime());

java.util.Date utilStartDate2 = date2.getDate();
java.sql.Date end = new java.sql.Date(utilStartDate2.getTime());

try {
    JasperDesign jd = JRXmlLoader.load("C:\\Users\\admin\\Desktop\\Sales Report.jrxml");
    String sql = "Select * from Order1 Where Order_Date between "+start+" and "+end+"";

    JRDesignQuery newQuery = new JRDesignQuery();
    newQuery.setText(sql);
    jd.setQuery(newQuery);
    JasperReport jr = JasperCompileManager.compileReport(jd);
    JasperPrint jp = JasperFillManager.fillReport(jr,null,conn);
    JasperViewer.viewReport(jp,false);
} catch(Exception e) {
    JOptionPane.showMessageDialog(null,e.getMessage());

我有错误说文档没有页面。

这是我第一次这样做,因为之前我只是在没有特定内容的情况下生成报告。

任何可以帮助?

1 个答案:

答案 0 :(得分:0)

我认为你需要在约会日期附近撇号。否则,dbms可能认为它是算术运算而不是日期。

换句话说,你可能有这个:

"Select * from Order1 Where Order_Date between 2005-06-25 and 2008-04-13"

因而2005 - 06 - 25 = 1974年和2008年 - 04 - 13 = 1991年的结果:

"Select * from Order1 Where Order_Date between 1974 and 1991"

相反,你想要的是这个:

"Select * from Order1 Where Order_Date between '2005-06-25' and '2008-04-13'"