BeeBase

Programmable relational database
with graphical user interface Support This Project
This page is also available in English Français

Handbuch

Die folgende Dokumentation ist Bestandteil der BeeBase-Distribution und gibt es auch als PDF.


[ << ] [ >> ]           [Anfang] [Inhalt] [Index] [ ? ]

10. Filter

Filter können verwendet werden, um Datensätze auszublenden. Dieses Kapitel beschreibt, welche Typen von Filter es gibt und wie sie angewandt werden.

BeeBase kennt zwei Arten von Filter: Datensatzfilter und Referenzfilter.


10.1 Datensatzfilter

Ein Datensatzfilter kann in eine Tabelle eingebaut werden, um Datensätze herauszufiltern, die nicht von Interesse sind. Datensätze, die herausgefiltert werden, sind aus der Tabellenmaske ausgenommen und können daher vom Benutzer nicht angesehen bzw. durchgeforstet werden.


10.1.1 Filterausdruck

Ein Filter wird durch die Angabe eines Booleschen Ausdruckes festgelegt, der Funktionsaufrufe zu BeeBase-Programmierfunktionen beinhalten kann. Für jeden Datensatz in der Tabelle, zu der der Filter festgelegt wurde, wird dieser Ausdruck ausgewertet. Wenn er NIL liefert, dann wird der Datensatz ausgenommen, anderenfalls wird er in die Tabellenmaske übernommen.

Jede Tabelle kann seinen eigenen Filterausdruck besitzen.


10.1.2 Filter ändern

Um den Filter einer Tabelle zu ändern, wählt man den Menüpunkt `Tabelle - Ändere Filter'. Dies öffnet ein Fenster, das folgende Punkte enthält:

Nach der Festlegung des Filterausdruckes klickt man auf `Ok', um das Fenster zu verlassen. Der eingegebene Ausdruck wird kompiliert und bei fehlerfreier Kompilation wird der Ausdruck für alle Datensätze ausgewertet. Die Datensätze, für die der Boolesche Ausdruck NIL ergibt, werden aus der Tabellenmaske ausgeblendet.

Falls der Ausdruck nicht kompiliert werden konnte, erhält man eine Nachricht, die in der Titelleiste des Fensters angezeigt wird.

Ein Filter kann über den Knopf `F' im Panel der Tabelle, sofern er installiert wurde, ein- und ausgeschaltet werden. Nachdem ein Filterausdruck für eine Tabelle festgelegt wurde, wird der Filter für diese Tabelle automatisch aktiviert.

Wenn ein Filter (de)aktiviert wird, dann werden alle Datensätze geprüft, ob sie dem Filter genügen oder nicht.

Wenn ein Filter aktiv ist und ein (filter-relevantes) Feld in einem Datensatz dieser Tabelle geändert wird, dann wird der Filterstatus des Datensatzes nicht neu berechnet und bleibt unverändert.

Wenn ein neuer Datensatz in einer Tabelle mit einem aktivierten Filter hinzugefügt wird, dann wird keine Überprüfung durchgeführt, ob der neue Datensatz dem Filter genügt und der neue Datensatz erhält den Filterstatus TRUE.


10.1.3 Filterbeispiele

Hier ein paar Beispiele für gültige Filterausdrücke:

Es ist zu beachten, dass BeeBase's Programmiersprache eine Lisp-ähnliche Syntax hat. Mehr dazu im Kapitel BeeBase programmierenn.


10.2 Referenzfilter

Beziehungsfelder besitzen auch einen Filter. Dies ist nützlich, wenn Tabellen hierarchisch aufgebaut werden sollen. Das Projekt `Albums' ist ein Beispiel dafür.

Wenn der Filter eines Beziehungsfeldes aktiviert ist, dann werden folgende Eigenschaften mit eingeschaltet:

  1. Der Benutzer kann nur auf Datensätze in der Tabelle des Feldes zugreifen, die eine Referenz auf den aktuellen Datensatz der referenzierten Tabelle haben.

  2. Wenn die referenzierte Tabelle ihren aktuellen Datensatz ändert, dann wird auch ein neuer Datensatz für die Tabelle des Feldes gesucht und gesetzt.

  3. Wenn ein neuer Datensatz angelegt wird, dann wird die Beziehung automatisch auf den aktuellen Datensatz der referenzierten Tabelle gesetzt.

Hinweis: Ein verschachteltes Löschen muss vom Benutzer selbst implementiert werden (indem man die Auslösefunktion für das Löschen von Datensätzen verwendet).

Es sollten keine Referenzfilter für zyklische Pfade, wie z.B. Referenzen auf die eigene Tabelle, verwendet werden, da diese wenig Sinn machen.


[ << ] [ >> ]           [Anfang] [Inhalt] [Index] [ ? ]

Dieses Dokument wurde am 30. September 2024 mit texi2html generiert.