Daten-Organisierer
Datenbanken mit Rekall
Eingabemasken
Eine Eingabemaske, auch Form genannt, stellt die Daten einer oder mehrerer Tabellen übersichtlich dar, wobei immer nur ein Datensatz zur Zeit angezeigt wird. Man erstellt sie über den Karteireiter Forms im Hauptfenster, markiert den entsprechenden Server und klickt doppelt auf Create new form.
Zum Festlegen der Eigenschaften eines Formulars und seiner Elemente dienen Dialoge, die alle den gleichen, tabellarischen Aufbau haben. Links stehen die Eigenschaften (etwa Höhe und Breite des Forms oder die zugrundeliegende Tabelle), rechts die Werte. Um einen Eintrag zu bearbeiten, doppelklicken Sie die gewünschte Eigenschaft und editieren daraufhin den zugehörigen Wert.
Der erste Dialog bittet Sie, die Eigenschaften der Maske festzulegen. Die beiden wichtigsten Optionen sind Form caption, die Titelzeile des Forms, und Top-level block type: Hier bestimmen Sie, ob der Maske eine Tabelle (table), eine Abfrage (query) oder ein Menü (null) zugrunde liegt. Den Top-Level-Typ Menü wählen Sie, wenn Sie ein Formular erstellen, das ausschließlich Buttons zum Öffnen von anderen Formularen enthält. Entscheiden Sie sich für eine Tabelle, um den Inhalt der Tabelle artikel darzustellen (Abbildung 5). Ein Klick auf OK schließt das Fenster und macht Platz für den Query-Dialog, in dem Sie die Datenquelle für das Formular wählen.
Die wichtigsten Angaben sind hier Server name (für das Beispiel der Artikeldatenbank wählen Sie zeitschriften) und Table name, im Beispiel artikel. Das Feld Unique key wird automatisch mit dem Primärschlüssel der Tabelle gefüllt (Abbildung 6).
Nun fehlen noch Angaben zum Aussehen des Forms, die Sie im Block-Dialog eingeben: Höhe (Height), Breite (Width) und die Hintergrundfarbe (Background colour).
Endlich haben wir es in den Formulardesigner geschafft, mit dessen Hilfe Sie das Darstellungsfenster für die Daten gestalten. Die einzelnen Formularteile, Textfelder, Bezeichnungsfelder und Auswahllisten platzieren und bearbeiten Sie mit der Maus. Die Ecken eines markierten Feldes kennzeichnet Rekall blau (Abbildung 7).
Neue Textfelder erstellen Sie, indem Sie mit der rechten Maustaste auf den Hintergrund des Formulars klicken und New / Field aus dem Kontextmenü wählen. Sofort erscheint ein Dialog, in dem Sie das Aussehen des Eingabefeldes bestimmen. Am wichtigsten ist hier die Option Control name: Damit wählen Sie das Feld der Tabelle aus, das angezeigt werden soll. Die Eigenschaft Display Expression bestimmt, welcher Feldinhalt ausgegeben werden soll. Wenn Sie den Dialog mit OK schließen, erscheint das Textfeld auf der Arbeitsfläche des Dialogeditors. Die Größe des Feldes lässt sich auch nachträglich durch Ziehen an den blauen Quadraten an den Ecken des Textfeldes verändern. Sie erleichtern sich das Positionieren der einzelnen Elemente, wenn Sie die Form-Elemente am Raster ausrichten. Dazu klicken Sie auf das Symbol mit dem Raster und dem roten Häkchen in der Werkzeugleiste.
Nach und nach fügen Sie nun Textfelder für die Datenfelder und Auswahllisten für die Daten aus verknüpften Tabellen in das Formular ein. Die Beschriftung der Felder erfolgt mit Labels, die Sie über das Kontextmenü mit dem Befehl New / Label einfügen. Zum Speichern Ihrer Arbeit dient der Menüpunkt File / Save Document, während View / Data view in die Datenansicht umschaltet, die das Formular so anzeigt, wie Sie es später benutzen werden (Abbildung 8).
Mit Hilfe der Schaltflächen in der Werkzeugleiste können Sie sich nun von Datensatz zu Datensatz hangeln (Abbildung 9). Um auch ohne deren Hilfe in der Datenbank blättern zu können, ergänzen wir das Formular um Navigationsbuttons.
Zu diesem Zweck klicken Sie mit der rechten Maustaste auf den Hintergrund des Formulars und wählen New / Button aus dem Kontextmenü. Im Button-Dialog geben Sie den Namen des Knopfs, den Control Name, ein. Rekall kennt vier vordefinierte Namen: First, um zum ersten Datensatz zu gehen, Last, um zum letzten Datensatz zu gelangen und Next bzw. Previous, um einen Datensatz weiter bzw. zurück zu kommen. Das Feld Button text nimmt die Beschriftung des Knopfes auf, z. B. > für einen Next-Button. Schließlich geben Sie ins Feld On Click das Wort #Click ein. Dadurch erreichen Sie, dass das Programm auf einen Mausklick reagiert und eine eingebaute (oder selbstprogrammierte) Python-Funktion aufruft. Die fertigen Navigationsbuttons zeigt Abbildung 10.
Ähnliche Knöpfe lassen sich auch für andere Zwecke verwenden. So können Sie ein Formular entwerfen, das Buttons zum Aufrufen der verschiedenen Formulare des Projekts enthält (Abbildung 11). Im Unterschied zu den Navigationsbuttons enthalten sie als Control Name den Namen des jeweils aufzurufenden Forms und als "On Click"-Ereignis #GoForm. Die Buttons neben den Auswahllisten im Form artikeldaten entstanden auf die gleiche Weise und rufen Formulare auf, in denen der Inhalt der verknüpften Tabellen verändert werden kann.
Abfragen und ausgeben
Was wäre eine Datenbank ohne Abfragen? Diese dienen dazu, bestimmte Datensätze, die einem oder mehreren Kriterien entsprechen, aus der Datenbank zu ziehen und darzustellen. Rekall verwendet intern SQL-Abfragen, die Sie nicht zu Gesicht bekommen. Sie können eigene Abfragen grafisch mit Hilfe des Abfrageeditors definieren. Einen ersten Eindruck vermittelt Abbildung 12. Sie sehen die Tabellen der Beispieldatenbank, deren Verknüpfungen durch Linien dargestellt sind.
Die Ausgabe der Daten auf dem Drucker erfolgt mit Hilfe von Berichten, Reports. Ihre Erstellung gleicht der von Formularen, nur dass in den Feldern eines Berichts keine Datenänderung mehr möglich ist. Sie wählen dazu im Rekall-Hauptfenster den Karteireiter Reports, suchen die Tabelle von dem Server aus, der die passenden Datensätze enthält, und doppelklicken auf create new report.
Rekall erstellt ein leeres Berichtsfenster, das einem Formular sehr ähnelt – mit einem wesentlichen Unterschied: Dünne schwarze Linien teilen den Arbeitsbereich in einen oberen, mittleren und unteren Teil. Kopf- und Fußbereich werden als Kopf- und Fußzeile auf jeder Druckseite ausgegeben; der Berichtsrumpf enthält in der Designansicht den Datensatz.
Als Berichtersteller platzieren Sie also (fast) alle datenausgebenden Elemente im Mittelteil. Felder und Links fügen Sie genauso ein wie im Formulardesigner. Achten Sie darauf, vor und nach den Ausgabeelementen nicht zuviel Platz im Berichtsrumpf zu lassen, das verschwendet nur Platz auf der Druckseite.
Das Aussehen des fertigen Berichts prüfen Sie mit dem Menüpunkt View / Preview: Als Vorschauprogramm dient KGhostscript (Abbildung 14).



