<< Click to Display Table of Contents >> Navigation: Datenauswertung > Kreuztabelle > Syntax |
Syntax
TABLE [ taboptions ] = <parts> BY <parts>;
taboptions ::=
[
ADD
NAME <tablename>
TITLE <tabletitle>
CELLELEMENTS ( <cellelements> )
FRAMEELEMENTS ( <frameelements> )
TABLEFORMATS ( <tableformats> )
CONTENTKEY <contentkey>
HIDDEN ( <medium> )
]
parts ::= part { part }*n
part ::= content [ filter ] [ option ]
content ::=
[
<constant> |
<varname> |
<cellelement> ( <varname> [ <varname> ] ) |
<cellelement> ( <varname> [ <varname> ] BY <varname> )
:DESCRIPTION
:USEVARTITLE
:FORMAT
]
filter ::= FILTER <bedingung> |
option ::= SORT sortcontent [ sortpane ] [ cut ]
sortcontent ::= [ DESCEND ] sorttype
sorttype ::= [ POSITION | ALPHA | CODE | Cellelement ]
sortpane ::= PANE <value> CODE <value>
cut ::=
[
TOP <value > [ SLICE <value> ] |
BOTTOM <value> |
EXTREME <value> |
SLICE <value> |
LSLICE <value> |
RANGE <value> <value>
]
Die einfachste Variante eines TABLE-Statements lautet: TABLE = a by b;
Ohne weitere Spezifikationen wird so eine Tabelle erstellt, die als CELLELEMENTS absolute Werte und als FRAMEELEMENTS die ABSROW enthält sowie alle besetzten Datenzellen abbildet.
Dem TABLE-Statement können nun eine Reihe an Eigenschaften mitgegeben werden, die nur für die spezifische Tabelle gelten.
Im Gegensatz dazu gelten Einstellungen, z.B. zu den CELLELEMENTS, die vor dem TABLE-Befehl als eigene Anweisungen getroffen werden, bis zum nächsten Statement dersselben Typs.
TabOptions stehen nach dem TABLE-Keyword und vor dem Gleichheitszeichen.
Add |
ADD ist das Schlagwort für im eigenen Kapitel behandelte zusammengesetzte Tabellen. |
---|---|
Mit NAME <tablename> kann der Tabelle ein interner Tabellenname gegeben werden, der später bspw. im Rahmen von SORT AS referenziert werden kann. |
|
Title |
TITLE <tabletitle> gibt der Tabelle einen TABLETITLE. |
CellElements |
CELLELEMENTS ( <cellelements> ) steuert die tabellenspezifischen Zellelemente, als Standard (keine Einstellungen getroffen) werden die Absolutwerte ausgegeben. |
Mit FRAMEELEMENTS (<frameelements>) können der Tabelle Rahmenelemente hinzugefügt werden. Wird keine Spezifikation vorgenommen, wird standardmäßig die ABSROW ausgegeben. |
|
TableFormats |
Mit TABLEFORMATS ( <tableformats> ) kann das Aussehen der Tabelle gesteuert werden. |
CONTENTKEY <contentkey> setzt den Text, der in Inhaltsverzeichnissen auf diese Tabelle verweisen soll. |
|
Hidden |
HIDDEN( { PS | PDF | HTML | OFFICEEXPORT | INSTANTEXCEL | EXCELOUT | TABLESASJSON | CSVEXPORT }*n ) bewirkt das "Verstecken" von Tabellen vom Typ TABLE und [X]OVERVIEW in verschiedenen Ausgabemedien. Es gibt Situationen, in denen man sich auf die Inhalte von Tabellen beziehen möchte, die nicht dargestellt werden sollen. Ein Beispiel hierfür ist die Vererbung einer Sortierreihenfolge, die einer Tabelle entnommen werden soll, die es zu diesem Zeitpunkt (noch) nicht gibt. Wenn z.B. die Reihenfolge einer Reihe von 10 Tabellen nicht aus der ersten, sondern der zweiten Tabelle entnommen werden soll. Diese Anforderung kann man dadurch erfüllen, dass man die zweite Tabelle zweimal erzeugt, einmal HIDDEN vor der ersten, und dann sichtbar nach dieser: TABLE NAME sortsource HIDDEN( PS PDF HTML OFFICEEXPORT INSTANTEXCEL ) = #k BY val2 SORT ABSOLUTE; TABLE SORT AS sortsource = #k by val1 ; TABLE SORT AS sortsource = #k by val2 ; TABLE SORT AS sortsource = #k by val3 ; ..... Trotz der Hierarchie der Ausgabemedien (es muss stets ein PRINTFILE PS oder PRINTFILE PDF existieren) werden die für das PRINTFILE unterdrückten Tabellen intern produziert und in allen anderen Ausgabeformaten dargestellt (sofern nicht auch für diese HIDDEN gesetzt wurde), dasselbe gilt für POWERCHART (GESS ChartFactory): auf eine HIDDEN TABLE kann trotzdem zugegriffen und auf Basis dessen in GESS ChartFactory weitergearbeitet werden. Einschränkung: Einzig die mit GESStabs Artist produzierten Grafiken fallen unter die HIDDEN-Logik einer unterdrückten Tabelle. |
Sortierung einer Tabelle entspricht der Sortierung einer vorangehenden Tabelle, siehe Sortierung. |
Tabellenelemente (Parts)
Nach dem Keyword TABLE, möglichen Tabellenoptionen und dem Gleichheitszeichen folgen die Bezeichnung der Tabellenteile: erst die Variable(n) für den Tabellenkopf, dann das Keyword BY und danach die Variable(n) für den seitlichen Tabellenaufriss.
Neben den darzustellenden Variablen in Tabellenkopf und -seite können außerdem jeweils noch weitere Eigenschaften hinzugefügt werden:
Konstante |
Beliebige Konstante, z.B. 1. GESStabs erzeugt daraus eine interne Variable mit konstantem Wert |
---|---|
CellElements |
Alle Schlüsselwörter zu CELLELEMENTS kann man auch als eigene Spalten oder Zeilen in Tabellen anfordern, also z.B.: TABLE = #k BY v1 MEAN(v1); Innerhalb des TABLE-Statements erkennt das Programm an den Klammern, dass es sich um eigenständige Spalten bzw. Zeilen handelt, die anzufügen sind. Eigenständig bedeutet, dass in diesen Spalten bzw. Zeilen nicht die CELLELEMENTS-Definition gilt, die im Normalfall den Zelleninhalt steuert. CELLELEMENTS, die keine eigene Variablenbezeichnung erfordern, werden mit leeren Klammern aufgeführt, z.B.: TABLE = #k BY v1 PROJECTION(); |
Bei Anforderung zusätzlicher Spalten bzw. Zeilen in der obenstehenden Form kann über den Doppelpunkt auch eine "lokale" Beschreibung (DESCRIPTION) gesetzt werden, um den Mittelwert etc. verbal zu kennzeichnen, z.B.: TABLE = Kopf BY MEAN :DESCRIPTION "Mittelwert" ( v1 ); |
|
:USEVARTITLE |
Man kann auch über das Schlüsselwort USEVARTITLE einen VARTITLE einer bestehenden Variablen als "lokale" Beschreibung anfordern: TABLE = #k BY MEAN :USEVARTITLE x1 ( v1 ); |
:FORMAT |
Ebenso kann man auch ein "lokales Format" (FORMAT) vereinbaren: TABLE = Kopf BY MEAN :FORMAT "#.##" ( v1 ); |
Auch lokale Anweisungen zu Filterungen und Sortierungen sind möglich:
FILTER |
Im Anschluss an jedes Tabellenelement können mit FILTER <Bedingung> | lokale Selektionen vorgenommen werden, zum Beispiel: TABLE = V1 FILTER geschl EQ 1 | V1 FILTER geschl EQ 2 | BY V1 MEANTEST; |
---|---|
SORT [ DESCEND ] [ POSITION | ALPHA | CODE | Cellelement ] [ PANE <value> CODE <value> ] : Mit diesem Statement kann die Tabelle nach den Inhalten der Tabellenelemente sortiert werden, beispielsweise bewirkt folgendes Statement eine absteigende Sortierung der Absolutwerte von V1: TABLE = #k BY V1 SORT ABSOLUTE DESCEND; Als Sorttypes stehen zur Verfügung: Siehe auch Tabellenoption SORT für eine detaillierte Beschreibung. |
|
TOP |
Die Tabellenausgabe kann auf bestimmte Teile beschränkt werden: Es können entweder der obere Teil (TOP), der untere Teil (BOTTOM) oder die beiden Enden der Verteilung (EXTREME) können selektiert werden. Beispiele: TABLE = a MEAN( b ) BY c SORT MEAN PANE 2 EXTREME 20; // jeweils 20 von jedem Ende der Verteilung TABLE = a BY c SORT ABSOLUTE TOP 80; // die obersten 80 |
Mit SLICE kann man eine Tabelle in der Y-Richtung in die erforderliche Anzahl von Einzeltabellen zerlegen. TABLE = a BY b SORT ABSOLUTE DESCEND SLICE 15; Hiermit wird eine Tabelle mit z.B. 55 Einzelitems in der Variablen b in 4 Seiten zerlegt. Falls eine Zerlegung eine Restseite mit nur einer Nennung ergeben würde, wird diese Nennung mit auf die Vorseite gedruckt. Eine Tabelle mit 61 Items würde also auf 4 und nicht auf 5 Seiten gedruckt. Mit LSLICE (kurz für LineSLICE) kann man eine Zerlegung einer langen Tabelle nach jeweils n Labelzeilen verlangen. |
|
RANGE |
Mit dem Schlüsselwort RANGE können beliebige Bereiche angefordert und so eine Tabelle mit sehr vielen Ausprägungen zerlegt werden. Zum Beispiel: TABLE = a BY b SORT ABSOLUTE DESCEND RANGE 1 20; |