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

Filter-ALL statt Automaten-ALL

Alles ist einfach alles. Auch in der OLAP-Welt. Logisch. Doch wie logisch sind Geschäftslogiken, was das ALL-Element angeht? Da ist es manchmal logisch, dass alles nur das ist, bei dem eine bestimmte Bedingung erfüllt wird. Also alles nicht einfach alles ist, sondern alles nur die Summe einer Anzahl an Elementen ist, die eine gewisse Bedingung erfüllen. Dieser Blogbeitrag verrät uns, wie man eine solche Liste mit einem auf- und zu klappbaren Summen- … pardon … ALL-Element erstellt.

Fallbeispiel: Wir betrachten eine Gesamtheit von Fällen. Jeder Fall kann eine gewisse Anzahl an Fehlern haben. Interessant sind für die Geschäftslogik aber nur Fälle ab zehn Fehlern. Alle anderen Fälle befinden sich im Toleranzbereich und gelten daher nicht als fehlerhaft. Angezeigt werden soll eine Liste aller fehlerhaften Fälle (Fehler >= 10) und die Summe aller Fehler der fehlerhaften Fälle. Wenn also ein Fall weniger als zehn Fehler hatte, sollen diese Fehler nicht in die Summe miteingerechnet werden.

Uneingeschränkte Liste aller FälleAbb. 1: Uneingeschränkte Liste aller Fälle

Mit den Standardfunktionen von DeltaMaster ist es möglich, in der Achsendefinition der Zeilenachse einen Filter zu setzen, der nur Fälle ab zehn Fehlern anzeigt.

Ebenenauswahl in der Achsendefinition (notwendig für diese Art der Darstellung)Abb. 2: Ebenenauswahl in der Achsendefinition (notwendig für diese Art der Darstellung)

Filter hinzufügen in der AchsendefinitionAbb. 3: Filter hinzufügen in der Achsendefinition

Ergebnis des Filters aus der AchsendefinitionAbb. 4: Ergebnis des Filters aus der Achsendefinition

Aufmerksamen Lesern fällt hier sofort auf: Die Elemente sind zwar gefiltert, aber das ALL-Element hat die gleiche Anzahl an Fehlern wie in Abbildung 1, bei dem alle Elemente uneingeschränkt dargestellt werden. Und das ist auch richtig so, weil eben der Filter für Elemente ab zehn Fehlern gilt und das ALL-Element, wie der Name schon sagt, ein Element ist, das über zehn Fehler hat und die Summe ALLER Elemente ohne Einschränkung anzeigt.

Soll nun, wie im Fallbeispiel beschrieben, das ALL-Element eine Summe über alle gefilterten Elemente und zusätzlich noch auf- und zu klappbar sein (im Gegensatz zu berechneten Elementen), gibt es folgenden Lösungsansatz:

Hierzu muss ein benutzerdefinierter Analysewert mit diesem MDX-Befehl erstellt werden (#1 steht für den Simple-Wert „Fehler“):

Der MDX-Befehl in Worten:
Wenn der CurrentMember nicht das Fallelement ist, sondern das ALL-Element (abgeprüft über den Level der Hierarchie),

dann nehme die Summe über alle Fallelemente ab zehn Fehlern;

wenn der CurrentMember nicht das ALL-Element ist, dann zeige das Fallelement ab zehn Fehlern, ansonsten zeige nichts.

So lautet das Ergebnis des MDX-Befehls:

Ergebnis des MDX-BefehlsAbb. 5: Ergebnis des MDX-Befehls

Damit es keine Verwechslung zwischen ALL und Summe gibt, empfiehlt sich dieser Kniff: In der Achsendefinition wählt man unter Allgemein, Elementauswahl das ALL-Element und benennt dieses per F2-Taste um, z. B. in „Summe >= 10“.

Alias vergeben für das ALL-Element in der AchsendefinitionAbb. 6: Alias vergeben für das ALL-Element in der Achsendefinition

Anschließend noch die leeren Zeilen ausblenden, und wir erhalten dieses Endergebnis:

EndergebnisAbb. 7: Endergebnis