2016-05-23 4 views
1

Ich habe einen Hauptbericht, der 2 verschiedene Unterberichte enthält.Wie man 2 Variablen summiert und in einer Variablen speichert

Ich habe eine variable Summe aus einem subreport1 zum Beispiel 10 (Typ Integer)

Ich habe eine weitere variable Summe aus einem anderen subreport2 für Beispiel 2 (Typ Integer)

Ich habe erfolgreich die 2 Variablen retreived von jedem der subreports jetzt eine Variable in meinem mainreport erstellen, die die 2 Variablen fasst

so jetzt in meinem mainreport ich möchte habe ich 3 Variablen

die erste Variable ist VAR1 genannt und es kam von subreport 1

Name      VAR1 
Variable Class    java.lang.Integer 
Reset type     Report 
initial Value Expression 0 

die zweite Variable VAR2 genannt wird und es kam subreport 2

Name      VAR2 
Variable Class    java.lang.Integer 
Reset type     Report 
initial Value Expression 0 

die letzte Variable SUM bezeichnet wird

Name      SUM 
Variable Class    java.lang.Integer 
Reset type     Report 
variable expression  new Integer($V{VAR1}.intValue() + $V{VAR2}.intValue()) 
initial Value Expression 0 

Die SUM-Variable ist NULL, wenn ich die PDF-Vorschau, VAR1 und VAR2 sind Integer-Werte, aber die SUM-Variable ist immer Null

könnte es sein, dass die SUM vor VAR1 und VAR2 ausgewertet wurde?

Was ist mein Problem?

+0

Dies hängt davon ab, in welchem ​​Band Ihre SUM-Variable verwendet wird. Haben Sie die Werte von VAR1 und VAR2 zu Testzwecken im Bericht angezeigt? – tobi6

+0

Ich habe 3 Detailbänder in meinem Hauptreport, das 1. Detailband enthält meinen 1. Unterbericht, das 2. Detailband enthält den 2. Unterbericht, das 3. Detailband enthält die 3 Variablen VAR1, VAR2 und SUM, und ja meine VAR1 und VAR2 werden angezeigt zu Testzwecken. Am Ende möchte ich nur die SUMME im dritten Detailband, aber es ist null und ich weiß nicht warum. – securenai

+0

Haben Sie versucht, die 'Auswertungszeit' der SUM-Variablen zu ändern, vielleicht auf "Jetzt"? Hast du auch versucht eine andere Band wie 'Summary' oder' Group Footer' zu verwenden? – tobi6

Antwort

2

Ihr Verdacht ist richtig, die Verwendung von Variablen mit Werten, die von Unterberichten zurückgegeben werden, um andere Variablen zu berechnen, funktioniert nicht, da "normale" Variablenwerte berechnet werden, bevor die Unterberichte rendern und Werte zurückgeben.

Wenn Sie nur die zurückgegebenen Werte summieren müssen, können Sie den Wert aus den beiden Unterberichten in dieselbe Variable zurückgeben, indem Sie für den Rückgabewert calculation = "Sum" verwenden. Das ist val1 vom ersten Unterbericht an VAR1 und das gleiche val1 an SUM mit calculation = "Sum" und Rückgabewert val2 vom zweiten Unterbericht an VAR1 und an SUM mit calculation = "Sum".

Beachten Sie, dass calculation = "Sum" für den Rückgabewert und nicht die Variable ist; Variablen, die für Rückgabewerte verwendet werden, müssten in der Regel Berechnung = "System" haben.

+0

danke für Ihre Bestätigung – securenai

+0

Danke dafür, es hat mir geholfen Menge! – Siick