0

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());

ドキュメントにページがないというエラーが表示されます。

以前は具体的なことをせずにレポートを生成しただけだったので、これを行うのは初めてです。

誰でも助けることができますか?

4

1 に答える 1

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'"
于 2013-07-23T17:08:16.853 に答える