CiAgICA8IS0tIExpbmtlZEluIC0tPgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogICAgICAgIF9saW5rZWRpbl9wYXJ0bmVyX2lkID0gIjEyMzUwNzMiOwogICAgICAgIHdpbmRvdy5fbGlua2VkaW5fZGF0YV9wYXJ0bmVyX2lkcyA9IHdpbmRvdy5fbGlua2VkaW5fZGF0YV9wYXJ0bmVyX2lkcyB8fCBbXTsKICAgICAgICB3aW5kb3cuX2xpbmtlZGluX2RhdGFfcGFydG5lcl9pZHMucHVzaChfbGlua2VkaW5fcGFydG5lcl9pZCk7CiAgICA8L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgICAgICAgKGZ1bmN0aW9uKCl7dmFyIHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMF07CiAgICAgICAgICAgIHZhciBiID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7CiAgICAgICAgICAgIGIudHlwZSA9ICJ0ZXh0L2phdmFzY3JpcHQiO2IuYXN5bmMgPSB0cnVlOwogICAgICAgICAgICBiLnNyYyA9ICJodHRwczovL3NuYXAubGljZG4uY29tL2xpLmxtcy1hbmFseXRpY3MvaW5zaWdodC5taW4uanMiOwogICAgICAgICAgICBzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGIsIHMpO30pKCk7CiAgICA8L3NjcmlwdD4KICAgIDxub3NjcmlwdD4KICAgICAgICA8aW1nIGhlaWdodD0iMSIgd2lkdGg9IjEiIHN0eWxlPSJkaXNwbGF5Om5vbmU7IiBhbHQ9IiIgc3JjPSJodHRwczovL3B4LmFkcy5saW5rZWRpbi5jb20vY29sbGVjdC8/cGlkPTEyMzUwNzMmZm10PWdpZiIgLz4KICAgIDwvbm9zY3JpcHQ+CiAgICA8IS0tIEVuZCBMaW5rZWRJbiAtLT4KICAgIA==
Generic filters
Exact matches only
Search in title
Search in excerpt
Search in content

Dynamische Berichtstitel

Dieser Blogbeitrag widmet sich den dynamischen Berichtsüberschriften und geht auf die vielfältigen Einsatzmöglichkeiten ein. Ein aussagekräftiger Berichtstitel versetzt den Empfänger in den richtigen Kontext und ermöglicht es, die vorliegenden Daten schneller zu verarbeiten. Mit einigen Stilmitteln lässt sich ein einheitliches Bild der Anwendung schaffen, so dass sich neben den Berichten auch die Titel entsprechend aktualisieren.

Einleitung

Die Berichtsüberschrift hat eine nicht zu unterschätzende Bedeutung für den Berichtsempfänger. Deswegen sollte sie wohl überlegt sein. Mit einem aussagekräftigen Titel kann man sich schneller auf den Berichtsinhalt einlassen und befindet sich sofort im richtigen Kontext der abgebildeten Daten. Um den Kontext besser anreichern zu können, lassen sich die Berichtstitel dynamisch gestalten. So aktualisieren sie sich automatisch mit dem Update der Berichte, was eine ordentliche Berichtsmappe wie aus einem Guss wirken lässt. Die Möglichkeiten der dynamischen Gestaltung sind dabei sehr vielfältig und gehen weit über die allseits bekannte „<viewX>“-Referenz hinaus.

Berichtsübersicht und Berichtsüberschrift

Zunächst ist es wichtig zu wissen, wie sich die Überschriften bei der Berichtsübersicht und im Bericht selbst verhalten. Da die Berichtsübersicht nur einen begrenzten Raum für Überschriften bietet, sollte darauf geachtet werden, die Berichtsüberschrift dort so knapp und aussagekräftig wie möglich zu gestalten. Öffnet man jedoch den Bericht kann die neu erhaltene Fläche bei Bedarf auch genutzt werden, um dem Berichtsempfänger weitere Informationen zur Verfügung zu stellen. Nun agieren die Überschriften in der Übersicht und im Bericht manchmal synchron und die Überschriften werden auch in beide Richtungen übernommen, doch manchmal passiert das nicht. Schauen wir uns die Details dazu an.

