Masterdaten einfügen
Als nächster Schritt wird mit dem Symbol „Band einfügen“ das Band MasterData gewählt. (Masterdaten) Jedem Masterband muss ein Datenbestand (DataSet) zugeordnet sein.
Geschieht das nicht, würden in der Berichtsvorschau keine Daten angezeigt werden.
Aus diesem Grund öffnet FastReport schon beim Einfügen eines Masterbandes das nebenstehende Fenster und fordert zur Wahl eines Datenbestandes auf. In der Regel wird, so wie jetzt auch, nur eine Möglichkeit, hier der Datenbestand „mD“, angeboten. Wenn in dem TabReiter Data mehrere Datenbestände definiert wurden, würde die hier auch alle angeboten werden.
In dem Masterband sollen die Felder „SchuelerNachname“ und „SchuelerVorname“ eingetragen werden. Das Vorgehen entspricht den Eintragungen in dem Band PageHeader und sollte dann zu diesem Aussehen der Arbeitsfläche führen:
Die Berichtsvorschau (Klick links oben auf Blatt-Lupe-Symbol) sollte nun zu solch einer Vorschau führen, die natürlich die Namen aus Ihrem Datenbestand enthalten sollte:
Unter der Voraussetzung, dass man zu Beginn der Berichtserstellung Testdaten aus mehreren Gruppen ausgewählt hatte, würde dieser Bericht nun fortlaufend alle Schüler auflisten und scheinbar zufällig auf einer neuen Seite auch einen neuen Gruppennamen anzeigen, was bestimmt nicht erwünscht ist.
Diesem Bericht fehlt die Steuerung, dass er eine neue Klasse auch mit einer neuen Seite beginnen soll. Diese Steuerung kann man mit Hilfe des Bandes Gruppenkopf (GroupHeader) erreichen.
Fügt man das Band Gruppenkopf (GroupHeader) ein, so öffnet sich automatisch ein neues Fenster „Gruppe“, mit dessen Hilfe man den Bericht so konfigurieren kann, dass eine neue Gruppe mit einer neuen Seite beginnt.
Dieses erreicht man dadurch, dass man in dem Bereich „Datenfeld“ den Eintrag „mD“ belässt und in der rechten Auswahlliste das Feld „GruppeBezeichnung“ wählt.
Nun kann man unter „Optionen“ einen Haken vor „Neue Seite beginnen“ setzen und diesen Dialog mit OK beenden.
Das sollte dann in der Arbeitsfläche zu diesem Ergebnis führen:
Die Vorschau sollte jetzt auf jeder Seite nur noch die Schülernamen zeigen, die zu einer Gruppe gehören.
Für eine „saubere“ Berichtserstellung sollte man sich angewöhnen, Objekte, deren Inhalte von der aktuellen Gruppe abhängig sind, immer in dem Gruppenkopf (GroupHeader) zu platzieren.
Das bedeutet in diesem Fall, das Feld [mD.“GruppeBezeichnung“] und somit auch der vorangestellte fixe Text Klassenliste muss in den GroupHeader umziehen. Dies erreicht man, indem man auf der Arbeitsfläche diese Objekte mit der Maus „anfässt“, nach unten zieht und wieder „loslässt“. Nach dieser Aktion kann/sollte der PageHeader wieder auf die ursprüngliche Höhe reduziert werden.
Das Ergebnis sieht dann so aus:
Ein weiteres Band; dass in einem Report eingefügt werden kann, ist der Seitenfuß (PageFooter). Dieses Band sorgt dafür, dass die in ihm enthaltenen Felder oder Eintragungen im Seitenfuß einer jeden oder der letzten Seite erscheint. Mit der rechten Maustaste können die entprechenden Optionen gesetzt werden.
Zu jedem Objekt zeigt der Reportbaum die gesetzten Eigenschaften und die optionalen Möglichkeiten:
Eigenschaften Eigenschaften von SchuelerName
von
MasterData
Mit dem Zeichnen-Werkzeug können dann Linien gesetzt werden, wie hier im MasterData-Band gezeigt.
Das Zusammenfassen von Feldern
Die Felder „SchuelerNachname“ und „SchuelerVorname“ sind aktuell so im MasterData-Band plaziert, dass jedes Feld für sich eine feste Breite einnimmt. Häufig ist es aber erwünscht oder platzmäßig ökonomisch, einzelne Inhalte gemeinsam in einem Feld zu platzieren. Will man dieses realisieren, erstellt man ein Textfeld und fügt in diese Feld die Variable „SchuelerNachname“ ein.
Mit einem Doppelklick auf dieses Feld wird das Bearbeitungsfenster noch einmal geöffnet geöffnet. Nun wählt man aus der Datenbank das Feld „SchuelerVorname“ und legt es mit einem Doppelklick in das Fenster „Ausdruck“. Hinter SchuelerName kommt ein „,“ und ein Leerzeichen und dann erhält man das neben stehende Bild:
Nun erscheinen in der Vorschau der Nach- und der Vorname durch ein Komma und Leerzeichen voneinander getrennt platzsparend in einem Feld. Das untenstehende Bild zeigt einen direkten Vergleich beider Varianten: