LazReport Tutorial/de

From Lazarus wiki
Jump to navigationJump to search

Einleitung

Dieses Tutorial soll die Verwendung des LazReport Packages anhand einiger Beispiele demonstrieren. Für die Beispiele verwende ich die Einstellungen aus dem Tutorial zu SQLdb (SQLdb Komponenten und Firebird Datenbank). Grundsätzlich läßt sich jede von Lazarus unterstützte Datenbank verwenden.

Beispiel 1

Öffnen sie zunächst das im SQLdb Tutorial erstellte Projekt. Alternativ erstellen sie ein neues Projekt mit einem Datenbankzugriff (Lesezugriff reicht aus). Von der Seite 'LazReport' in der Komponentenpalette legen sie eine TfrReport und eine TfrDBDataSet Komponente auf ihrem Formular ab. Die erste Komponente ist die eigentliche Reporting-Komponente. Die zweite Komponente wird für die Verbindung zur Datenbank benötigt. Grundsätzlich kann man die Verbindung auch ohne diese Komponente herstellen. Das Entwerfen des Reports wird damit aber erleichtert. Setzen sie die 'DataSet' Eigenschaft von frDBDataSet1 auf SQLQuery1 und die 'DataSet' Eigenschaft von frReport1 auf frDBDataSet1.

Einen Report entwerfen

Bevor man einen Report anzeigen oder ausdrucken kann, muß man zunächst festlegen, welche Daten der Report beeinhalten soll. Da wir für das Einbinden von Datenbankfeldern eine bestehende Verbindung zur Datenbank benötigen, geben sie eine einfache Abfrage in die 'SQL' Eigenschaft von SQLQuery1 ein, z.B. 'select * from CUSTOMER'. Setzen sie anschließend die 'Active' Eigenschaft auf True. Bei Erfolg werden jetzt im verbundenen DBGrid1 die gewünschten Daten angezeigt.

Zur Entwicklungszeit erreicht man den Designmodus von Laz Report am einfachsten über das Kontextmenü der Reportkomponente. Klicken sie mit der rechten Maustaste auf die frReport1 Komponente. In dem erscheinenden Kontextmenü wählen sie den obersten Eintrag - Report entwerfen. Daraufhin öffnet sich ein Fenster mit dem Designer von LazReport.

Die Startseite des LazReport Designers

Wenn man in einem Report mehrere Spalten nebeneinander darstellen möchte, dann ist eine Umstellung auf das Querformat zu empfehlen, da man so mehr Platz in der Breite zur Verfügung hat. Im Menü des Designers geht man dazu auf Datei -> Seitenoptionen. An dieser Stelle kann man auch das Papierformat ändern (in der Regel ist A4 voreingestellt). Nach einem Klick auf OK wird unser Arbeitsblatt jetzt im Querformat angezeigt.

LazReport basiert auf FreeReport (Version 2.32). Damit übernimmt LazReport auch Art und Weise der Reporterstellung mittels Bändern. Ein Band kann verschiedene Funktionen erfüllen. Die zur Verfügung stehenden Funktionen erhält man, wenn man ein neues Band einfügen will. Klicken sie dazu in der Symbolleiste am linken Rand auf das zweite Symbol von oben ('Band einfügen'). Wenn sie jetzt die Maus auf unser Arbeitsblatt bewegen erscheint ein Rechteck, welches von gestrichelten Linien begrenzt ist. Dieses stellt das einzufügende Band dar. Mit der Maus läßt sich die Position des Bandes ändern. Wenn die gewünschte Position erreicht ist, kann das Band mit einem Mausklick fixiert werden. Dabei ist nur die vertikale Ausrichtung von Bedeutung. Da sich ein Band immer über die gesamte Seitenbreite erstreckt, ist die horizontale Ausrichtung belanglos. Für unser Beispiel platzieren wird das Band am oberen Seitenrand. Jetzt erscheint ein Auswahldialog, in dem der Bandtyp gewählt werden kann.

Die zur Verfügung stehenden Bandtypen