Berichtstitel synchron und asynchron bearbeiten

Benennt man standardmäßig einen Bericht, so ändert sich nach dem Sichern des Berichts auch der Titel in der Übersicht automatisch. Würde man im untenstehenden Beispiel „Produkt“ aus der Überschrift entfernen, so wäre diese Änderung nach dem Sichern des Berichts auch in der Berichtsübersicht zu sehen und vice versa. Die Berichtstitel zwischen der Übersicht und dem Bericht sind also genau dann synchron, wenn man ausschließlich Text als Überschrift gewählt hat.

Abbildung 1: synchrone Überschriften

Das synchrone Verhalten lässt sich mit einem dynamischen Element in einer der beiden Überschriften beenden. Sobald ein dynamisches Element in einem der beiden Titel enthalten ist, zum Beispiel mit einer „<viewX>“-Referenz, sind beide Berichtstitel asynchron und lassen sich getrennt voneinander bearbeiten.

Im Beispiel sehen wir in der Berichtsübersicht den Titel „Umsatzübersicht Produkte“. Bearbeitet man nun den Berichtstitel im Bericht selbst und ersetzt „Produkte“ durch eine „<viewX>“-Referenz, so sieht man im Bericht den gesetzten Filter in der Dimension „Produkte“, hier also Luxusmodelle, Sondermodelle und Standardmodelle. In der Berichtsübersicht bleibt der ursprüngliche Titel „Umsatzbericht Produkte“ erhalten. Beide Titel lassen sich nun unabhängig voneinander bearbeiten.

Abbildung 2: asynchrone Überschriften

Abbildung 3: ausgeschriebene, asynchrone Überschriften

Die Überschriften bleiben solange voneinander entkoppelt, bis in beiden Überschriften wieder ausschließlich Text steht. Zwingend notwendig ist, dass der Text in beiden Überschriften identisch ist damit die Synchronisation wiederbeginnt. Das Verhalten lässt sich also in wenige Punkte zusammenfassen:

  1. Überschrift Text = synchrone Bearbeitung
  2. Eine Überschrift mit dynamischem Element = asynchrone Bearbeitung
  3. Beide Überschriften identischer Text = erneute synchrone Bearbeitung

Dynamische Elemente

Ordner- und Berichtstitel lassen sich mit dynamischen Elementen lebhaft gestalten, so dass sie sich, wie auch die Berichte selbst, automatisch aktualisieren. So werden die Titel von Berichten beim Aktualisieren der Berichtsmappen automatisch neu erstellt. Auch beim erneuten Speichern der Berichte passt sich der Titel entsprechend an. Auf die einzelnen Möglichkeiten der Gestaltung der Titel wird im Folgenden näher eingegangen.

MDX in Berichtstiteln

In den Berichtstiteln von DeltaMaster lassen sich viele herkömmliche MDX-Statements verarbeiten, die in sprechenden Text umgewandelt werden. So lassen sich einzelne Elemente aus Dimensionen, mehrere Elemente aus Dimensionen aber auch variable Elemente via (beispielsweise) dem CurrentMember–Befehl in den Titel implementieren. Um einen beliebigen MDX–Ausdruck in eine Überschrift zu übernehmen, muss dieser in geschweiften Klammern „{…}“ stehen.

Nimmt man sich die allseits bekannte Chair-Datenbank als Grundlage und baut sich einen einfachen Umsatzbericht nach Produkten und möchte die Überschrift teilweise dynamisch gestalten, so erhält man für „Umsatzübersicht {[Produkt].[Produkt].CurrentMember}“ die Filterauswahl der Produkte in der Berichtsüberschrift.

