HTML-Charts

<< Click to Display Table of Contents >>

Navigation:  Daten und Datensatz > Output aufbereiteter Daten > Grafische Darstellung >

HTML-Charts

HTMLChart

Syntax:

HTMLCHART <options> = <cells>;

<options> ::= [         TITLE <string> | FORM <form> | OPTION STACKED 
 | LINETENSION  <number> | HTMLCHARTWIDTH = <number>; 
 | WIDTH <number> | CELLELEMENT <cellelement> 
 | LEGENDPOSITION  [ LEFT | RIGHT | TOP | BOTTOM ] ] [ INVERSE ] 
<cells>   ::= [ | ROWS <rows> ] [ | COLUMNS <columns> ]

HTMLCHART erstellt im Anschluss an ein TABLE-Statement (mit angeforderter HTML-Ausgabe via HTML = [ <filename> | "" ];) eine grafische Darstellung in HTML-Format. 

TITLE ist ein String ohne Zeilenumbruch. Ist keine TITLE angegeben, bleibt der Platz leer.

Als FORM muss eine der folgenden Parameter angegeben werden: BARS, COLUMNS, PIE, DOUGHNUT oder LINES.

Die OPTION STACKED hat nur bei BARS, COLUMNS und LINES eine Funktion.

LINETENSION steuert die Linienspannung und wird nur bei FORM LINES ausgewertet. Ein Wert von 0 erzeugt gerade Verbindungslinien zwischen Datenpunkten. Sinnvolle Werte dürften zwischen 0 und 0.5 liegen. Default: 0.08.

Formal werden auch Werte > 1 akzeptiert. LINETENSION 5 z.b. erzeugt sehr hübsche Linienknäuel.

Mit HTMLCHARTWIDTH legt man die Standardbreite für alle in der Folge definierten HTMLCHARTs in Pixels fest. WIDTH gibt die Breite für das akuelle Chart in Pixel an. Default, für beide: 500.

CELLELEMENT kann einen speziellen Inhalt aus Zellen mit mehreren CELLELEMENTS auswählen. Bei Tabellen, deren Zellen nur ein CELLELEMENT enthalten, kann diese Angabe entfallen, es wird dann der Inhalt der Zelle verwendet. Das angegebene CELLELEMENT muss in den CELLELEMENTS der Tabelle enthalten sein.

LEGENDPOSITION gibt die Platzierung der Legende im Chart an. Voreingestellt ist TOP, wenn nichts angegeben ist.

Ist INVERSE angegeben, wird die Tabelle "invertiert" interpretiert.

Die abzubildenen Zellenbereiche werden unter Angabe der Spalten und Zeilen definiert. COLUMNS und ROWS können in der üblichen Form angegeben werden, entweder als POSITION oder als  kombination aus Variablennummer und Code in der Form <varno>/<code>. Beide Formen können gemischt auftreten, z.B. ROWS POSITION 1 1/65002. - das bedeutet: nimm die erste Zeile der Tabelle und weiterhin die Zeile mit dem Code 65002 (der erste  Overcode) der ersten Variablen. Außerdem kann man die inhalte von Totalzeilen bzw. -spalten mit TOTALROW und TOTALCOLUMN ansprechen, z.B. | COLUMNS TOTALCOLUMN.

Beachte: Die aus COLUMNS und ROWS hervorgehende rechteckige Datenmatrix darf bei FORM PIE oder DOUGHNUT nur eine einzelne Zeile oder Spalte enthalten. diese Formen können keine mehrdimensionalen Matrizen abbilden.

Beispiel:

HTMLCHART

TITLE "alle zellen ohne overcodes, absolute" 

FORM COLUMNS

OPTION STACKED

CELLELEMENT ABSOLUTE

| COLUMNS 2/1:5 3/1:5

| ROWS POSITION 1:5

;


Technische Voraussetzung

Die Charts in der GESStabs HTML-Ausgabe beruhen auf der externen Bibliothek 'Charts.min.js'. Diese kann über die URL https://cdn.jsdelivr.net/npm/chart.js@2.8.0 im Internet eingebunden werden. Dies ist bislang das Standard-Verhalten. Das hat natürlich zur Folge, dass die Charts nur dann gerendert werden können, wenn diese Bibliothek erreichbar ist. Sie werden in diesem Modus nicht dargestellt, wenn ein Rechner nicht mit dem Internet verbunden ist oder Firewall-Einstellungen diesen Zugriff untersagen.

Alternativ hierzu kann eine lokale Kopie dieser Bibliothek eingebunden werden. Dies geschieht immer dann, wenn diese Bibliothek für GESStabs greifbar ist. Entweder liegt sie bereits im Ausgabeverzeichnis der HTML-Datei, oder sie kann von GESStabs dorthin kopiert werden. Hierfür sollte Chart.min.js im selben Verzeichnis liegen wie die AFM-Dateien für die Fontmetriken (GAFM). Ist diese Datei dort vorhanden, wird eine Kopie ins Ausgabeverzeichnis transferiert. Wenn also absehbar ist, dass die HTML-Tabellen mit Charts in Umgebungen darstellbar sein sollen, wo es keinen Zugriff aufs Internet gibt, sollte man diese ca. 160kb große Datei ins AFM-Verzeichnis kopieren.