2016-06-09 9 views
1

Ich versuche, den Wert für die Spalte Max, die den maximalen Wert der Spalten A, B, ist. Die Reihen T und G sind Total und Grand total (wegen der Zeilengruppen), habe ich nur für sie den Maximalwert benötigen:Erhalten Sie den Max() Wert der berechneten Spalten (Summen) in einem Bericht

----------------------------- 
     A B C | Max 
----------------------------- 
     | 1 1 2 |  
----------------------------- 
     | 2 1 3 |  
------+---------------+------ 
    T | 3 2 5 | 5 
------+---------------+------ 
     | 2 5 1 |  
----------------------------- 
     | 1 2 1 |  
------+---------------+------ 
    T | 3 7 2 | 7 
------+---------------+------ 
    G | 6 9 7 | 9 
----------------------------- 

Jedes Mal, wenn ich etwas mit der Max() Funktion versuchen, erhalte ich einen Fehler wie The expression of [...] uses an aggregate function on a report item. Aggregate functions can be used only on report items contained in the headers and footers..

In MS Excel würde ich einfach MAX(A1:C1) in Spalte Max tun. Gibt es eine Lösung, um dies in rdlc zu erreichen?

Ich habe den obigen Fehler gefunden und gefunden this answer, aber erste Option ist nicht möglich und zweite Option .. Nun, ich habe es nicht wirklich verstanden, und ich glaube nicht, dass es für Max gilt. Wenn ja, könnten Sie mir erklären, wo ich den Workaround platzieren soll?

Ich arbeite mit Visual Studio 2015 und Microsoft.ReportViewer.WebForms v10.0.0.0.

Antwort

1

es diesen Code in das Feld "Max" der Reihen "T" und "G" zu setzen braucht .. es sollte funktionieren .. Ich habe nicht tryed;)

If Sum(Fields!A.Value) >= Sum(Fields!B.Value) And Sum(Fields!A.Value) >= Sum(Fields!C.Value) Then 
    Sum(Fields!A.Value) 
Else if Sum(Fields!B.Value) >= Sum(Fields!A.Value) And Sum(Fields!B.Value) >= Sum(Fields!C.Value) Then 
    Sum(Fields!B.Value) 
Else 
    Sum(Fields!C.Value) 
End If 


Update nach dem Kommentar von KevinM

IIf ( 
     Sum(Fields!A.Value) >= Sum(Fields!B.Value) And Sum(Fields!A.Value) >= Sum(Fields!C.Value) 
     , Sum(Fields!A.Value) 
     , ( 
     IIf (Sum(Fields!B.Value) >= Sum(Fields!A.Value) And Sum(Fields!B.Value) >= Sum(Fields!C.Value) 
     , Sum(Fields!B.Value) 
     , Sum(Fields!C.Value) 
    ) 
    ) 
+0

Danke, aber ich kann nicht 'If' Aussage in der Feldausdruck, nur' IIf', die das gleiche funktionieren sollte, aber ich habe in Wirklichkeit sechs Spalten (drei hier, um das Beispiel einfach zu halten) und der Feldausdruck ist wirklich groß und unnachhaltig ... – KevinM

+0

es ist wahr .. ich erinnere mich nicht :) .. –

+0

Das funktionierte mit kleinen Änderungen: 1) Ich entfernte die 'Summe (...)', weil die Felder bereits berechnet wurden, und 2) anstelle von 'Fields! A.Value' wird diese Feldreferenz mit' ReportItems! A.Value' erstellt. Vielen Dank. – KevinM