Abbildung 4: MDX im Berichtstitel

Abbildung 5: Aufgelöstes MDX im Berichtstitel

Das MDX im Berichtstitel ist jedoch nicht auf die Anzeige der gesetzten Filter beschränkt. Vielmehr lassen sich im Berichtstitel zusätzliche Informationen anzeigen, die über die Informationen im Bericht hinaus gehen. Doch dazu gleich mehr.

Platzhalter im Berichtstitel

Die Verwendung von MDX in Berichtstiteln kann schnell unübersichtlich werden, da uns kein typischer Editor zur Verfügung steht. Häufig reicht es aber für den Berichtstitel aus, dass dort die Filterelemente erscheinen. Hierfür kann der „<viewX>“-Platzhalter genutzt werden, wobei das X für die ID der jeweiligen Dimension steht. Diese findet man heraus, indem man mit gedrückter Alt-Taste der Mauszeiger über der Dimension schwebt. Wäre die ID der Produktdimension 4, dann ließe sich das obige Beispiel also auch mit „Umsatzübersicht <view4>“ darstellen (siehe Abbildung 2). Der View-Platzhalter entspricht also dem einfachen MDX-Befehl „CurrentMember“, wie er bei uns in Überschriften interpretiert wird.

Zeitreihenanalyseelemente in Berichtstiteln

Auch die Platzhalter der Zeitreihenanalyseelemente lassen sich in den Berichtstiteln nutzen. So ist es möglich den Zeitkontext auf dem ersten Blick in der Übersicht oder präsenter im Berichtstitel darzustellen. Durch die verkürzte Schreibweise spart man sich zusätzlich eine umständliche Programmierung der vorhandenen Standards. Aus den DeltaMaster deltas! 5.3.1 lassen sich folgende Möglichkeiten entnehmen:

{cp}                  aktuelle Periode

{pp}                  vorherige Periode (= {pp1})

{ppX}               vorherige Periode mit Abstand X

{np}                  nächste Periode (= {np1})

{npX}               nächste Periode mit Abstand X

{apY}                übergeordnete Periode auf Ebene Y

{apY,X}             übergeordnete Periode auf Ebene Y, Abstand X

{pyaY,X}           Vorjahresperiode mit Ebene Y und Abstand X

Um den aktuellen Monat im Titel zu sehen, kann man entweder „{[Periode].[Periode].CurrentMember}“ oder die Kurzversion „<viewX>“ oder auch {cp} verwenden, um jeweils zum gleichen Ergebnis zu gelangen.

Kennzahlen in Berichtstiteln

Neben Dimensionsabfragen mittels MDX lassen sich auch Kennzahlen in den Berichtstiteln anzeigen. Das ist nicht allzu verwunderlich, schließlich macht der Text der Wetterzelle eigentlich nichts anderes. Die Verwendung von Kennzahlen gewährt einen großen Gestaltungsspielraum der Titel. Es können Auswertungen im Titel stattfinden (Beispiel wer war in diesem Monat bei diesen Produkten der beste Vertreter, vergleiche hierzu Blogbeitrag „DeltaMaster macht Schlagzeilen“), aber auch Texte lassen sich an Informationen gebunden voll dynamisch gestalten. Alles was man dafür benötigt sind selbst angelegte Kennzahlen um diese dann im Titel zu verwenden.

Kennzahlen werden wie das MDX mit einer geschweiften Klammer „{…}“ in einer Überschrift ausgewertet. Für die Schreibweise existieren wieder zwei Möglichkeiten:

  • Man schreibt die Kennzahl aus „{[Measures].[NameDerKennzahl]}“
  • Man nutzt einen Platzhalter „<measureX>“. Dieser funktioniert analog zu „<viewX>“, wobei X in diesem Fall die ID der Kennzahl ist (Beispiel <measure1>)

