2017-06-28 8 views
0

Ich versuche, einen Tag zu einem bestimmten Parameter Datum hinzuzufügen.Wie wird ein Tag zum angegebenen Parameterdatum hinzugefügt? Got `java.util.Date kann nicht in java.sql.Date` umgewandelt werden error

In Jaspersoft Studio Ich habe folgende Parameter

$P{datestart} 
Class: java.sql.Date 
Default value expression: new Date() 

$V{datev} 
Class: java.sql.Date 
Expression: new java.sql.Date($P{datestart}.getTime() + 24*60*60*1000) 

Dann habe ich $V{datev} im Bericht verwenden.

Ausgangsfehler:

Error evaluating expression for source text: 
new java.sql.Date($P{datestart}.getTime() + 24*60*60*1000) 
java.util.Date cannot be cast to java.sql.Date 

ich verschiedene Ausdrücke versucht, aber ohne Glück

Change $v{datev} to new java.util.Date($P{datestart}.getTime() + 24*60*60*1000). 
Change $P{datestart} to: new SimpleDateFormat("dd-MM-yyyy").format(new Date()) 

Sieht jemand, was ich falsch mache?

+0

Beitrag der '.jrxml' Inhalt, soweit zulässig:

java.sql.Date sqlDate = new java.util.Date(); // not even compile. Got incompatible types: java.util.Date cannot be converted to java.sql.Date 

Diese Erklärung wird für $P{datestart} von java.sql.Date gültig . –

Antwort

1

Sieht aus wie die Definition von $P{datestart} Parameter falsch ist.

Der Ausdruck new java.sql.Date($P{datestart}.getTime() + 24*60*60*1000) ist gültig, wenn der datestart Parameter java.util.Date oder java.sql.Date Typ hat. Wie Sie wahrscheinlich wissen, die java.sql.Date-Klasse ist eine Unterklasse von java.util.Date

Diese Java Code funktioniert gut:

java.util.Date date = new java.util.Date(); 
new java.sql.Date(date.getTime() + 24*60*60*1000); 

java.sql.Date sqlDate = new java.sql.Date(date.getTime()); 
new java.sql.Date(sqlDate.getTime() + 24*60*60*1000); 

versuchen, die Art von datestart oder sogar von beiden (Parameter zu ändern und Variable).

Zumindest müssen Sie die Initialisierung von Datumsstart Parameter zu beheben.

Es gibt keinen java.sql.Date() (ohne Parameter) Konstruktor. Sieht aus wie Sie Ausdruck verwenden, die analog Java Code wie folgt hat:

<parameter name="datestart" class="java.sql.Date"> 
    <defaultValueExpression><![CDATA[new java.sql.Date(new java.util.Date().getTime())]]></defaultValueExpression> 
</parameter>  
Verwandte Themen