Base

Kapitel 6
Berichte

Dokumentationen zu LibreOffice unter de.libreoffice.org

Copyright
Dieses Dokument unterliegt dem Copyright © 2012. Die Beitragenden sind unten aufgeführt. Sie
dürfen dieses Dokument unter den Bedingungen der GNU General Public License (http://www.gnu.org/licenses/gpl.html), Version 3 oder höher, oder der Creative Commons Attribution License(http://creativecommons.org/licenses/by/3.0/), Version 3.0 oder höher, verändern und/oder weitergeben.
Warennamen werden ohne Gewährleistung der freien Verwendbarkeit benutzt.
Fast alle Hardware- und Softwarebezeichnungen und weitere Stichworte und sonstige Angaben,
die in diesem Buch verwendet werden, sind als eingetragene Marken geschützt.
Da es nicht möglich ist, in allen Fällen zeitnah zu ermitteln, ob ein Markenschutz besteht, wird das
Symbol (R) in diesem Buch nicht verwendet.

Mitwirkende/Autoren
Robert Großkopf

Jost Lange

Jochen Schiffers

Michael Niedermair

Rückmeldung (Feedback)Kommentare oder Vorschläge zu diesem Dokument können Sie in deutscher Sprache an die
Adresse discuss@de.libreoffice.org senden.

Vorsicht

Alles, was an eine Mailingliste geschickt wird, inklusive der E-Mail-Adresse undanderer persönlicher Daten, die die E-Mail enthält, wird öffentlich archiviert und kannnicht gelöscht werden. Also, schreiben Sie mit Bedacht!

Datum der Veröffentlichung und Softwareversion
Veröffentlicht am 1.3.2013. Basierend auf der LibreOffice Version 4.0.

Anmerkung für Macintosh Nutzer
Einige Tastenbelegungen (Tastenkürzel) und Menüeinträge unterscheiden sich zwischen derMacintosh Version und denen für Windows- und Linux-Rechnern. Die unten stehende Tabelle gibt
Ihnen einige grundlegende Hinweise dazu. Eine ausführlichere Aufstellung dazu finden Sie in der
Hilfedatei des jeweiligen Moduls.

2

Windows/Linux

entspricht am Mac

EffektMenü-Auswahl Extras →Optionen

LibreOffice → EinstellungenZugriff auf die Programmoptionen

Rechts-Klick

Control+Klick
ControlÖffnen eines Kontextmenüs

Ctrl (Control)oder Strg (Steuerung)⌘ (Command)

Tastenkürzel in Verbindung mit anderen
TastenF5Shift+⌘
F5
Shift ⌘+F5

öffnet den Dokumentnavigator Dialog

F11

⌘+T
T

öffnet den Formatvorlagen Dialog

Berichte

Inhalt
Berichte mit dem Report-Designer ................................................................................................. 4
Die Benutzeroberfläche des Report-Designers .............................................................................. 4
Allgemeine Eigenschaften von Feldern ................................................................................... 12
Besondere Eigenschaften des grafischen Kontrollfeldes .................................................... 14
Diagramme im Bericht einbinden ........................................................................................ 15
Dateneigenschaften von Feldern ............................................................................................. 18
Funktionen im Report-Designer ................................................................................................... 19
Formeleingaben ...................................................................................................................... 19
Benutzerdefinierte Funktionen ................................................................................................. 26
Formeleingabe für ein Feld ...................................................................................................... 28
Bedingte Anzeige .................................................................................................................... 28
Bedingte Formatierung ............................................................................................................ 28

3

Berichte mit dem Report-Designer
Mit Hilfe von Berichten werden Daten so dargestellt, dass sie auch für Personen ohne Datenbankkenntnisse gut lesbar sind. Berichte können

•
•
•
•

Daten tabellarisch gut lesbar darstellen,
zu Daten Diagramme erstellen,
mit Hilfe von Daten Etikettendruck ermöglichen,
Serienbriefe wie z.B. Rechnungen, Mahnungen oder auch nur Bestätigungen über einen
Vereinsbeitritt oder -austritt erstellen

Um einen Bericht zu erstellen muss die Datenbankgrundlage des Berichtes gut vorbereitet sein.
Ein Bericht kann nicht, wie ein Formular, Unterberichte und damit zusätzliche Datenquellen aufnehmen. Ein Bericht kann auch nicht, wie im Formular, über Listenfelder andere Daten darstellen
als in der zugrundeliegenden Datenquelle vorhanden sind.
Am besten werden Berichte mit Abfragen vorbereitet. Dort sollten alle variablen Inhalte festgeschrieben werden. Es sollte aber, wenn in dem Bericht noch sortiert werden soll, auf jeden Falleine Abfrage erstellt werden, die das Sortieren zulässt. Dies bedeutet, dass Abfragen im direkten
SQL-Modus unter diesen Bedingungen vermieden werden müssen. Muss der Datenbestand überso eine Abfrage zur Verfügung gestellt werden, so lässt sich eine Sortierung erreichen, indem ausder Abfrage eine Ansicht erstellt wird. Diese Ansicht ist in der grafischen Benutzeroberfläche vonBase immer sortierbar und filterbar.

Vorsicht

Der Report-Designer ist beim Editieren eines Berichtes mit laufendem Abspeichernzu begleiten. Dazu zählt nicht nur das Abspeichern im Report-Designer selbst nachjedem wichtigen Arbeitsschritt, sondern auch das Abspeichern der gesamten Datenbank.
Je nach Version von LibreOffice kann es beim Editieren auch zu plötzlichen Abstürzen des Report-Builders kommen.
Die Funktionsweise fertiger Berichte ist davon nicht betroffen – auch wenn diese
Berichte unter einer anderen Version erstellt wurden, wo eben z.B. das oben
genannte Verhalten nicht auftaucht.
Neben dem Report-Designer existiert auch in LibreOffice Base weiterhin ein Assistent zur Berichtserstellung mittels eines Serienbriefverfahrens. Dieser Assistent ist
allerdings nicht zugänglich, sobald der Report-Designer installiert wurde.

HinweisDer Assistent ist weitgehend selbsterklärend. Er produziert schnell übersichtliche
Berichte in vorgefertigten Designs. Seine Berichte sind rein tabellarisch angelegt.
Da mit dem Report-Designer Berichte weiter ausgestaltet werden können behandelt
dieses Kapitel nur diese Berichtsvariante.

Die Benutzeroberfläche des Report-DesignersÜber Berichte → Bericht in der Entwurfsansicht erstellen … wird der Report-Designer aufgerufen.

4

Berichte

Der Report-Designer startet in einer dreiteiligen Ansicht. Links ist die vorläufige Einteilung desBerichts in Seitenkopf, Detail und Seitenfuß zu sehen, in der Mitte befinden sich die entsprechenden Bereiche, die Inhalte des Berichtes aufnehmen und rechts werden die Eigenschaften desBerichtes angezeigt.
Gleichzeitig wird bereits der Dialog «Feld hinzufügen» angezeigt. Dieser Dialog entspricht dem
Dialog aus der Formularerstellung. Er erzeugt Felder mit der entsprechenden dazugehörigen Feldbezeichnung.
Ohne einen Inhalt aus der Datenbank lässt sich ein Bericht nicht sinnvoll nutzen. Deshalb wird zu
Beginn direkt der Reiter «Daten» angezeigt. Hier kann der Inhalt des Berichtes eingestellt werden,
im obigen Beispiel also die Tabelle «Ansicht_Bericht_Mahnung'. Solange SQL-Befehl analysieren
auf «Ja» steht kann der Bericht auch Sortierungen, Gruppierungen und Filterungen vornehmen.
Da bereits als Grundlage ein View gewählt wurde, kommt eine Filterung nicht zum Einsatz. Siewurde bereits in der der Ansicht zugrundeliegenden Abfrage vorgenommen.
Zwei Ausgabeformate für Berichte sind wählbar: «ODF Textdokument», also ein Writer-Dokumentoder «ODF Tabellendokument», also ein Calc-Dokument. Soll einfach nur eine tabellarische Übersicht ausgegeben werden, so ist das Calc-Dokument für die Berichtserstellung eindeutig vorzuziehen. Es ist wesentlich schneller erstellt und kann anschließend auch besser nachformatiert werden, da weniger Formatvorgaben berücksichtigt werden und Spalten einfach nach der erforderlichen der Breite anschließend entsprechend gezogen werden können.
Standardmäßig sucht der Report-Designer als Datenquelle die erste Tabelle der Datenbank aus.
So ist auf jeden Fall gewährleistet, dass zumindest ein Ausprobieren der Funktionen möglich ist.
Erst nach Auswahl der Datenquelle kann der Bericht mit Feldern beschickt werden.

Die Benutzeroberfläche des Report-Designers

5Schaltflächen inhaltliche Bearbeitung

Schaltflächen Elementausrichtung

Der Report-Designer stellt einige zusätzliche Schaltflächen zur Verfügung, so dass in der vorstehenden Tabelle noch einmal die Schaltflächen mit einer entsprechenden Beschriftung abgebildet
sind. Die Schaltflächen zur Elementausrichtung werden in diesem Kapitel nicht weiter beschrieben.
Sie sind hilfreich beim schnellen Anpassen von Feldern in einem Bereich des Report-Designers.
Prinzipiell geht dies alles aber auch über die direkte Bearbeitung der Eigenschaften des jeweiligen
Feldes.
Wie schon bei den Formularen ist es hilfreich, den entsprechenden Navigator bei Problemen aufzurufen. So kann es zum Beispiel sein, dass durch einen unvorsichtigen Klick beim Start desReport-Designers die Eigenschaften zu den Daten des Berichts verzweifelt gesucht werden.
Diese Daten können nur über den Bericht-Navigator erreicht werden:

6

Berichte

Ein Klick mit der linken Maustaste auf «Bericht» und die Eigenschaften des Berichtes sind wieder
erreichbar.
Der Navigator zeigt zu Beginn neben den sichtbaren Unterteilungen des Dokumentes (Seitenkopf,
Gruppen, Detail und Seitenfuß) noch die möglichen Inhalte von Funktionen an. Gruppen ordnen
z.B. alle anzumahnenden Medien einer Person zu, so dass nicht viele Einzelmahnungen erstellt
werden müssen. Detailbereiche zeigen die zu den Gruppen passenden Datensätze an. Funktionen
dienen z.B. zur Berechnung einer Summe einer Rechnung.
Um bei dem oben geöffneten Beispiel sinnvolle Ausgaben zu erhalten, muss der Inhalt der Ansicht
gruppiert wiedergegeben werden. Ein Leser soll gebündelt die Anmahnungen für alle seine entliehenen und überzogenen Medien erhalten.
Über Ansicht → Sortierung und Gruppierung bzw. den entsprechenden Button startet die Gruppierungsfunktion.

Die Benutzeroberfläche des Report-Designers

7

Abbildung 1: Sortierung und Gruppierung
Hier wurde nach dem Feld "Leser_Name" gruppiert und sortiert. In die obere Tabelle können untereinander mehrere Felder eingetragen werden. Soll z.B. zusätzlich nach dem "Leih_Datum" gruppiert und sortiert werden, so ist dies als zweite Zeile anzuwählen.
Direkt unter der Tabelle erscheinen verschiedene Gruppenaktionen zur Auswahl: Eine Verschiebung der Gruppe nach oben, eine Verschiebung nach unten oder die komplette Löschung derGruppe. Da für den geplanten Bericht nur eine Gruppierung notwendig ist, steht in Abbildung 1 nur
mit dem Symbol ganz rechts die Gruppenaktion «Löschung» zur Verfügung.
Die Eigenschaft «Sortierung» ist selbsterklärend. Bei der Erstellung des Eintrags hat sich im
Report-Designer auf der linken Seite sofort eine neue Einteilung gebildet. Neben der Feldbezeichnung "Leser_Name" steht dort noch «Kopf». Diese Einteilung nimmt also die Kopfzeile des Berichtes auf. In der Kopfzeile steht nachher z.B. der Name der Person, die eine Mahnung erhalten soll.
Ein Gruppenfuß ist hingegen bisher nicht vorhanden. Er könnte z.B. den zu zahlenden Betrag oderden Ort und das aktuelle Datum sowie einen Bereich für die Unterschrift der anmahnenden Person
enthalten.
Standardmäßig wird nach jedem Wert gruppiert. Ändert sich also "Leser_Name", so entsteht eineneue Gruppe. Alternativ kann hier nach dem Anfangsbuchstaben gruppiert werden. Das würdeaber bei einem Mahnverfahren alle Leser-Nachnamen mit gleichem Anfangsbuchstaben zusammenfassen in einer Gruppe. 'Schmidt', 'Schulze' und 'Schulte' erhielten so eine gemeinschaftliche
Mahnung. Eine wohl recht sinnlose Aktion an dieser Stelle für dieses Beispiel.

8

Berichte

Nur wenn nach Anfangsbuchstaben gruppiert wird, kann noch zusätzlich eingegeben werden, nachwie vielen Werten die nächste Gruppe beginnen soll. Denkbar wäre hier z.B. eine Gruppierung für
ein kleines Telefonbüchlein. Je nach Bekanntenkreis reicht da vielleicht eine Gruppierung nachjedem 2. Wert, also A und B in einer Gruppe, dann C und D usw.
Je nach Einstellung kann eine Gruppe entweder mit dem ersten Detail zusammen gehalten werden, oder, sofern möglich, als ganze Gruppe. Standardmäßig ist das Zusammenhalten auf «Nein»eingestellt. Für ein Mahnverfahren wird vermutlich sowieso die Gruppe so angeordnet, dass fürjede Person, die eine Mahnung erhalten soll, eine Seite ausgedruckt wird. Daher ist stattdessen ananderer Stelle zu wählen, dass nach der Gruppe jeweils ein Seitenumbruch erfolgt, bevor dernächste Wert abzuarbeiten ist.
Sind Gruppenkopf und gegebenenfalls Gruppenfuß ausgewählt, so erscheinen diese Elemente als
Teile des Berichtnavigators unter dem entsprechenden Feldnamen "Leser_Name". Zusätzlich wird
auch da wieder die Möglichkeit für Funktionen geboten, die sich nur auf diese Gruppe beschränken.

Das Hinzufügen der Felder läuft über die Funktion «Feld hinzufügen» wie im Formular. Allerdings
sind hier die Beschreibungen und die Inhaltsfelder nicht miteinander gruppiert. Beide können alsounabhängig voneinander verschoben, in der Größe beeinflusst und auf unterschiedliche Einteilungsebenen gezogen werden.
Das obige Bild zeigt den Berichtsentwurf für die Mahnung an. Im Seitenkopf ist fest die Überschrift
Libre-Office Bibliothek als Beschriftungsfeld eingesetzt. Hier könnte auch ein Briefkopf mit Logo
stehen, da auch die Einbindung von Grafiken möglich ist. Wenn die Ebene «Seitenkopf» heißt, so

Die Benutzeroberfläche des Report-Designers

9

bedeutet das nicht, dass darüber kein Rand existiert. Dieser wurde in den Seiteneinstellungenbereits festgelegt und liegt oberhalb des Seitenkopfes.
«Leser_Name Kopf» ist die Gruppierung und Sortierung, nach der die Daten zusammengefasst
werden sollen. In den Feldern, die später Daten aufnehmen, steht hellgrau die Bezeichnung derDatenfelder, die hier ausgelesen werden. So hat die dem Bericht zugrundeliegende Ansicht z.B.
ein Feld mit der Bezeichnung Adresse, in dem die komplette Adresse mit Straße und Ort für die
anzumahnende Person steht. Um dies in ein Feld zu setzen, sind Absatzumbrüchen in der Abfrage
notwendig. Mittels CHAR(13) wird in einer Abfrage ein Absatz erzeugt. Beispiel:
SELCET "Vorname"||' '||"Nachame"||CHAR(13)||"Strasse"||' '||"Nr"||CHAR13||"Postleitzahl"||''||"Ort" FROM "Vorname"Bei dem Feld «=TODAY()» handelt es sich um eine eingebaute Funktion, die das aktuelle Datum
an dieser Stelle einliest.
In «Leser_Name Kopf» sind außer der Anrede und weiteren Informationen auch die Spaltenköpfe
für die anschließende Tabellenansicht untergebracht. Sie sollen ja nur einmal auftauchen, auchwenn mehrere Medien aufgelistet werden.
In den Hintergrund dieser Spaltenköpfe wurde je ein graues Rechteck gelegt. Dieses Rechteck
sorgt gleichzeitig für eine entsprechende Umrandung.
Der Detailbereich wird so oft wiederholt, wie unterschiedliche Datensätze mit den gleichen Daten
existieren, die in "Leser_Name" stehen. Hier werden also alle Medien aufgelistet, die nicht rechtzeitig zurückgegeben wurden. Auch hier leigt im Hintergrund ein Rechteck, um die Inhalte zu
umranden. Das Rechteck selbst hat die Füllfarbe «weiß'.
Grundsätzlich gibt es in LO auch die Möglichkeit, horizontale und vertikale Linien
hinzu zu fügen. Im Design-Modus werden diese auch angezeigt. Beim Ausführen
des Berichtes erscheinen sie zur Zeit aber nicht.

HinweisDiese Linien haben außerdem den Nachteil, dass sie nur als Haarlinien ausgelegtsind. Sie lassen sich besser nachbilden, indem Rechtecke benutzt werden. Der Hintergrund der Rechtecke wird auf die Farbe Schwarz eingestellt, die Größe wird z.B.
mit einer Breite von 17 cm und einer Höhe von 0,03 cm festgelegt. Dann erscheint
eine horizontale Linie mit einer Dicke von 0,03 cm mit einer Länge von 17 cm.

Der «Leser_Name Fuß» schließt schließlich das Briefformat mit einer Grußformel und einem
Unterschriftsbereich ab. Der Fuß ist so definiert, dass anschließend ein Seitenumbruch nach dem
Bereich erfolgt. Außerdem ist gegenüber den Standardeinstellungen verändert so eingestellt, dass
der Bereich auf jeden Fall zusammen gehalten werden soll. Schließlich würde es reichlich merk-

10

Berichtewürdig aussehen, wenn bei vielen Mahnungen allein z.B. das Unterschriftsfeld auf die nächste
Seite verschoben würde.
Zusammenhalten bezieht sich hier immer auf den Seitenumbruch. Soll der Inhalt eines Datensatzes unabhängig vom Seitenumbruch zusammengehalten werden, so ist dies zur Zeit nur möglich,
indem der Datensatz nicht als «Detail» eingelesen wird, sondern als Grundlage für eine Gruppierung genommen wird. Der Bereich «Detail» wird leider auch dann aufgetrennt, wenn «Zusammenhalten – Ja» ausgewählt wird.
Für die Aufsummierung der Gebühren wurde eine interne Funktion benutzt.

So könnte dann eine entsprechende Mahnung aussehen. Im Detailbereich sind hier 5 Medien
angegeben, die der Leser entliehen hat. Im Gruppenfuß wird noch einmal die Summe für die
Anmahnung ausgegeben.

Die Benutzeroberfläche des Report-Designers

11

Hinweis

Berichte können auch für einzelne Datensätze über mehrere Seiten gehen. Die
Bereichsgröße sagt nichts über die Seitengröße aus. Allerdings kann die Ausdehnung des Bereiches Detail über mehr als eine Seite dazu führen, dass die Umbrüche nicht einwandfrei sind. Hier ist der Report-Designer in der Abstandsberechnung
noch fehlerhaft. Kommen Gruppierungsbereiche und grafische Elemente hinzu, so
entstehen teilweise nicht mehr durchschaubare Bereichsgrößen.
Einzelne Elemente lassen sich bisher nur mit Maus und Cursortasten an Positionen
verschieben, die außerhalb einer Seitengröße liegen. Die Eigenschaften des Elementes geben hingegen immer die gleiche maximale Entfernung von der Oberkante
des Bereiches an, die gerade noch auf der ersten Seite liegt.

Allgemeine Eigenschaften von Feldern
Zur Darstellung von Daten gibt es lediglich drei unterschiedliche Felder. Neben dem Textfeld, das
im Gegensatz zu seiner Namensgebung auch Zahlen und Formatierungen beherbergen kann, gibt
es noch ein Feld, das Bilder aus der Datenbank aufnehmen kann. Das Diagrammfeld stellt eine
Zusammenfassung von Daten dar.

Felder werden wie bei den Formularen mit Namen bezeichnet. Standardmäßig ist hier der Namegleich der Feldbezeichnung der zugrundeliegenden Datenbank.
Ein Feld kann unsichtbar geschaltet werden. Bei Feldern macht dies vielleicht wenig Sinn, bei
Gruppenkopf oder Gruppenfuß hingegen schon eher, da hier auch andere Funktionen der Gruppierung erfüllt sein sollen, der Gruppenkopf oder Gruppenfuß aber nicht unbedingt mit Inhalt versehen
ist.
Wenn «Wiederholende Werte anzeigen» deaktiviert wird, so wird die Anzeige ausgesetzt, wenndirekt davor das Feld mit einem gleichen Dateninhalt bestückt wurde. Dies funktioniert einwandfrei

12

Berichte

nur bei Datenfeldern, die einen Text beinhalten. Zahlenfelder oder Datumsfelder ignorieren die
Deaktivierung, Beschriftungsfelder werden bei einer Deaktivierung komplett ausgeblendet, auchwenn sie nur einmal vorkommen.
In dem Report-Designer kann die Ansicht bestimmter Inhalte durch einen «Ausdruck für bedingte
Anzeige» unterdrückt werden oder der Wert des Feldes als Grundlage für eine Formatierung vonSchrift und Hintergrund genommen werden. Mehr zu diesen Ausdrücken unter «'Bedingte
Anzeige».
Die Einstellung zum Mausradverhalten spielt keine Rolle, da ja die Felder in dem Bericht nicht editierbar sind. Sie scheint ein Überbleibsel aus dem Bereich der Formulare zu sein.
Die Funktion «Bei Gruppenwechsel anzeigen» konnte im Bericht ebenfalls nicht nachvollzogen
werden.
Ist der Hintergrund nicht als transparent definiert, so kann für das jeweilige Feld eine Hintergrundfarbe definiert werden.
Die weiteren Einträge beziehen sich auf den Inhalt innerhalb der gezogenen Felder. Dies sind im
Einzelnen die Schriftart (mit Schriftfarbe, Schriftdicke etc., siehe Abbildung 2), die Ausrichtung desSchriftzugs in dem Feld und die Formatierung mit dem entsprechenden Dialog «Zahlenformat»(siehe Abbildung 3).

Abbildung 2: Schrift - Zeicheneinstellungen

Die Benutzeroberfläche des Report-Designers

13

Abbildung 3: Formatierung von Zellen

Besondere Eigenschaften des grafischen Kontrollfeldes

Das grafische Kontrollfeld kann sowohl Grafiken von außerhalb der Datenbank darstellen als auch
Grafiken aus der Datenbank auslesen. Leider ist es zur Zeit nicht möglich, eine Grafik dauerhaft in
Base zu speichern, um z.B. ein Brieflogo einzulesen. Hierzu muss zwingend die Grafik in dem
14

Berichtegesuchten Pfad vorhanden sein, auch wenn die Auswahl anbietet, Bilder ohne Verknüpfung aufzunehmen und das erste Feld mit «Als Verknüpfung vorbereiten» auf eine entsprechende geplante
Funktionalität schließen lässt.
Alternativ dazu kann natürlich eine Grafik innerhalb der Datenbank selbst gespeichert werden und
so auch intern verfügbar belieben. Sie muss dann aber über die dem Bericht zugrundeliegende
Abfrage in einem der Felder zugänglich sein.
Um eine «externe Grafik» aufzunehmen, ist über den Auswahlbutton neben dem Feld «Grafik» die
Grafik zu laden. Um ein Datenbankfeld auszulesen muss im Register «Daten» das Feld angegeben werden.
Die Einstellung der Vertikalen Ausrichtung scheint im Entwurf nichts zu bewirken. Wird allerdings
der Bericht aufgerufen, so erscheint die Grafik entsprechend positioniert.
Beim Skalieren kann «Nein», «Seitenverhältnis beibehalten» und «Autom. Größe» gewählt werden. Dies entspricht den Einstellungen im Formular:•'Nein': Das Bild wird nicht an das Kontrollfeld angepasst. Ist das Bild zu groß, so wird ein
Ausschnitt des Bildes gezeigt. Das Bild wird nicht verzerrt.

•'Seitenverhältnis beibehalten': Das Bild wird in das Kontrollfeld eingepasst, aber nicht verzerrt dargestellt.

•'Automatische Größe': Das Bild wird der Größe des Kontrollfeldes angepasst und gegebenenfalls verzerrt dargestellt.

Diagramme im Bericht einbindenÜber das entsprechende Kontrollfeld oder Einfügen → Bericht-Steuerelemente → Diagramm
lässt sich ein Diagramm dem Bericht hinzufügen. Ein Diagramm wäre hier die einzige Möglichkeit,
in einem Bericht Daten wiederzugeben, die nicht aus der Quelle stammen, die im Bericht als
Datenquelle angegeben ist. Ein Diagramm ist in sofern ein Unterbericht des Berichtes, kann aberauch als eigenständiger Berichtsteil gesehen werden.

Das Diagramm wird aufgezogen. Bei den allgemeinen Eigenschaften zeigt sich neben bekannten
Feldern die Möglichkeit, einen Diagrammtypen auszuwählen (siehe entsprechende Typen in Calc).
Außerdem wird eine maximal für die Vorschau benutzte Anzahl an Datensätzen (Vorschau fürZeile(n)) eingestellt, die schon einmal eine Vorstellung davon geben kann, wie das Diagramm letztlich aussieht.
Diagramme können, ebenfalls wie in Calc, entsprechend formatiert werden (Doppelklick auf das
Diagramm. Hierzu siehe die Beschreibungen im Handbuch Calc.

Die Benutzeroberfläche des Report-Designers

15Das Diagramm wird im Bereich «Daten» mit den erforderlichen Datenfeldern verbunden. Hier, im
Beispielbericht «Medien-Hitliste», soll das Diagramm die Häufigkeit deutlich machen, mit derbestimmte Medien entliehen wurden. Dazu wurde ein SQL-Befehl über den Abfrageeditor wie bei
Listenfeldern erstellt und eingebunden. Die erste Spalte wird als die angesehen, mit der die Säulen
beschriftet werden sollen, die zweite Spalte liefert dann die Anzahl der Entleihvorgänge, die sich inden Höhen der Säulen widerspiegelt.
In dem obigen Beispiel zeigt das Diagramm erst einmal nur sehr wenig an, da die Test-Entleihvorgänge sich zum Zeitpunkt der SQL-Eingabe in Grenzen hielten.

In den Dateneigenschaften des Diagramms ist hier eine Abfrage eingebunden. Dieses Diagramm
aus der Mitgliederverwaltung einer Vereinsdatenbank wird über eine Abfrage erstellt, die im direkten SQL-Modus durchgeführt werden muss, da die grafische Benutzeroberfläche sie nicht versteht.
Deshalb ist auch unter «SQL-Befehl analysieren» «Nein» gewählt. Durch diese Vorwahl ist eine
Filterung und Sortierung mit den internen Werkzeugen des Report-Builders ausgeschlossen. Die
Felder sind also ausgegraut.
Wie bei Hauptformularen und Unterformularen werden jetzt Felder verknüpft. Im eigentlichen
Bericht werden tabellarisch die Altersverläufe für männliche und weibliche Mitglieder gelistet. Dabei
16

Berichte

ist nach den Geschlechtern gruppiert worden. In jeder Gruppe erscheint jetzt ein gesondertes Diagramm. Damit das Diagramm nur die zu dem Geschlecht gehörigen Daten übermittelt, sind die
Felder «Geschlecht» aus dem Bericht und «Geschlecht» aus dem Diagramm miteinander verbunden.
Die x-Achse des Diagramms wird automatisch mit der ersten Tabellenspalte der Datenquelle verbunden. Weitere Einstellungen zu dem Diagramm sind zu erreichen, wenn das gesamte Diagramm
mit einem Doppelklick markiert wird. Mit einem Klick der rechten Maustaste öffnet sich über dem
Diagramm, je nach markiertem Element, ein Kontextmenü. Hierin enthalten ist immer die Einstellmöglichkeit für die Datenbereiche:"Datenreihen in Spalten" ist ausgegraut, also nicht änderbar. Auch eine Änderung des Markierfeldes «Erste Spalte als Beschriftung» ist nicht möglich.
Der Reiter «Datenreihen» hingegen verbirgt ein paar Einstellungsmöglichkeiten, die die Standarddarstellung deutlich verändern können. Es werden dort alle Datenreihen angeboten, die neben derersten Spalte der Abfrage noch verfügbar sind. Datenreihen, die nicht angezeigt werden sollen,können hier entfernt werden.
Alle weiteren Einstellungen sind ähnlich den Möglichkeiten, die LO-Calc für die Einstellung vonDiagrammen bietet.

Die Benutzeroberfläche des Report-Designers

17

Hinweis

Die Darstellung von Diagrammen gelingt in LibreOffice zur Zeit nur den Versionen
3.3.* und 3.4.* . Ab Version 3.5.* ist LO nicht in der Lage, diese Berichte zu öffnen.
Eine Erstellung ist aber sehr wohl möglich.
Nicht nur LibreOffice hat hiermit Probleme. Auch in den Versionen ab 3.3 von OpenOffice klappt die Darstellung nicht. OpenOffice öffnet zwar die Berichte – aber eben
einfach ohne die Diagramme.

Dateneigenschaften von Feldern

In den Eigenschaften zeigt sich hinter dem Reiter Daten standardmäßig nur das Feld der Datenbank, aus dem die Daten für die Felder des Berichtes ausgelesen werden. Allerdings stehen neben
dem Datenfeld-Typ «Feld» oder «Formel» noch die Typen «Funktion», «Zähler» und «Benutzerdefinierte Funktion» zur Verfügung.
Vorwählbar sind die Funktionen «Summe», «Minimum» und «Maximum». Ihr Geltungsbereich
bezieht sich entweder auf die aktuelle Gruppe oder auf den gesamten Bericht. Bereits diese Funktionen können zu Problemen führen, wenn ein Feld leer, also NULL, ist. In solchen Feldern, sofern
sie als Zahl formatiert sind, erscheint «N,aN», was wohl so viel wie «kein Zahlenwert» bedeuten
soll. Mit leeren Feldern wird keine Rechnung durchgeführt; das Ergebnis ist 0.
Solche Felder können zwar in der Ansicht durch die folgende Formel im Bereich «Daten» zur
Anzeige von 0-Werten umformatiert werden.
IF([Zahlenfeld];[Zahlenfeld];0)18

Berichte

Die Funktion rechnet aber mit dem tatsächlichen Wert, also mit dem Feld, das eben keinen Wert
besitzt. Da erscheint es dann einfacher, wenn gewünscht, die dem Bericht zugrundeliegende
Abfrage so zu formulieren, dass statt NULL in Zahlenfeldern '0' wiedergegeben wird.
Der «Zähler» zählt einfach nur die Datensätze, die entweder in einer Gruppe oder im ganzen
Bericht enthalten sind. Wird der Zähler in den Bereich Detail eingesetzt, so wird durch ihn jeder
Datensatz mit einer fortlaufenden Nummer versehen. Dabei kann die Nummerierung auch hier nur
die Gruppe oder sämtliche Datensätze des Berichts fortlaufend nummerieren.

Schließlich steht noch die detaillierte «Benutzerdefinierte Funktion» zur Verfügung. Es kann passieren, dass der Report-Designer diese Variante selbst wählt, wenn er zwar den Rechenschritt vorgegeben bekommt, aber die Datenquelle aus irgendeinem Grunde nicht richtig interpretieren kann.

Funktionen im Report-Designer
Der Report-Designer bietet sowohl bei den Daten als auch bei den Bedingungen für eine Anzeige
die Nutzung verschiedenen Funktionen an. Reichen die Funktionen nicht, so lassen sich mit einfachen Rechenschritten auch benutzerdefinierte Funktionen erstellen, die vor allem in Gruppenfüßen
als Zusammenfassungen Sinn machen.

Formeleingaben
Dem Report-Designer liegt der «Pentaho Report Designer» zugrunde. Ein kleiner Teil der Dokumentation ist unter
http://wiki.pentaho.com/display/Reporting/9.+Report+Designer+Formula+Expressions
zu finden.
Eine weitere Quelle sind die Spezifikationen nach «OpenFormular-Standard':
http://www.oasis-open.org/committees/download.php/16826/openformula-spec-20060221.html
Teilweise ist auch ein einfacher Blick in Richtung Calc sinnvoll, da dort eine deutsche Beschreibung zumindest einiger Formeln aus dem Report-Designer enthalten ist.

Funktionen im Report-Designer

19

Grundlegend gilt:
Formeleingaben starten mit einem Gleichheitszeichen=

Bezüge zu Datenfeldern werden in eckige Klam- [Feldbezeichnung]mer gesetzt["Diese Feldbezeichnung wäre in
Enthalten die Datenfelder Sonderzeichen, zu
denen auch Leertasten gehören, so ist die Feld- Anführungsstriche zu setzen"]bezeichnung außerdem noch in Anführungsstriche zu setzen
Texteingaben haben immer in doppelten Anfüh- "Texteingabe"
rungszeichen zu stehen
Folgende Operatoren sind möglich+, -,* (Multiplikation),/ (Division),% (dividiert vorherstehende Zahl durch 100),^ (Potenzierung mit der nachfolgenden Zahl),& (verbindet Texte miteinander),Folgende Beziehungsdefinitionen sind möglich= , <> , < , <= , > , >=Runde Klammerungen sind ebenfalls möglich( )Standardfehlermeldung

NA (vermutlich not available, in Calc in NV übersetzt – nicht verfügbar)

Fehlermeldung beim Bericht, wenn ein leeres
Feld auftaucht und als Zahl definiert ist.

N,aN (erscheint, wenn kein Wert enthalten

ist – vielleicht not a number?)

Sämtliche Formeleingaben wirken sich nur auf den aktuell eingelesenen Datensatz aus. Beziehungen zu vorhergehenden oder nachfolgenden Datensätzen sind also nicht möglich.

Neben dem Datenfeld erscheint ein Button mit 3 Punkten, sofern eine Formeleingabe möglich ist.
Dieser Button startet den Funktionsassistenten.

20

Berichte

Im Gegensatz zu den Funktionen in Calc sind hier die Funktionen nicht ins Deutsche übertragen.
Die Funktionen sind allerdings längst nicht so umfangreich wie die, die in Calc üblich sind. Viele
Funktionen haben allerdings ihre Entsprechung in Calc. Dort gibt der Assistent dann auch direkt
das Ergebnis der Funktion wieder.
Der Funktions-Assistent funktioniert nicht immer einwandfrei. So werden z.B. Texteingaben nicht
mit doppelten Anführungsstrichen übernommen. Nur Eingaben mit doppelten Anführungsstrichen
werden allerdings verarbeitet.
Die folgenden Funktionen stehen zur Verfügung: [ Funktion im Report-Builder / (Funktion
in Calc) ]Funktion

Beschreibung

Datums – und Zeitfunktionen
DATE(DATUM)

Erzeugt aus einer Zahlenangabe für das Jahr, den Monat und den
Tag ein gültiges Datum.

DATEDIF(TAGE | MONATE |JAHRE)

Gibt die Anzahl an Jahren, Monaten oder Tagen zwischen zwei
Datumswerten wieder.

DATEVALUE(DATWERT)

Wandelt eine amerikanische Datumseingabe in Textform (Anführungsstriche) in eine Datumsbeschreibung um. Die erzeugte amerikanische Variante kann durch Formatierungseinstellung umgewandelt werden.

DAY
(TAG)

Gibt den Tag des Monats eines angegebenen Datums wieder.
DAY([Datumsfeld])

Funktionen im Report-Designer

21

DAYS
(TAGE)

Gibt die Zahl der Tage zwischen zwei Datumseingaben wieder.

HOUR(STUNDE)

Gibt die Stunde einer angegebenen Zeit im Rahmen von 0 bis 23
wieder.
HOUR([DatumZeitFeld]) gibt die Stunde des Feldes wieder.

MINUTE(MINUTE)

Gibt die Minuten einer internen Zahl wieder.
MINUTE([Zeitfeld]) gibt den Minutenanteil der Zeit wieder.

MONTH(MONAT)

Gibt den Monat einer Datumseingabe als Zahl wieder.
MONTH([Datumsfeld])NOW(JETZT)

Gibt das aktuelle Datum und die aktuelle Zeit wieder.

SECOND(SEKUNDE)

Gibt die Sekunden einer internen Zahl wieder.
SECOND(NOW()) gibt den Sekundenanteil der Zeit beim Ausführen
des Berichts wieder.

TIME(ZEIT)

Zeigt die aktuelle Zeit an.

TIMEVALUE(ZEITWERT)

Wandelt die Texteingabe einer Zeit in eine Zeit für Berechnungen
um

TODAY
(HEUTE)

Gibt das aktuelle Datum wieder

WEEKDAY(WOCHENTAG)

Gibt den Wochentag einer Datumseingabe als Zahl wieder. Der Tag
mit der Nummer 1 ist der Sonntag.

YEAR(JAHR)

Gibt das Jahr einer Datumseingabe wieder.

Logische Funktionen
AND
(UND)

Gibt TRUE wieder, wenn alle Argumente TRUE sind

FALSE
(FALSCH)

Definiert den logischen Wert als FALSEIF(WENN)

Wenn eine Bedingung TRUE, dann diesen Wert, ansonsten einen
anderen Wert.

IFNA(ab LO 3.5)

NOT
(NICHT)

Kehrt den logischen Wert eines Argumentes um

OR(ODER)

Gibt TRUE zurück, wenn eine der Bedingungen TRUE ist.

TRUE
(WAHR)

Definiert den logischen Wert als TRUE

XOR

Nur wenn ein einziger Wert der Verknüpfung TRUE ist ist auch derlogische Wert TRUE.

Rundungsfunktionen
INT

22

Rundet zum nächsten Ganzzahlwert ab

Berichte

Mathematische Funktionen
ABS
(ABS)

Gibt den absoluten, nicht negativen Wert einer Zahl wieder.

ACOS(ARCCOS)

Berechnet den Arcuscosinus einer Zahl. - Werteingabe zwischen -1
und 1(ab LO 3.5)

ACOSH
(ARCCOSHYP)

Berechnet den Areacosinus (inverser hyperbolischer Cosinus) –Werteingabe >= 1
(ab LO 3.5)

ASIN
(ARCSIN)

Berechnet den Arcussinus einer Zahl. - Werteingabe zwischen -1
und 1(ab LO 3.5)

ATAN
(ARCTAN)

Berechnet den Arcustangens einer Zahl.
(ab LO 3.5)

ATAN2
(ARCTAN2)

Berechnet den Arcustangens einer x-Koordinaten und einer y-Koordinaten.
(ab LO 3.5)

AVERAGE(MITTELWERT)

Ermittelt den Mittelwert der angegebenen Werte. (taucht im Formularassistenten LO 3.3.4 doppelt auf)

AVERAGEA(MITTELWERTA)

Ermittelt den Mittelwert der angegebenen Werte. Text wird als 0
gewertet.
(ab LO 3.5)

COS
(COS)

Winkel im Bogenmaß, dessen Cosinus berechnet werden soll.
(ab LO 3.5)

EVEN
(GERADE)

Rundet eine positive Zahl zum nächsten geraden Integer auf, eine
negative Zahl zum nächsten geraden Integer ab.

EXP
(EXP)

Berechnet die Exponentialfunktion zur Basis 'e'(ab LO 3.5)

LN
(LN)

Berechnet den natürlichen Logarithmus einer Zahl.
(ab LO 3.5)

LOG10
(LOG10)

Berechnet den Logarithmus einer Zahl zur Basis '10'.
(ab LO 3.5)

MAX
(MAX)

Gibt den Maximalwert aus einer Reihe von Werten wieder.

MAXA(MAXA)

Gibt den Maximalwert aus einer Reihe wieder. Eventuell vorhandener Text wird als '0' gesetzt.

MIN
(MIN)

Gibt den Minimalwert aus einer Reihe von Werten wieder.

MINA(MINA)

Gibt den Minimalwert aus einer Reihe wieder. Eventuell vorhandener Text wird als '0' gesetzt.

MOD(REST)

Gibt den Rest einer Division nach Eingabe von Dividend und Divisor
wiederODD(UNGERADE)

Rundet eine positive Zahl zum nächsten ungeraden Integer auf,eine negative Zahl zum nächsten ungeraden Integer ab.

Funktionen im Report-Designer

23

PI
(PI)

Liefert den Wert der Zahl 'π'(ab LO 3.5)

POWER
(POTENZ)

Liefert aus Basis und Exponent die Potenz.
(ab LO 3.5)

SIN
(SIN)

Berechnet den Sinus einer Zahl.
(ab LO 3.5)

SQRT
(WURZEL)

Berechnet die Quadratwurzel einer Zahl.
(ab LO 3.5)

SUM
(SUMME)

Summiert eine Liste von Zahlenwerten

SUMA

Summiert eine Liste von Zahlenwerten. Text und Ja/Nein-Felder sinderlaubt. Leider endet diese Funktion (noch) mit Fehlermeldung.
(ab LO 3.5)

VAR
(VARIANZ)

Berechnet die Varianz, ausgehend von einer Stichprobe.
(ab LO 3.5)

Textfunktionen
EXACT(IDENTISCH)

Zeigt an, ob zwei Texte völlig gleich sind.

FIND(FINDEN)

Gibt die Position eines zu suchenden Textes in einem anderen Text
an.

LEFT
(LINKS)

Der Text wird von links aus in der angegebenen Zeichenzahl wiedergegeben.

LEN(LÄNGE)

Gibt die Anzahl an Zeichen wieder, die ein Text hat.

LOWER
(KLEIN)

Gibt den Text in Kleinbuchstaben wieder.

MESSAGE

Formatiert die Werte in dem angegebenen Ausgabeformat.
(ab LO 3.5)

MID
(TEIL)

Gibt Text ab einer Anfangsposition mit einer gegebenen Zeichenlänge wider.

REPLACE(ERSETZEN)In dem Text wird ein Teil durch einen anderen Text ersetzt. Die Startposition und die Länge des zu ersetzenden Textes wird eingegeben.

REPT(WIEDERHOLEN)

Wiederholt einen Text die angegebenen Male.

RIGHT(RECHTS)

Der Text wird von rechts aus in der angegebenen Zeichenzahl
widergegeben.

SUBSTITUTE(WECHSELN)

Ersetzt in einem vorgegebenen Text bestimmte Textteile durchandere Textteile. Zusätzlich kann angegeben werden, der wievielte
Textteil ersetzt werden soll.

T(T)

Gibt den Text wieder oder einen leeren Textwert, wenn es sich z.B.
um eine Zahl handelt.

TEXT(TEXT)

Konvertierung von Zahlen oder Uhrzeiten in Text.

24

BerichteTRIM(GLÄTTEN)

Entfernt führende Leerzeichen, Leerzeichen am Textende und reduziert mehrere Leerzeichen hintereinander im Text auf ein Leerzeichen.

UNICHAR(UNIZEICHEN)

Wandelt eine Unicode-Nummer in Dezimalschreibweise in ein Unicode-Zeichen um
196 wird zu 'Ä' ('Ä' hat den Hexadezimalwert 00C4, daraus wird bei
der Deziamlschreibweise 196 ohne führende Nullen)

UNICODE(UNICODE)

Wandelt eine Unicode-Zeichen in eine Unicode-Nummer in Dezimalschreibweise um'Ä' wird zu 196

UPPER(GROSS)

Gibt den Text in Großbuchstaben wieder.

URLENCODE

Wandelt einen vorgegebenen Text in einen Text um, der URLKonform ist. Wenn keine besonderer Code vorgegeben wurde, passiert dies nach ISO-8859-1.

Informationsfunktionen
CHOOSE(Wahl)

Zuerst wird ein Index angegeben, danach eine Liste von Werten,
aus der über den Index der entsprechende Wert ausgesucht wird.
CHOOSE(2;"Apfel";"Birne";"Banane") gibt Birne wieder.
CHOOSE([Altersstufenfeld];"Milch";"Cola";"Bier")
gibt je nach «Altersstufenfeld» wieder, welches Getränk möglich ist.

COUNT
(Anzahl)Nur die Felder werden gezählt, die eine Zahl oder einen Datumsbzw. Zeitwert enthalten.
COUNT([Zeit];[Nummer]) gibt 2 aus, wenn beide Felder
einen Wert enthalten, also nicht NULL sind, ansonsten 1 oderschließlich 0.

COUNTA(Anzahl2)

Berücksichtigt auch die Felder, die einen Text beinhalten. AuchNULL wird gezählt, ebenso boolsche Felder.

COUNTBLANK(ANZAHLLEEREZELLEN)

Zählt die leeren Felder in einem Bereich.

HASCHANGEDÜberprüft, ob mit ihrem Namen angegebene Spalte sich geändert
hat. Allerdings werden keine Spaltenangaben übernommen.

INDEX(INDEX)

Arbeitet mit Bereichen(ab LO 3.5)

ISBLANK(ISTLEER)

Prüft, ob das Feld NULL (leer) ist.

ISERR
(ISTFEHL)

Gibt TRUE zurück, wenn die Eingabe fehlerhaft ist, aber nicht vom
Typ NAISERR(1/0) ergibt TRUEISERROR(ISTFEHLER)

Wie ISERR, nur dass auch NA als Meldung TRUE ergibt.

ISEVEN(ISTGERADE)

Prüft, ob es sich um einen gerade Zahl handelt.

ISLOGICAL(ISTLOG)

Prüft, ob es sich um einen Ja/Nein-Wert handelt.
ISLOGICAL(TRUE()) oder ISLOGICAL(FALSE()) ergeben
TRUE, Textwerte wie ISLOGICAL("TRUE") ergeben FALSE.

Funktionen im Report-Designer

25

ISNA
(ISTNV)

Prüft, ob der Ausdruck vom Fehlertyp NA ist.

ISNONTEXT(ISTKTEXT)

Prüft, ob es sich bei dem Wert nicht um einen Text handelt.

ISNUMBER(ISTZAHL)

Prüft, ob es sich um eine Zahl handelt.
ISNUMBER(1) ergibt TRUE, ISNUMBER("1") ergibt FALSEISODD(ISTUNGERADE)

Prüft, ob es sich um eine ungerade Zahl handelt.

ISREF(ISTBEZUG)

Prüft, ob es sich um einen Bezug handelt.
ISREF([Feldname]) ergibt TRUE, ISREF(1) ergibt FALSE.

ISTEXT(ISTTEXT)

Prüft, ob es sich bei dem Wert um einen Text handelt.

NA
(NV)

Gibt den Fehlercode NA wieder.

VALUE(ab LO 3.5)

Benutzerdefiniert
CSVARRAY

Wandelt einen CSV-Text in ein Array um. (ab LO 3.5)

CSVTEXT

Wandelt ein Array in einen CSV-Text um. (ab LO 3.5)

NORMALIZEARRAY(ab LO 3.5)

NULL

Gibt NULL wieder

PARSEDATE

Wandelt Text in ein Datum um. Nutzt das SimpleDateFormat. Benötigt ein Datum als Text sowie die Beschreibung des Datumformates.
Beispiel: PARSEDATE("9.10.2012";"dd.MM.yyyy") ergibt die internverwertbare Zahl für das Datum. (ab LO 3.5)

Dokumentsinformationen
AUTHOR

Autor, wird ausgelesen aus Extras → Optionen → LibreOffice →Benutzerdaten. Der eigentliche Autor wird hier also nicht wiedergegeben, sondern der aktuelle Nutzer der Datenbank.

TITLE

Gibt den Titel des Berichts wieder.

Benutzerdefinierte Funktionen
Benutzerdefinierte Funktionen können z.B. dazu dienen, bestimmte Zwischenergebnisse nacheiner Gruppe von Datensätzen wieder zu geben. Im obigen Beispiel ist so etwas bei der Berechnung der Gebühr im Bereich «Leser_Name_Fuß» erstellt worden.

26

Berichte

Im Bericht-Navigator ist für die Gruppe «Leser_Name» eine Funktion verzeichnet. Durch
Rechtsklick auf Funktionen können zusätzliche Funktionen hier mit Namen definiert werden.
Die Funktion «SummeGebuehrLeser_Name» wird in den Eigenschaften angezeigt. Die Formel
führt eine Addition des Feldes «Gebuehr» mit dem in der Funktion selbst bereits gespeicherten
Wert durch. Der Anfangswert ergibt sich aus dem Wert des Feldes «Gebuehr» beim ersten Durchgang durch die Gruppe. Dieser Wert wird in der Funktion unter dem Funktionsnamen zwischengespeichert und in der Formel wieder benutzt, bis die Schleife beendet ist und der Gruppenfußgeschrieben wird.
«Unterberichte einbinden» scheint momentan keine Funktion zu haben, es sei denn, dass Diagramme als Unterberichte verstanden werden.
Ist für die Funktion «Vorausberechnung» aktiviert, so kann das Ergebnis auch im Gruppenkopf stehen. Ohne die Aktivierung steht im Gruppenkopf nur der entsprechende Wert des abgefragten ersten Feldes der Gruppe.
Selbstdefinierte Funktionen können auch auf selbstdefinierte Funktionen zurückgreifen. Dabei ist
dann aber zu beachten, dass die genutzten Funktionen vorher ausgeführt sein müssen. Die Vorausberechnung in dieser Funktion, die auf andere Funktionen zurückgreift, muss ausgeschaltet
sein.
[SummeZensurKlasse] / ([ZählerKlasse]+1)
bezieht sich auf die Gruppe «Klasse'. Der Inhalt des Feldes «Zensur» wird aufaddiert, die Anzahl
der Datensätze wird ermittelt. Die Summe aus Zensur wird durch die Anzahl der Datensätze dividiert. Damit die richtige Anzahl berücksichtigt wird muss, ebenso wie bei [ZählerKlasse], 1 addiert
werden. Damit wird dann der Durchschnitt berechnet.

Funktionen im Report-Designer27Formeleingabe für ein FeldÜber den Weg Daten → Datenfeld können Formeln eingegeben werden, die nur ein einziges Feld
im Bereich «Detail» betreffen.
IF([boolschesFeld];"ja";"nein")schreibt, dort eingegeben, statt WAHR und FALSCH einfach "ja" und "nein".
Es kann passieren, dass in einem Feld mit einer Formeleingabe grundsätzlich eine Zahl erscheint.
Bei Text ist das dann eine «0». Hier muss nachgebessert werden, indem für das Textfeld vom
Standardformat «Zahl» zum Format «Text» gewechselt wird.

Bedingte Anzeige

Gruppenköpfe, Gruppenfüße, Felder – in sämtlichen Untergliederungen befindet sich unter den allgemeinen Eigenschaften das Feld «Ausdruck für bedingte Anzeige'. Formeln, die in dieses Feldgeschrieben werden, beeinflussen den Inhalt eines Feldes oder gleich die Anzeige eines ganzen
Bereiches. Auch hier steht der Funktions-Assistent zur Verfügung.
[Feldbezeichnung]="true"
sorgt dafür, dass der Inhalt von Feldbezeichnung nur dann angezeigt wird, wenn er wahr ist.
Manche Formen der bedingten Anzeige erschließen sich nicht aus den angebotenen Eigenschaften. Soll z.B. eine Trennlinie nach dem 10. Platz einer Wettkampfliste eingezogen werden, so geht
dies nicht, indem der Grafik über die bedingte Anzeige mitgegeben wird
[Platz]=10
Dieser Befehl wirkt nicht auf die Grafik. Sie erscheint in dem Abschnitt Detail dann weiter nachjedem Datensatz.
Sicherer ist es, die bedingte Anzeige an einen Gruppenfuß statt an die Grafik zu binden, sofern
dieser nicht anderweitig benötigt wird. Die Linie wird im Gruppenfuß positioniert. Dann erscheint
die Linie auch tatsächlich nach dem 10. Platz, wenn sie wie oben formuliert wird. Dazu muss dannallerdings auch der Inhalt, der vorher im Abschnitt Detail angezeigt wurde, in den Gruppenkopf verlagert werden.

Bedingte Formatierung
Bei der bedingten Formatierung kann z.B. ein Kalender so formatiert werden, dass die Wochenenden besonders gekennzeichnet werden. Unter Format → bedingte Formatierung ist dann einzutragen
WEEKDAY([Datumsfeld])=1
sowie die entsprechende Formatierung für den Sonntag.

28

Berichte

Wird in der bedingten Formatierung «Ausdruck ist» gewählt, so kann eine Formel eingegeben werden. Wie auch in Calc üblich können mehrere Bedingungen formuliert werden, die nacheinander
abgearbeitet werden. Im obigen Beispiel wird so zuerst der Sonntag abgefragt und dann derSamstag. Zum Schluss könnte dann noch eine Abfrage nach dem Inhalt des Feldes kommen. So
könnte z.B. der Inhalt 'Urlaub' mit einer entsprechend anderen Formatierung angezeigt werden.

HinweisDer Report-Designer ist ein Addon. Tauchen anscheinend nicht behebbare Fehlerauf (Formel wird nicht umgesetzt, zu langer Text wird in als ein leeres Feld angezeigt...), so empfiehlt es sich manchmal, Teile des Berichts zu löschen oder einfach den
Bericht neu zu erstellen.

Funktionen im Report-Designer29