Filter erzeugen

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Teilmengen von Daten mithilfe von Filtern anzeigen und bearbeiten


Ein Filter für eine Datenmenge kann auf zwei Arten erzeugt werden:

  • Sie weisen der Eigenschaft Filter Werte zu. Diese Vorgehensweise eignet sich vor allem dann, wenn Filter zur Laufzeit erzeugt und angewendet werden sollen.
  • Sie erstellen eine Behandlungsroutine für das Ereignis OnFilterRecord zur Definition der Filterbedingungen. Mit DB.OnFilterRecord lassen sich sowohl einfache als auch sehr komplexe Filterbedingungen während des Entwurfs definieren. Mit OnFilterRecord werden die Filterbedingungen zur Entwurfszeit festgelegt. Im Gegensatz zur Eigenschaft Filter, deren Filterlogik auf einen einzelnen String beschränkt ist, können Sie mit dem Ereignis OnFilterRecord Verzweigungen und Schleifen in die Logik einbauen und so komplexe Filterbedingungen auf mehreren Ebenen definieren.

Die Definition eines Filters mithilfe der Eigenschaft Filter bietet den Vorteil, dass die Anwendung den Filter dynamisch (z.B. als Reaktion auf eine Benutzereingabe) erzeugen, ändern und anwenden kann. Der Nachteil dieser Vorgehensweise liegt darin, dass die Filterbedingungen innerhalb eines einzelnen Text-Strings ausgedrückt werden müssen und die Verwendung von Verzweigungs- und Schleifenkonstrukten nicht zulässig ist. Außerdem ist kein Vergleich der Filterwerte mit Werten möglich, die sich noch nicht in der Datenmenge befinden.

Die Filterdefinition mit dem Ereignis OnFilterRecord bietet folgende Vorteile: Der Filter kann sehr komplex sein und ist dabei variabel. Er kann mehrere Quelltextzeilen umfassen, in denen auch Verzweigungs- und Schleifenkonstrukte enthalten sein dürfen. Außerdem können Werte der Datenmenge mit externen Werten verglichen werden (z.B. mit dem Text in einem Eingabefeld). Der Hauptnachteil bei der Verwendung des Ereignisses OnFilterRecord liegt in der Tatsache, dass der Filter zur Entwurfszeit festgelegt wird und daher nicht als Reaktion auf eine Benutzereingabe geändert werden kann. Dafür können aber mehrere Filterbehandlungsroutinen erstellt werden, die sich dann in Abhängigkeit vom Status der Anwendung aufrufen lassen.

Die folgenden Abschnitte gehen detailliert auf die Generierung von Filtern mit der Eigenschaft Filter und der Ereignisbehandlungsroutine für OnFilterRecord ein.

Siehe auch