我使用 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());
我有错误说文档没有页面。
这是我第一次这样做,因为之前我只是在没有特定内容的情况下生成报告。
任何可以帮助?
答案 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'"