2012-02-29 42 views
3

JasperReportのiReport 4.5.0デザイナーを使用してレポートを作成しています。タイムスタンプフィールドstartDateendDateに1つの問題があります。私のデザイナーでは、パターンを使用してstartDateendDateの書式を変更しました。JasperReports生成用にJavaを使用してmysql datetime形式を変更する

しかし、レポートを.excelまたは.pdfとしてエクスポートすると、タイムスタンプ形式の日付が返されます。は、YYYY-MM-ddという形式で行っています。

私のレポート2012-03-01 00としてstarDateで生成:00:00.0が、私は私のExcelレポートがYYYY-MM-ddよう2012-03-01でstarDateを持っていることにしたいです。

あなたが持っていたすべての解決策データベースの種類をdatetimeからdateに変更したくありません。

マイprojectmain.jrxmlファイルのコードは以下のように説明することが:

<?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="projectmain" 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"/> 
    <parameter name="pagelimit" class="java.lang.Integer"> 
     <defaultValueExpression><![CDATA[]]></defaultValueExpression> 
    </parameter> 
    <parameter name="pagestart" class="java.lang.Integer"> 
     <defaultValueExpression><![CDATA[]]></defaultValueExpression> 
    </parameter> 
    <queryString> 
     <![CDATA[select * from project limit $P{pagestart},$P{pagelimit}]]> 
    </queryString> 
    <field name="projectid" class="java.lang.Integer"/> 
    <field name="enddate" class="java.sql.Timestamp"/> 
    <field name="projectdesc" class="java.lang.String"/> 
    <field name="projectname" class="java.lang.String"/> 
    <field name="projecttitle" class="java.lang.String"/> 
    <field name="startdate" class="java.sql.Timestamp"/> 
    <background> 
     <band/> 
    </background> 
    <title> 
     <band height="56"> 
      <staticText> 
       <reportElement x="0" y="0" width="410" height="56"/> 
       <textElement textAlignment="Center" verticalAlignment="Middle"> 
        <font fontName="Century" size="24"/> 
       </textElement> 
       <text><![CDATA[Project Management Report Generation]]></text> 
      </staticText> 
     </band> 
    </title> 
    <pageHeader> 
     <band height="28"> 
      <staticText> 
       <reportElement mode="Opaque" x="0" y="0" width="555" height="28" forecolor="#FFFFFF" backcolor="#666666"/> 
       <textElement textAlignment="Center" verticalAlignment="Middle"> 
        <font fontName="Century" size="16" isBold="true"/> 
       </textElement> 
       <text><![CDATA[Project Management Report Generation]]></text> 
      </staticText> 
     </band> 
    </pageHeader> 
    <columnHeader> 
     <band height="29"> 
      <staticText> 
       <reportElement mode="Opaque" x="0" y="0" width="144" height="29" backcolor="#CCCCCC"/> 
       <box> 
        <leftPen lineWidth="0.25"/> 
        <bottomPen lineWidth="0.25"/> 
        <rightPen lineWidth="0.25"/> 
       </box> 
       <textElement verticalAlignment="Middle"> 
        <font fontName="Century" size="16"/> 
       </textElement> 
       <text><![CDATA[Project Title]]></text> 
      </staticText> 
      <staticText> 
       <reportElement mode="Opaque" x="144" y="0" width="158" height="29" backcolor="#CCCCCC"/> 
       <box> 
        <leftPen lineWidth="0.25"/> 
        <bottomPen lineWidth="0.25"/> 
        <rightPen lineWidth="0.25"/> 
       </box> 
       <textElement verticalAlignment="Middle"> 
        <font fontName="Century" size="16"/> 
       </textElement> 
       <text><![CDATA[Project Name]]></text> 
      </staticText> 
      <staticText> 
       <reportElement mode="Opaque" x="302" y="0" width="151" height="29" backcolor="#CCCCCC"/> 
       <box> 
        <leftPen lineWidth="0.25"/> 
        <bottomPen lineWidth="0.25"/> 
        <rightPen lineWidth="0.25"/> 
       </box> 
       <textElement verticalAlignment="Middle"> 
        <font fontName="Century" size="16" isUnderline="false"/> 
       </textElement> 
       <text><![CDATA[Start Date]]></text> 
      </staticText> 
      <staticText> 
       <reportElement mode="Opaque" x="453" y="0" width="102" height="29" backcolor="#CCCCCC"/> 
       <box> 
        <leftPen lineWidth="0.25"/> 
        <bottomPen lineWidth="0.25"/> 
        <rightPen lineWidth="0.25"/> 
       </box> 
       <textElement verticalAlignment="Middle"> 
        <font fontName="Century" size="16"/> 
       </textElement> 
       <text><![CDATA[End Date]]></text> 
      </staticText> 
     </band> 
    </columnHeader> 
    <detail> 
     <band height="29"> 
      <textField> 
       <reportElement x="0" y="0" width="144" height="29"/> 
       <box> 
        <leftPen lineWidth="0.25"/> 
        <bottomPen lineWidth="0.25"/> 
        <rightPen lineWidth="0.25"/> 
       </box> 
       <textElement verticalAlignment="Bottom"> 
        <font fontName="Century" size="12" isBold="false"/> 
       </textElement> 
       <textFieldExpression><![CDATA[$F{projecttitle}]]></textFieldExpression> 
      </textField> 
      <textField pattern="d/M/yyyy"> 
       <reportElement x="453" y="0" width="102" height="29"/> 
       <box> 
        <leftPen lineWidth="0.25"/> 
        <bottomPen lineWidth="0.25"/> 
        <rightPen lineWidth="0.25"/> 
       </box> 
       <textElement verticalAlignment="Bottom"> 
        <font fontName="Century" size="12" isBold="false"/> 
       </textElement> 
       <textFieldExpression><![CDATA[$F{enddate}]]></textFieldExpression> 
      </textField> 
      <textField> 
       <reportElement x="144" y="0" width="158" height="29"/> 
       <box> 
        <leftPen lineWidth="0.25"/> 
        <bottomPen lineWidth="0.25"/> 
        <rightPen lineWidth="0.25"/> 
       </box> 
       <textElement verticalAlignment="Bottom"> 
        <font fontName="Century" size="12" isBold="false"/> 
       </textElement> 
       <textFieldExpression><![CDATA[$F{projectname}]]></textFieldExpression> 
      </textField> 
      <textField pattern="d/M/yyyy"> 
       <reportElement x="302" y="0" width="151" height="29"/> 
       <box> 
        <leftPen lineWidth="0.25"/> 
        <bottomPen lineWidth="0.25"/> 
        <rightPen lineWidth="0.25"/> 
       </box> 
       <textElement verticalAlignment="Bottom"> 
        <font fontName="Century" size="12" isBold="false"/> 
       </textElement> 
       <textFieldExpression><![CDATA[$F{startdate}]]></textFieldExpression> 
      </textField> 
     </band> 
    </detail> 
    <columnFooter> 
     <band height="60"> 
      <textField pattern="MMMMM dd, yyyy"> 
       <reportElement mode="Opaque" x="0" y="20" width="555" height="20" forecolor="#000000" backcolor="#CCCCCC"/> 
       <textElement verticalAlignment="Middle"> 
        <font fontName="Calibri" size="14" isBold="false"/> 
       </textElement> 
       <textFieldExpression><![CDATA[new java.util.Date()]]></textFieldExpression> 
      </textField> 
     </band> 
    </columnFooter> 
    <pageFooter> 
     <band height="31"> 
      <staticText> 
       <reportElement x="0" y="1" width="541" height="30"/> 
       <textElement textAlignment="Center" verticalAlignment="Middle"> 
        <font fontName="Century" size="10" isBold="false"/> 
       </textElement> 
       <text><![CDATA[Copyright © Project Management 2012 | Design by Kintudesigns.com]]></text> 
      </staticText> 
     </band> 
    </pageFooter> 
    <summary> 
     <band height="42"/> 
    </summary> 