Anhand eines kleinen Beispiels wird nun gezeigt, wie man die Wetterzellen-Kennzahl in die Berichtsübersicht übertragen kann.

 

Abbildung 6: Wetterzelle

Die Bausteine, die man für die Darstellung der Kennzahl in der Wetterzelle benötigt, sind das Vorzeichen, die Kennzahl selbst und die verkürzte Schreibweise in Tausender bzw. Millionen (Tsd., Mio.). Die Sondermodelle könnte man variabel mit in die Überschrift nehmen, da sich der Bezug von Wetterzellen aber nicht ändert, wären dies umsonst getippte Zeichen.

Die Logik des Vorzeichenbausteins bzw. dessen Kennzahl ist recht einfach. Die angelegte Kennzahl muss lediglich überprüfen, ob die Bewertungskennzahl positiv oder negativ oder gleich 0 ist. Entsprechend dieser Prüfung schreiben wir ein „+“, ein „-“ oder lassen die Zelle leer. Das Ergebnis (bezogen auf die vorliegende Chair-Datenbank) sollte ungefähr wie folgt aussehen.

Abbildung 7: Kennzahl für Vorzeichen

Die zweite Kennzahl ist das Kürzel für Ergebnisse, die größer als 1.000 bzw. größer als 1.000.000 sind. Der MDX-Code ist recht unübersichtlich, weswegen er einfach hier in abgekürzter Textform eingefügt wird. Die Kennzahl muss hierbei lediglich auf den Wert geprüft und das Ergebnis entsprechend durch „Tsd.“ oder „Mio.“ ersetzt werden. Das Gewünschte erreicht man zum Beispiel mit:

CASE
                WHEN    (Kennzahl > 999 AND Kennzahl < 999999) OR (Kennzahl < -999 AND Kennzahl >- 999999)
                                THEN "Tsd."
                WHEN    Kennzahl > 999999 OR Kennzahl <- 999999
                                THEN "Mio."
                ELSE ""
END

Mit Kennzahl = ([Produkt].[Produkt].[Produkthauptgruppe].&[2],[Periodenansicht].[Periodenansicht].[temp 7] ,[Measures].[Umsatz])

 

Bleibt noch das Ergebnis selbst, das in der Berichtsübersicht sichtbar sein soll. Die verkürzte Schreibweise der Kennzahl ist etwas aufwendiger zu modellieren, da wir zwei verschiedene Formatierungen haben: Bei Tausender-Kennzahlen sehen wir ein bis drei Stellen der Zahl, bei größeren Ergebnissen hingegen eine Nachkommastelle. Dementsprechend benötigen wir eine Kennzahl die ohne und eine die mit Nachkommastelle formatiert ist. Folgende MDX-Codezeilen führen zum Ergebnis:

CASE

                WHEN (Kennzahl > 0 AND Kennzahl < 999) OR (Kennzahl < 0 AND Kennzahl > -999)
                               THEN Kennzahl    
                WHEN (Kennzahl > 999 AND Kennzahl < 999999) OR  (Kennzahl < -999 AND Kennzahl >- 999999)
                               THEN Kennzahl /1000
                ELSE ""
END



CASE
                WHEN [Kennzahl > 999999 OR Kennzahl <- 999999
                               THEN Kennzahl /1000000
                WHEN Kennzahl = 0
                               THEN 0
                ELSE ""
END

Mit Kennzahl = ([Produkt].[Produkt].[Produkthauptgruppe].&[2],[Periodenansicht].[Periodenansicht].[temp 7] ,[Measures].[Umsatz])

Der Trick bei beiden Kennzahlen ist, dass das Ergebnis leer bleibt, wenn die andere Kennzahl angezeigt wird. Fügt man diese neu erstellten Kennzahlen nun in die Überschrift in der Berichtsübersicht in passender Reihenfolge zusammen, ergibt sich eine Überschrift in folgendem Muster.

Abbildung 9: Ergebnis