Prozentwert am Balkendiagramm auf Gesamtanzahl beziehen

Hallo!

Ich versuche bei einem Balkendiagramm die Prozentwerte auf die Gesamtanzahl der Werte anzuzeigen.
Leider werden die Prozentwerte scheinbar auf das höchste Vorkommen eines Wertes bezogen anstatt auf die Gesamtanzahl.
Im folgenden Beispiel habe ich zum Prozentwert noch den Absolutwert angezeigt um die Gesamtanzahl (Summe aller Vorkommnisse) von 107 sichtbar zu machen.
Der größte vorkommende Wert ist 34.
Die verwendete “Inhalt” Einstellung LL.ChartObject.AxisPercentage nimmt schenibar als maximal Wert die 34 an, anstatt die 107 wodurch 34 = 100% bedeutet.
Ich benötige jedoch für z.B. die 34 Vorkommnisse einen Prozentwert von ca. 32% (34/107 = 31,7%)

Wie kann man den Bezug auf die Gesamtanzahl anpassen?

Grüße
Peter Brandt

Hallo Peter,

herzlich Willkommen im List & Label Forum. Der Prozentwert wird auf den maximalen Wert bezogen. Dies lässt sich derzeit leider nicht ändern. Wir danken dir für diesen Hinweis, und werden untersuchen ob wir hier in Zukunft eine Möglichkeit zur Verfügung stellen können.

Im Moment bieten sich hier 2 Möglichkeiten an:

  1. Du verwendest im Designer die Funktion “NativeSum”. Für den Inhalt könnte man dann folgende Formel verwenden:
    Str$((LL.ChartObject.AxisCoordinate / /NativeSum(Einzelwert)) * 100,0,2) + “%”
    Bitte beachte dass diese Funktion nur funktioniert wenn die Datenquelle dies unterstützt. Du musst hier unter .NET mit einem Dataset, SQL Dataprovider oder Object Datenprovider arbeiten. Im Zweifelsfall einfach mal testen.
  1. Falls dies nicht möglich ist könnte man noch das Mehrpassverfahren verwenden. Stelle hierzu im Designer für das Projekt die “Anzahl der Durchläufe” auf 2. Hänge im Berichtscontainer eine zusätzlich Tabelle mit der Datenquelle für die Einzelwerte an. Gebe diese in einer Datenzeile aus, und summiere die Einzelwerte folgendermaßen in der Fußzeile.
    SetVar(“Gesamtwert”,Sum(“Einzelwert”,false))
    Für die Darstellungsbedingung für die Tabelle verwendest du:
    PrintPassIndex() = 1
    Dadurch wird die Tabelle nur im ersten Durchlauf verwendet um die Summe der Einzelwerten zu berechnen und zu merken. Im zweiten Durchgang wird dann diese Wert per GetVar gelesen und für den Inhalt verwendet:
    Str$((LL.ChartObject.AxisCoordinate / ToNumber(GetVar(“Gesamtwert”))) * 100,0,2) + “%”

Im Projekt wird die Eigenschaft “Mehrpassverfahren: Ausgabebedingung” auf “Nur den letzten Durchlauf ausgeben”. Wir ermitteln hier im ersten Durchlauf die Summe der Werte um dies dann im zweiten zu verwenden.
Ich habe dir ein Beispiel-Report für die List & Label Anwendung angehängt.
Diagramme mit Reihen.lsr (46.2 KB)

Hallo Thomas,

danke für die schnelle und hilfreiche Antwort.
Schön dass ich euch Ideen mit bringe, die es vielleicht irgendwann in eine zukünftige Version schaffen :slight_smile:
Ich konnte nach der von dir beschriebenen 2. Variante den Prozentwert auf die Gesamtanzahl anwenden.
Vielen Dank und ein schönes Wochenende wünsche ich!

Grüße
Peter

1 Like