</jasperReport> 
+0

'startDate'と' endDate'は本当に変数か、それともフィールドですか? 'startDate'、' endDate'宣言、そしてこの変数を使ったサンプルで、 'jrxml'ファイルからスニペットを投稿できますか? –

+0

@AlexKお返事ありがとうございます。質問を更新し、projectmain.jrxmlファイルを追加しました。私にそれを働かせようとすることができる解決策を教えてください。 –

答えて

5

あなたはExcel形式にケースのエクスポートに正しい書式についてnet.sf.jasperreports.export.xls.detect.cell.typeプロパティを設定しようとすることができます。

この問題は非常に奇妙です。あなたはjava.text.DateFormat型の変数を追加し、このサンプルのようにそれを使用することができます。

<?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="datetime_format" 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"/> 
    <property name="net.sf.jasperreports.export.xls.detect.cell.type" value="true"/> 
    <queryString> 
     <![CDATA[SELECT date1, date2 FROM table]]> 
    </queryString> 
    <field name="date1" class="java.sql.Timestamp"/> 
    <field name="date2" class="java.sql.Timestamp"/> 
    <variable name="dateFormat" class="java.text.DateFormat" resetType="None"> 
     <variableExpression><![CDATA[new SimpleDateFormat("yyyy-MM-dd")]]></variableExpression> 
    </variable> 
    <detail> 
     <band height="20" splitType="Stretch"> 
      <textField> 
       <reportElement x="11" y="0" width="194" height="20"/> 
       <textElement/> 
       <textFieldExpression><![CDATA[$V{dateFormat}.format($F{date1})]]></textFieldExpression> 
      </textField> 
      <textField pattern="yyyy-MM-dd"> 
       <reportElement x="205" y="0" width="272" height="20"/> 
       <textElement/> 
       <textFieldExpression><![CDATA[$F{date2}]]></textFieldExpression> 
      </textField> 
     </band> 
    </detail> 
</jasperReport> 

それは私のための作品です。私は、PDFとXLSの両方のtextFields(DateFormatを使用して、それを使わずに)の正しいデータを持っています。

+0

これは完璧に動作します。 –

+0

@ YogendraSinghようこそ) –

関連する問題