Kreuztabellen (Cross-tab Objekt)
Dieser Art des Report hat eine Tabellenstruktur, d.h. er besteht aus Zeilen und Spalten, wobei man nicht genau weiß wieviele Zeilen und Spalten enthalten sein werden. Deswegen wächst der Report nicht nur nach unten, wie die schon betrachteten Reporttypen, sondern auch zur Seite. Ein typisches Beispiel eines solchen Reportes sieht so aus:
Schauen wir uns die Elemente der Tabelle an:
In der Grafik sehen wir eine Tabelle mit zwei Zeilen und vier Spalten. Hier stellen a und b, die Zeilenbezeichnungen, 1,2,3,4 die Spaltenbezeichnungen und a1...a4, b1...b4 usw. die einzelnen Zellen dar. Um solch einen Report erstellen zu können benötigen wir nur einen Datensatz (die Anfrage oder Tabelle), welcher drei Felder und folgende Daten enthält:
a 1 a1
a 2 a2
a 3 a3
a 4 a4
b 1 b1
b 2 b2
b 3 b3
b 4 b4
Wie man sieht, enthält das erste Feld die Zeilennummer, das zweite die Spaltennummer und das dritte den Inhalt der Überkreuzung (Zeilen-, und Spaltennummer). Beim Erstellen des Reports konstruiert FastReport die Tabelle im Speicher und füllt diese mit Daten. Sollten die eingegebenen Zeilen-, Spaltennummern nicht vorhanden sein, so wird die Tabelle dynamisch vergrößert.
Die Spalten können mehr als nur eine Ebene haben. Betrachten wir folgendes Beispiel:
Hier besteht die Spaltennummer (Index) aus zwei Ebenen. Dieser Report benötigt folgende Daten:
a 10 1 a10.1
a 10 2 a10.2
a 20 1 a20.1
a 20 2 a20.2
b 10 1 b10.1
b 10 2 b10.2
b 20 1 b20.1
b 20 2 b20.2
Hier enthält das erste Feld wie vorhin die Zeilenbezeichnung, das zweite und dritte Feld den Spaltenindex. Das letzte Feld enhält den Inhalt der Zellen. Um zu verstehen wie FastReport eine Tabelle mit komplexen Spaltenbezeichnungen erstellt, betrachten wir folgende Grafik:
Unsere Tabelle sah vor dem Bearbeiten ungefähr so aus. Während der Bearbeitung verbindet FastReport die Spaltenköpfe und mit den Werten der entsprechenden Ebene.
Das folgende Element der Tabelle zeigt Zwischenergebnisse und Endergebnisse an, wie die folgende Grafik zeigt:
Dieser Report wird mit denselben Datenerstellt wie der vorhergehende. Die grauen Spalten in der Grafik werden automatisch berechnet.