2010-09-01 81 views
0

我想在一些在線教程網站上學習JasperReports,但我似乎無法做出這個簡單的代碼片段工作。JasperReports:Field Date

我想從我的數據庫中選擇一個日期字段並將其傳遞到我的jrxml文件中。

<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" 
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
       xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" 
       name="ToolDemo" 
       columnCount="2" 
       columnWidth="240" pageWidth="612" pageHeight="792"> 
    <import value="java.util.Date"/> 

    <queryString> 
     <![CDATA[select a.id, a.date_acquired from tools a where a.country = 'Oceania']]> 
    </queryString> 

    <field name="id" class="java.lang.String"/> 
    <field name="date_acquired" class="java.util.Date"/> 

但我不能通過填充過程,我有一個錯誤:Unable to get value for field date_acquired of class "java.util.Date"。我也嘗試使用導入標籤。

有什麼想法嗎?

回答

1

我複製你的報告模板,用一個表創建示例MySql數據庫

+--------+-------------+------+-----+---------+-------+ 
| Field | Type  | Null | Key | Default | Extra | 
+--------+-------------+------+-----+---------+-------+ 
| id  | varchar(20) | YES |  | NULL |  | 
| a_date | date  | YES |  | NULL |  | 
+--------+-------------+------+-----+---------+-------+ 

然後我插入一行:

insert into tools(id, a_date) values('1', '2010-05-01'); 

測試查詢:

​​

後我使用了你的模板並在iReport工具下進行了測試。只需打開你使用iReport報告。

你很少修改報表模板:

<?xml version="1.0" encoding="UTF-8"?> 
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="report2" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20"> 
    <property name="ireport.zoom" value="1.0"/> 
    <property name="ireport.x" value="0"/> 
    <property name="ireport.y" value="0"/> 
    <import value="java.util.Date"/> 
    <queryString> 
     <![CDATA[SELECT a.id, a.a_date FROM tools a]]> 
    </queryString> 
    <field name="id" class="java.lang.String"/> 
    <field name="a_date" class="java.sql.Date"/> 
    <title> 
     <band height="79" splitType="Stretch"/> 
    </title> 
    <detail> 
     <band height="125" splitType="Stretch"> 
      <textField> 
       <reportElement x="100" y="24" width="100" height="20"/> 
       <textElement/> 
       <textFieldExpression class="java.lang.String"><![CDATA[$F{id}]]></textFieldExpression> 
      </textField> 
      <textField> 
       <reportElement x="200" y="24" width="100" height="20"/> 
       <textElement/> 
       <textFieldExpression class="java.util.Date"><![CDATA[$F{a_date}]]></textFieldExpression> 
      </textField> 
     </band> 
    </detail> 
</jasperReport> 

使用MySQL數據庫連接和報告模板我的iReport下測試報告生成,它工作正常。

您確定字段「date_acquired」是DATE類型(或數據庫中日期的其他格式)嗎?我建議您使用iReport報告模板生成。這是非常有用的,並防止你寫很多「無聊」的代碼。此外,它可以幫助您從sql查詢創建報告字段並使用真實數據庫對其進行測試。

+0

。我會研究這個iReport的事情,並嘗試一下。我其實還在理解JasperReports的細節。我已經讀過使用GUI工具(iReport)之前瞭解Jasperreport細節的好消息。感謝您及時的回覆。 – 2010-09-01 08:26:02

+0

你完全正確的使用GUI工具,但它可以幫助你看到錯誤。 iReport簡化了測試案例。 – Vadeg 2010-09-01 10:46:12

+0

謝謝..我想我已經得到了你的觀點...... – 2010-09-02 02:07:17