Programmieren mit dBASE PLUS: Funktionen: beginFilter
Mit dieser Methode wird ein Datensatzbereich in den Filtermodus versetzt. Danach können Filterkriterien eingegeben werden.
Syntax
[Bearbeiten]<oReferenz>.beginFilter( )
<oReferenz>
Der Datensatzbereich, der in den Filtermodus versetzt werden soll.
Eigenschaft von
[Bearbeiten]Beschreibung
[Bearbeiten]Von den Objekten der Klasse Rowset wird ein Filtermodus unterstützt, in dem den Objekten der Klasse Field Werte zugewiesen werden können. Mit diesen Werten können anschließend die Datensätze (Zeilen) eines Datensatzbereichs gefiltert werden. Es werden nur die Datensätze mit übereinstimmenden Werten angezeigt. Mit beginFilter( ) können Sie den Datensatzbereich in den Filtermodus versetzen und mit applyFilter( ) die Filterwerte anwenden. Mit clearFilter( ) wird der Filter deaktiviert. Da die durch die Eigenschaft dataLink verknüpften Steuerungselemente in einem Formular einen Wert in die Eigenschaft value der Field-Objekte schreiben, benötigen Sie für eine Filterung über ein Formular nur diese drei Methoden.
Sobald beginFilter( ) aufgerufen wird, wird der Datensatzpuffer gelöscht. Für die Prüfung der Übereinstimmung werden die Werte verwendet, die entweder über verknüpfte Steuerungselemente oder durch Zuweisen von Werten zur Eigenschaft value gesetzt wurden. Es werden nur die Felder berücksichtigt, deren Eigenschaft value nicht leer ist. Mit der Methode abandon( ) können Sie den Filtermodus beenden.
Falls Sie im Filtermodus den Datensatzcursor zu verschieben versuchen, wird der Filtermodus verlassen. Der Datensatzcursor wird relativ zu seiner Position verschoben, die er beim Aufruf von beginFilter( ) eingenommen hat.
Mit der Eigenschaft filter des Datensatzbereichs können Sie Zeilen außerhalb des Filtermodus selektieren. Weitere Informationen über die Anwendung von Filtern auf Daten finden Sie unter der Eigenschaft filter. Die Filterung von Datensätzen kann auch ausschließlich oder zusätzlich zum Filtermodus mit Hilfe von dBL-Code erfolgen. Verwenden Sie dazu das Event canGetRow.