Pivot-Tabelle
Einführung
Pivot-Tabellen bieten die Möglichkeit an, Datenauswertungen von Ausgangstabellen in verschiedener Art darzustellen, ohne die Daten selbst zu ändern. Sie erlauben durch ihre zusammenfassende Wirkung verschiedene Überblicke über die Daten aus unterschiedlichen Blickwinkeln. Somit lassen sich große Datenmengen auf übersichtliche Größen reduzieren und einfach auswerten.
Die Bedienung einer Pivot-Tabelle
Die Bedienung einer Pivot-Tabelle ist recht einfach. Eine Pivot-Tabelle ist nämlich im Grunde eine Transformation einer Tabelle durch zusammenfassende Aggregatfunktionen, wie Summe, Anzahl, Durchschnitt, etc. Alle Spalten der Ausgangstabelle bilden die Datenfelder. Diese Datenfelder kann man in der neuen Tabelle als Zeilen oder Spalten auswählen, jede Zeile bzw. Spalte kann beliebig viele Unterzeilen bzw. Unterspalten besitzen. Durch diese Hierarchisierung kann man den Überblick und die Wirkung der Aggregatfunktionen granularer und feiner steuern. So könnte man beispielsweise als Hauptspalte den Typ eines Ersatzteiles auswählen und als Unterspalte die Marke des Ersatzteils. Somit kann man die Statistiken und die Auswertung nicht nur aufgrund des Typs eines Ersatzteiles vornehmen, sondern auch aufgrund der Marke für baugleiche Ersatzteile verschiedener Hersteller.
Datenfelder können nur einmal als eine Spalte oder eine Zeile verwendet werden, aber nicht beides gleichzeitig. Alle Datenfelder können jedoch unabhängig davon, ob sie als eine Spalte oder Zeile ausgewählt werden, zusätlich als Auswertungsfelder ausgewählt werden. Während die Zeilen und Spalten die Hierarchie und die Struktur der Pivot-Tabelle festlegen, werden die verwendeten Aggregatfunktionen durch die Auswertungsfelder festgelegt. Im vorigen Beispiel von Ersatzteilen könnten der Preis und die Anzahl der jeweiligen Ersatzteile in einer Maschine als Auswertungsfelder ausgewählt werden. Dadurch kann man schnell auf einen Blick ermitteln, wie viel die Gesamtkosten (Aggreagtfunktion: Summe) eines Ersatzteiles in einer Maschine je nach Marke ausfallen bzw. wie viele (Aggregatfunktion: Anzahl) Ersatzteile einer bestimmten Marke in einer Maschine gebraucht werden.
Die Anordnung der Datenfelder auf Zeilen, Spalten und Auswertungsfelder können durch den IV-Entwickler oder durch den Benutzer bestimmt werden. Der IV-Entwickler kann den Benutzer daran hindern, die Anordnung zu verändern, indem er die Pivot-Tabelle als VIEW_ONLY definiert.
Die Anbindung einer Pivot-Tabelle in ClassiX
In ClassiX (zur Zeit lediglich unter MorphIT) kann man jede beliebige ObjectListView in eine Pivot-Tabelle umwandeln, indem man das Widget mit dem MorphIT-Slot "morphIt.description" mit dem Wert "pivot" initialisiert. Die Definitionen der Felder werden direkt aus der ObjectListView entnommen, die der IV-Entwickler zuvor mit SetFormat-Anweisungen aufgebreitet hatte.
Weitere Einstellungen kann der IV-Entwickler durch den MorphIT-Slot _jsonString als CX_JSON_OBJECT übermitteln. Diese Einstellungen sind in der folgenden tabellarischen Übersicht erläutert.
Einstellungen der Pivot-Tabelle
Einstellung | Typ | Beschreibung |
---|---|---|
fields | Array(Field) | Obwohl die Datenfelder per SetFormat-Anweisung festgelegt werden, kann man nicht alle Einstellungen eines Datenfeldes per SetFormat übermitteln. Dieses Array erlaubt dem IV-Entwickler Zusatzeinstellungen zu jedem Datenfeld festzulegen. |
rows | Array(Integer) | Dieses Array legt fest, welche Datenfelder als Zeilen durch InstantView im Voraus ausgewählt werden. Das Array besteht aus den Indizes der ausgewählten Datenfelder. Der Index eines Datenfeldes wird durch seine Reihenfolge in den SetFormat-Anweisungen bestimmt. |
columns | Array(Integer) | Dieses Array legt fest, welche Datenfelder als Spalten durch InstantView im Voraus ausgewählt werden. Das Array besteht aus den Indizes der ausgewählten Datenfelder. Der Index eines Datenfeldes wird durch seine Reihenfolge in den SetFormat-Anweisungen bestimmt. |
valueFields | Array(Integer) | Dieses Array legt fest, welche Datenfelder als Auswertungsfelder durch InstantView im Voraus ausgewählt werden. Das Array besteht aus den Indizes der ausgewählten Datenfelder. Der Index eines Datenfeldes wird durch seine Reihenfolge in den SetFormat-Anweisungen bestimmt. |
Gesamtsumme | ||
showRowsGrandTotal | Boolean | Zeigt die Gesamtsumme aller Zeilen je Spalte am vertikalen Ende der Tabelle. Default: false. |
showColumnsGrandTotal | Boolean | Zeigt die Gesamtsumme aller Spalten je Zeile am horizontalen Ende der Tabelle. Default: false. |
Allgemeine Zeileneinstellungen - Für alle Zeilen, die keine speziellen abweichenden Einstellungen haben. | ||
showRowsSubTotal | Boolean | Zeigt die Zwischensumme(n) für jede Zeile und ihre Unterzeile(n). Dies ist nur sinnvoll bei Zeilen mit einer Hierarchie von Zeilen und Unterzeilen. Default: true. |
collapsibleRowsSubTotal | Boolean | Falls die Zwischensumme angezeigt werden soll, kann man mit dieser Option festlegen, ob die Anzeige der Zeilenhierarchie und der Zwischensummen aufklappbar sein soll. Default: true. |
rowsSubTotalCollapsed | Boolean | Falls die Anzeige der Zeilenhierarchie und der Zwischensummen aufklappbar sind, kann man mit dieser Option festlegen, ob die Zeilen initial auf- oder zugeklappt werden sollen. Default: true (zugeklappt). |
defaultRowSort | String |
Falls man eine initiale Sortierung der Zeilen einstellen möchte, kann man mit dieser Option die Sortierung in auf- oder absteigender Reihenfolge festlegen. Default: kein Wert (keine Sortierung) Mögliche Werte: 'asc', 'desc' oder keine Angabe. |
Allgemeine Spalteneinstellungen - Für alle Spalten, die keine speziellen abweichenden Einstellungen haben. | ||
showColumnsSubTotal | Boolean | Zeigt die Zwischensumme(n) für jede Saplte und ihre Unterspalten(n). Dies ist nur sinnvoll bei Spalten mit einer Hierarchie von Spalten und Unterspalten. Default: true. |
collapsibleColumnsSubTotal | Boolean | Falls die Zwischensumme angezeigt werden soll, kann man mit dieser Option festlegen, ob die Anzeige der Spaltenhierarchie und der Zwischensummen aufklappbar sein soll. Default: true. |
columnsSubTotalCollapsed | Boolean | Falls die Anzeige der Spaltenhierarchie und der Zwischensummen aufklappbar sind, kann man mit dieser Option festlegen, ob die Spalten initial auf- oder zugeklappt werden sollen. Default: true (zugeklappt). |
defaultColumnSort | String |
Falls man eine initiale Sortierung der Spalten einstellen möchte, kann man mit dieser Option die Sortierung in auf- oder absteigender Reihenfolge festlegen. Default: kein Wert (keine Sortierung) Mögliche Werte: 'asc', 'desc' oder keine Angabe. |
Das Field-Objekt
Das Field-Objekt dient der Spezialisierung einer Spalte (eines Datenfeldes) der Ausgangstabelle und die Festlegung ihrer Funktionalität als Auswertungsfeld. Es ist vom Typ CX_JSON_OBJECT und kann die folgenden Eigenschaften haben. Hervorgehobene Felder sind obligatorisch.
Eigenschaft | Typ | Beschreibung |
---|---|---|
index | Integer | Um ein Field-Objekt mit einer Spalte der Ausgangstabelle zu assoziieren, muss man den Index der Spalte angeben. Dieser Index ergibt sich aus der Reihenfolge der SetFormat-Anweisungen, die für die Spaltendefinition der Ausgangstabelle verantwortlich sind. |
title | String | Standardmäßig wird der Titel eines Datenfeldes aus der SetFormat-Anweisung entnommen. Mit dieser Option kann der IV-Entwickler diesen Titel überschreiben. |
aggregateFunction | String |
Falls dieses Datenfeld als ein Auswertungsfeld verwendet wird, muss es eine Aggregatfunktion haben. Zur Zeit gibt es eine Liste von vordefinierten Aggregatfunktionen, die man mit ihrem Bezeichner als String auswählen kann. Eine Liste der unterstützten Aggregatfunktionen findet man hier. Die Standardfunktion ist die Anzahlfunktion 'count'. |
functionTitle | String | Diese Option erlaubt dem IV-Entwickler den angezeigten Namen der Aggregatfunktion zu verändern. Ohne diese Option erscheint der Bezeichner der Aggregatfunktion neben dem Titel des Auswertungsfelds. Diese Namensänderung hat keinen Einfluss auf die Funktionalität der Aggregatfunktion. |
showRowsSubTotal | Boolean | Überschreibt die gleichnamige oben beschriebene Option, wenn gewünscht, falls dieses Datenfeld als eine Zeile ausgewählt wird. |
collapsibleRowsSubTotal | Boolean | Überschreibt die gleichnamige oben beschriebene Option, wenn gewünscht, falls dieses Datenfeld als eine Zeile ausgewählt wird. |
rowsSubTotalCollapsed | Boolean | Überschreibt die gleichnamige oben beschriebene Option, wenn gewünscht, falls dieses Datenfeld als eine Zeile ausgewählt wird. |
rowSort | String | Überschreibt die gleichnamige oben beschriebene Option, wenn gewünscht, falls dieses Datenfeld als eine Zeile ausgewählt wird. |
showColumnsSubTotal | Boolean | Überschreibt die gleichnamige oben beschriebene Option, wenn gewünscht, falls dieses Datenfeld als eine Spalte ausgewählt wird. |
collapsibleColumnsSubTotal | Boolean | Überschreibt die gleichnamige oben beschriebene Option, wenn gewünscht, falls dieses Datenfeld als eine Spalte ausgewählt wird. |
columnsSubTotalCollapsed | Boolean | Überschreibt die gleichnamige oben beschriebene Option, wenn gewünscht, falls dieses Datenfeld als eine Spalte ausgewählt wird. |
columnSort | String | Überschreibt die gleichnamige oben beschriebene Option, wenn gewünscht, falls dieses Datenfeld als eine Spalte ausgewählt wird. |
Die unterstützten Aggregatfunktionen
Bezeichner | Beschreibung |
---|---|
sum | Summe der Werte |
count | Anzahl der Werte |
min | Der kleinste Wert unter den Werten |
max | Der größte Wert unter den Werten |
avg | Durchschnitt aller Werte |
prod | Produkt aller Werte |
var | Korrigierte Stichprobenvarianz |
varp | Stichprobenvarianz |
stdev | "Korrigierte" Stichprobenstandardabweichung (das Quadrat der korrigierten Stichprobenvarianz) |
stdevp | Stichprobenstandardabweichung (das Quadrat der Stichprobenvarianz) |
Events und Nachrichten
Zur Zeit sind keine Events definiert. Ein Doppelklick auf eine Zelle führt automatisch zum Anzeigen aller dahinterliegenden Daten (Drill-Down).