Wir entscheiden uns für 'Report title'. Dieses Band wird einmal am Beginn des Reports gedruckt. Da es nur einmal pro Report zur Verfügung steht, kann es beim Hinzufügen eines weiteren Bandes nicht mehr als Bandtyp gewählt werden. Ohne Inhalte macht ein Band natürlich wenig Sinn. Also fügen wir ein Textfeld hinzu. Dazu wählen wir in der Symbolleiste am linken Rand das oberste Symbol ('Rechteckobjekt einfügen') und platzieren das Feld irgendwo in der Mitte des Bandes. Daraufhin öffnet sich ein Texteditor.

Der Texteditor im Designer

Im Editor tragen wir jetzt 'Kundenübersicht' ein und bestätigen mit OK. Wie man jetzt sieht, ist der Text etwas zu lang für das Feld. Kein Problem, denn die Größe des Feldes läßt sich einfach ändern. Bewegen sie die Maus an den rechten Rand des Feldes bis sich der Cursor verändert und ziehen sie dann den Rand nach rechts, bis der komplette Inhalt angezeigt wird. Ein Feld kann ruhig etwas größer sein als unbedingt erforderlich. Solange man für das Feld keine andere Hintergrundfarbe wählt, wird es im fertigen Report nicht weiter auffallen. Ist das Feld dagegen zu klein, wird der Inhalt abgschnitten.

Den meisten Menschen fällt es schwer, mit dem Augenmaß ein Element genau nach Wunsch zu platzieren. LazReport enthält daher in der Symbolleiste am rechten Rand einige Befehle, um das gewählte Element genau auszurichten. Mit dem dritten Symbol von oben ('Waagerecht im Fenster zentrieren') erreicht man etwa eine waagerechte Zentrierung des Elements. Mit den Symbolleisten am oberen Rand läßt sich der Text noch formatieren (Schriftart, Schriftgöße, Schriftfarbe etc.) Wenn nach der Wahl einer größeren Schriftart (was für einen Reporttitel nicht ganz unüblich ist) ein Teil des Textes abgeschnitten wird, dann muß man das Textfeld entsprechend vergrößern. Eventuell muß man dann auch das Band etwas vergrößern.

In einem Textfeld kann man aber mehr als nur einfachen Text eingeben. Legen sie dazu ein weiteres Textfeld auf dem Band ab (z.B. am rechten Rand). Geben sie jetzt den Text 'Stand: ' ein. Klicken sie dann auf die Schaltfläche 'Variable'. Es erscheint ein Auswahldialog mit den zur Verfügung stehenden Variablen. Wählen sie hier 'Date'. Mit einem Doppelklick wird die Variable an der aktuellen Position im Texteditor eingefügt. Bei ihnen sollte jetzt 'Stand: [Date]' stehen. Klicken sie auf 'OK'. Im Designer wird jetzt die Variable angezeigt. Wird der Report ausgeführt, dann wird die Variable durch das aktuelle Datum ersetzt. Für die Gestaltung kann sich jetzt noch ein kleines Problem ergeben, wenn der Inhalt einer Variablen länger ist als der Name der Variablen. Wenn das Textfeld zu klein ist, wird ein Teil des Inhalts abgeschnitten. Um dies zu kontrollieren (und das Textfeld ggf. anzupassen) verwenden wir die Vorschau (Datei -> Vorschau).

Das Vorschau-Fenster mit dem bisher eingegebenden Inhalt

Da wir bislang nur ein Band mit dem Reporttitel eingegeben haben, ist in der Vorschau jetzt noch nicht allzu viel zu sehen. Die Vorschau läßt sich wie ein normales Fenster mit einem Mausklick rechts oben schließen.

Hauptzweck eines Reports ist natürlich die Anzeige von Informationen aus einer Datenbank. Wenn man möchte, kann man jetzt weitere Bänder in den Report einfügen und darin die entsprechenden Felder platzieren. LazReport bietet jedoch auch eine komfortablere Möglichkeit. Gehen sie im Menü des Designers auf Werkzeuge -> Werkzeuge -> Datenbankfelder einfügen.