2017-02-18 11 views
0

こんにちは私は"01-Nov-16"として"01-11-2016"nullが返されます。私は知っているすべてを試しました。以下は私の正確なXMLです。フォーマットされた日付の代わりにnullとして表示される変数の値

<variable name="S_DATE" class="java.util.Date"> 
    <variableExpression><![CDATA[new java.text.SimpleDateFormat("dd-MMM-yy",java.util.Locale.US).parse($P{startdate})]]></variableExpression> 
</variable> 

<textField isStretchWithOverflow="true" pattern="dd-MM-yyyy" isBlankWhenNull="false"> 
    <reportElement stretchType="RelativeToTallestObject" x="205" y="0" width="102" height="20" isRemoveLineWhenBlank="true" isPrintWhenDetailOverflows="true" forecolor="#000000" uuid="560349d8-0bb8-44f0-90ce-41ffb71544cc"/> 
    <textElement textAlignment="Left"> 
     <font size="10"/> 
    </textElement> 
    <textFieldExpression><![CDATA[$V{S_DATE}]]></textFieldExpression> 
</textField> 

startdateパラメータの種類がString

+0

@Winnie '$ P {startdate} 'のタイプは?あなたはどのような価値を確認しましたか? –

+0

@AlexKその文字列。 "01-Nov-16" – Winnie

答えて

0

最初のアプローチは

では、代わりに変数のパラメータを使用してみてください。この場合、変数の「力」と特徴を使う必要はありません。

サンプル

<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="Format date" pageWidth="595" pageHeight="842" whenNoDataType="AllSectionsNoDetail" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20"> 
    <property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/> 
    <parameter name="dateAsString" class="java.lang.String"> 
     <defaultValueExpression><![CDATA["01-Nov-2016"]]></defaultValueExpression> 
    </parameter> 
    <parameter name="dateParam" class="java.util.Date"> 
     <defaultValueExpression><![CDATA[new SimpleDateFormat("dd-MMM-yy", Locale.US).parse($P{dateAsString})]]></defaultValueExpression> 
    </parameter> 
    <title> 
     <band height="79" splitType="Stretch"> 
      <textField pattern="dd-MM-yyyy"> 
       <reportElement x="130" y="20" width="250" height="30"/> 
       <textFieldExpression><![CDATA[$P{dateParam}]]></textFieldExpression> 
      </textField> 
     </band> 
    </title> 
</jasperReport> 

出力結果

Jaspersoftメーカーにおける結果は次のようになります。

enter image description here

第二のアプローチ

の変更01変数の。有効なタイプは、なしです。正しい表現は次のようになります:

<variable name="S_DATE" class="java.util.Date" resetType="None"> 
    <variableExpression><![CDATA[new SimpleDateFormat("dd-MMM-yy", Locale.US).parse($P{startdate})]]></variableExpression> 
</variable> 
関連する問題