Syntax

<< Click to Display Table of Contents >>

Navigation:  Datenauswertung > Kreuztabelle >

Syntax

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.

Tabellenoptionen (Taboptions)

TabOptions stehen nach dem TABLE-Keyword und vor dem Gleichheitszeichen.

Add

ADD ist das Schlagwort für im eigenen Kapitel behandelte zusammengesetzte Tabellen.

Name 

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.

FrameElements

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

SORT AS

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();

:DESCRIPTION
 
 

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
 

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:
POSITION: Sortieren in der Reihenfolge der Labels im VALUELABEL-Statement
ALPHA: Sortieren alphabetisch nach dem Labeltext  
CODE: Sortieren nach dem Code der Labels
CELLELEMENT: Sortieren nach dem Wert der in der Zelle enthaltenen Zellelemente

Siehe auch Tabellenoption SORT für eine detaillierte Beschreibung.

TOP
BOTTOM
EXTREME

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

SLICE
LSLICE

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;