[RTC] Summe aus einem Durchschnitt bilden

19. Oktober 2012 20:26

Hallo,

nachdem mir leider beim letzten mal nicht geholfen werden konnte, hoffe ich, dass ich heute Hilfe bekomme.

Ich muss aus einem Durchschnitt die Summe bilden.

Ich habe in meinem RTC Layout in einem Feld den Durchschnitt eines Artikelpostens berechnet. Diesen möchte ich gern am Ende der Tabelle, d.h. eine Zeile darunter summieren für die gesamten Artikelposten.

Ich habe schon
Code:
=Sum(Avg(Fields!Item_Ledger_Entry__Cost_Amount__Actual__.Value))
versucht. Leider ohne Erfolg.

Vielleicht gibt es aber noch einen anderen Trick

Vielen Dank für eure Hilfe.

Re: [RTC] Summe aus einem Durchschnitt bilden

19. Oktober 2012 21:00

Uff, kannst du uns bitte ein einfaches Rechenbeispiel zeigen? Und vielleicht einen Ausschnitt aus VS? Nur um Missverständnissen vorzubeugen!

Re: [RTC] Summe aus einem Durchschnitt bilden

19. Oktober 2012 21:10

Hallo Natalie,

ich habe mal zwei Screenshots gemacht, wie ich es designed habe und wie es angezeigt wird. Ich habe bewusst mal nur einen Artikel genommen. Dort werden zwei Posten gruppiert und im Einstandspreis der Durchschnitt gebildet.

In der Summe müsste ja eigentlich auch der gleiche Wert beim Einstandspreis stehen, da dort ja nur eine Position angezeigt wird.

Vielleicht kannst du mir helfen, damit ich dort das richtige Ergebnis erhalte?

LG

aPeu
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: [RTC] Summe aus einem Durchschnitt bilden

19. Oktober 2012 21:23

Versuchs im rechten Summenfeld mit =Sum(ReportItems!Name_der_Box_darüber.Value)

Re: [RTC] Summe aus einem Durchschnitt bilden

19. Oktober 2012 21:30

Hallo Natalie,

hab ich gerade versucht ich bekomme aber diesen Fehler:

Fehler beim Überprüfen von RDL-Inhalt:
Im Value-Ausdruck für das Textfeld-Objekt 'Item_Ledger_Entry__Cost_Amount__Actual___1' wird eine Aggregatfunktion für ein Berichtselement verwendet. Aggregatfunktionen können nur für Berichtselemente verwendet werden, die sich in einem Seitenkopf oder -fuß befinden.


Ich habe versucht, das bereits in den Gruppenfuß zu legen aber keine Änderung.

LG

Re: [RTC] Summe aus einem Durchschnitt bilden

19. Oktober 2012 21:38

Argh, ich habs befürchtet.
Muss deine unterste Summenzeile unbedingt eine Gruppenzeile sein oder tuts auch der Tabellenfuß?Vielleicht funktioniert ReportItems dann doch.

Wenn immer noch nicht, dann könntest du versuchen, unter den Berichtseigenschaften --> Code selber eine Funktion zu schreiben, die eine globale Variable hochzählt.

Re: [RTC] Summe aus einem Durchschnitt bilden

19. Oktober 2012 21:40

Hallo Natalie,

der Tabellenfuß würde es sicherlich tun, aber ich brauch ja pro Gruppe die Summe. Wie schreibe ich in den Berichtseigenschaften einen globale Variable?

Muss das im CC oder im RTC Layout machen?

LG

Re: [RTC] Summe aus einem Durchschnitt bilden

19. Oktober 2012 21:45

aPeu hat geschrieben:der Tabellenfuß würde es sicherlich tun, aber ich brauch ja pro Gruppe die Summe. Wie schreibe ich in den Berichtseigenschaften einen globale Variable?

Wenn du in VS nichts angeklickt oder markiert hast, stehen dir im Menü oben rechts "Berichtseigenschaften" zur Verfügung. (alternativ: Obere linke Ecke des Layouts anklicken (kleines Quadrat), rechte Maustaste).
Dort gibts ein Register namens Code. Studiere die vorhandene Syntax, um neue Funktion zu schreiben und die Variable korrekt zu deklarieren. Aufrufen tust du diese Funktion mit =Code.Funktionsname(evtlParameter)

Re: [RTC] Summe aus einem Durchschnitt bilden

19. Oktober 2012 21:52

Hallo Natalie,

ich habe die Funktion und Variable deklariert, bekomme aber beim Speicher einen Fehler, dass AVG nicht deklariert ist.

Code:
Public Function TotalAmount (ByVal Value As Decimal)
   TotalAmount = Avg(Item_Ledger_Entry__Cost_Amount__Actual__.Value)
   Return TotalAmount
End Function


Was habe ich falsch gemacht und wie kann ich es anders lösen?

LG

Re: [RTC] Summe aus einem Durchschnitt bilden

20. Oktober 2012 11:01

OK, du hast da ein paar Prinzipien missverstanden ;-)

1) Du hast die Variable TotalAmount nicht (vor der Funktion) deklariert. Schau dir die vorhandenen Beispiele an. Bitte benenne die Funktion anders als die Variable, z.B. CalcTotalAmount
2) Deine Funktion muss aufsummieren, nicht der Variable stumpf einen Wert zuweisen.
TotalAmount = TotalAmount + Value. Value ist der Parameter, den du in der Funktion schon deklariert hattest.
3) In diesen Funktionen kannst du nicht auf Felder des Datasets zugreifen; dafür hast du doch den Parameter Value, der den Feldwert entalten wird - siehe Punkt 4)
4) Zurück im eigentlichen VS-Layout: Damit die Funktion ausgeführt wird, musst du sie noch aufrufen, z.B. ein verstecktes Feld rechts neben deinem Avg-Feld: =Code.CalcTotalAmount(ReportItems!Zelle_mit_Avg.Value)
5) Für dein Summenfeld benötigst du eine neue Funktion, die dir die Variable TotalAmount wieder zurück gibt. Auch hierfür gibt es Syntax-Beispiele, z.B. GetData (ohne das Gerüst der Abfragen).

Re: [RTC] Summe aus einem Durchschnitt bilden

22. Oktober 2012 20:37

Hallo Natalie,

ich habe mir jetzt folgenden Code zusammengesucht.

Code:
Public Shared Dim sum as Decimal

Public Function AddToSum(ByVal Value As Decimal)
   sum = sum + Value
End Function

Public Function GetSum() as Decimal
   Return sum
End Function


Ich habe ein Feld mit
Code:
=Code.AddToSum(ReportItems!TB2.Value)
und im Summenfeld
Code:
=code.GetSum()
.

Ich bekomme beim Summenfeld leider immer wieder 0 angezeigt. TB2 ist der Name der Textbox, welcher den AVG Wert enthält.

Was könnte ich falsch machen?

Viele Grüße

aPeu

Re: [RTC] Summe aus einem Durchschnitt bilden

23. Oktober 2012 08:36

Das sieht genauso aus, wie ich es auch versucht hätte - Betonung liegt auf "versucht" :-(
Befindet sich die Summenzeile vielleicht nach einem Seitenumbruch? Ich hatte mal festgestellt, dass bei einem Seitenumbruch die Variablen initialisiert werden.

Das referenzierte Textbox TB2 heißt aber auch wirklich so, oder?