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

Analysewerte austauschen im Präsentationsmodus – Teil 1

Dieser Blogbeitrag zeigt, was zu tun ist, damit Berichtsempfänger im Präsentationsmodus in einem Bericht per Filterleiste Analysewerte ändern können. Die Mittel dafür sind eine Hilfsdimension und ein neuer Analysewert. Im ersten Teil werden die Schritte vorgestellt, die in DeltaMaster umgesetzt werden; im zweiten Teil folgen die Schritte im Back-end.

Zielsetzung

Am Ende des Beitrags wissen Sie, wie Sie Berichtsempfängern die Möglichkeit an die Hand geben, in einem Bericht einen Analysewert einfach und komfortabel austauschen zu können. Als Ausgangsbericht nutzen wir dazu einen Umsatzbericht aus unserer Referenzanwendung Chair, in dem die Kundengebiete den Produktgruppen gegenübergestellt werden:

Abbildung 1: Umsatzbericht

Nun wollen wir eine Möglichkeit schaffen, dass Berichtsempfänger den Analysewert von Umsatz auf Deckungsbeitrag ändern können.

Umsetzung

Zuerst wählen wir uns eine vorhandene Dimension, die wir in diesem Bericht nicht benutzen, in der Referenzanwendung Chair könnte das z. B. die Dimension Einheit sein.

In dieser Dimension legen wir nun für jeden Analysewert, den wir auswählbar machen wollen, ein berechnetes Element an, indem wir auf das Defaultmember verweisen und die Solve_Order auf 0 stellen, analog zu Abbildung 2 für „DB“.

 

Abbildung 2: Beispielelement für DB

Das berechnete Element „DB“ finden Sie anschließend in der Dimension:

Abbildung 3: Beispielanlage der berechneten Elemente

Nachdem diese Vorbereitung getroffen ist, müssen wir nun dafür sorgen, dass diese Auswahl in dem Bericht die gewünschte Veränderung des Analysewerts erzeugt.

Dazu legen wir nun einen benutzerdefinierten Analysewert an, indem wir bei den Basisanalysewerten die Analysewerte, die wir als berechnete Elemente angelegt haben, auswählen und dann mit einer Fallunterscheidung ansteuern:

Abbildung 4: Neuen Analysewert anlegen

Und natürlich auch das MDX:


CASE
	WHEN [Einheit].[Einheit].currentMember is [Einheit].[Einheit].[temp 6] --DB
	THEN #6
	WHEN [Einheit].[Einheit].currentMember is [Einheit].[Einheit].[temp 5] --Lohn
	THEN #2 * (-1)
	WHEN [Einheit].[Einheit].currentMember is [Einheit].[Einheit].[temp 4] -- Skonti
	THEN #1 * (-1)
	WHEN [Einheit].[Einheit].currentMember is [Einheit].[Einheit].[temp 3] -- Ma-terial
	THEN #3 * (-1)
	WHEN [Einheit].[Einheit].currentMember is [Einheit].[Einheit].[temp 2] -- Ra-batt
	THEN #4 * (-1)
	WHEN [Einheit].[Einheit].currentMember is [Einheit].[Einheit].[temp]  -- Um-satz
	THEN #5
END

In dem MDX fragen wir das aktuelle Element der Einheit ab und je nachdem, welches berechnete Element ausgewählt ist, nimmt der benutzerdefinierte Analysewert den Wert des entsprechenden Basisanalysewerts an.

Dem aufmerksamen Leser wird aufgefallen sein, dass ich die Kosten mit dem Faktor (-1) multipliziere. Dies liegt daran, dass wir dem Analysewert einen Faktor geben müssen, nämlich positiv oder negativ. Damit nun Kosten rot dargestellt werden, da ich mich für Faktor positiv entschieden habe, stelle ich diese Werte negativ dar.

Nun fehlt noch eine dynamische Bezeichnung für den Analysewert. Hierzu bietet sich das MDX {} an, wobei X die DimensionID der gewählten Hilfsdimension ist, also in meinem Fall der Einheit.
Im Anschluss benutzen wir diesen Analysewert im Bericht, in dem der Analysewert im Präsentationsmodus austauschbar sein soll.

Bewertung des Endergebnisses

Im fertigen Bericht kann nun umgeschaltet werden von z.B. Umsatz auf DB:

Abbildung 5: Filter auf Umsatz für Ausgangsbericht

Abbildung 6: Filter auf DB

Dieses Endergebnis kann sich sehen lassen. Wir können zwischen den Analysewerten hin- und herwechseln. Als Manko könnte man anbringen, dass man die verwendete Dimension, Hierarchie und Ebene nicht einfach umbenennen kann, da diese ja in einen anderen Bericht greifen könnte und dann auch Einheit heißen soll. Ebenso tauchen die berechneten Elemente stets in der Dimension auf, die man in anderen Berichten anderweitig benutzt. Weiterhin ist eine Anpassung auch relativ aufwendig, insbesondere bei sehr vielen Analysewerten.

Wie man dies nun im Backend optimieren kann, sodass man nur noch einen relationalen Eingabebericht mit DeltaMaster pflegen muss und vermeidet, dass das MDX noch größer wird, erfahren Sie im zweiten Teil des Beitrags.