Lade...
 

Pivot Tabelle

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).

Achtung: Diese Komponente befindet sich im Moment im pre-Alpha-Stadium und könnte schwache Performance aufweisen bzw. das Abstürzen des Browsers verursachen, wenn man große Datenmengen damit verarbeiten möchte. Es wurde schnell für kleinere Datenmengen (< 1000 Datenwerte) konzipiert. In diesem Stadium dient diese Komponente der Veranschualichung. Ab dem Alpha-Stadium werden große Datenmengen ab 1000 Datenwerten ermöglicht.