Die Eigenschaft Filter festlegen
Nach oben zu Filter erzeugen
Wenn Sie einen Filter mithilfe der Eigenschaft Filter definieren möchten, setzen Sie den Wert für die Eigenschaft auf einen String, der die Testbedingung für den Filter enthält. Die folgende Anweisung erzeugt einen Filter, der das Feld State einer Datenmenge überprüft und feststellt, ob es den Wert CA (für Kalifornien) enthält:
(Custno > 1400) AND (Custno < 1500);
Dataset1->Filter = "State = 'CA'";
Ferner können Sie einen Wert für die Eigenschaft Filter festlegen, der anhand des vom Benutzer eingegebenen Textes definiert wird. Im folgenden Beispiel wird der in das Eingabefeld eingegebene Text der Eigenschaft Filter zugewiesen:
Dataset1.Filter := Edit1.Text;
Dataset1->Filter = Edit1->Text;
Selbstverständlich können Sie auch einen String anhand von festcodiertem Text und vom Benutzer angegebenen Daten definieren:
Dataset1.Filter := 'State = ' + QuotedStr(Edit1.Text);
Dataset1->Filter = AnsiString("State = '") + Edit1->Text + "'";
Leere Feldwerte werden nur angezeigt, wenn sie im Filter explizit enthalten sind:
Dataset1.Filter := 'State <> CA or State = BLANK';
Dataset1->Filter = "State <> 'CA' or State = BLANK";
Hinweis: Wenn Sie einen Filter nach seiner Definition auf eine Datenmenge anwenden möchten, müssen Sie die Eigenschaft Filtered auf True setzen. Mit Filtern lassen sich Feldwerte mit Literalen und Konstanten vergleichen.
Hierzu können die folgenden Vergleichsoperatoren und logischen Operatoren verwendet werden:
Vergleichsoperatoren und logischen Operatoren für Filter:
Operator | Bedeutung |
---|---|
< |
Kleiner als |
> |
Größer als |
>= |
Größer oder gleich |
<= |
Kleiner oder gleich |
= |
Gleich |
<> |
Ungleich |
AND |
Beide Anweisungen müssen True sein |
NOT |
Prüfen, ob für die folgende Anweisung nicht True gilt |
OR |
Mindestens eine der beiden Anweisungen muss True sein |
+ |
Addition von Zahlen, Verketten von Strings, Addition von Werten zu Datums-/ Uhrzeitangaben (steht nicht für alle Treiber zur Verfügung) |
- |
Subtraktion von Zahlen, Subtraktion von Datumsangaben oder Subtraktion einer Zahl von einer Datumsangabe (steht nicht für alle Treiber zur Verfügung) |
* |
Multiplikation von zwei Zahlen (steht nicht für alle Treiber zur Verfügung) |
/ |
Division von zwei Zahlen (steht nicht für alle Treiber zur Verfügung) |
* |
Platzhalterzeichen für Teilvergleiche (bei FilterOptions muss foPartialCompare mit angegeben sein) |
Durch eine Kombination dieser Operatoren lassen sich relativ komplexe Filterbedingungen erstellen. Die folgende Anweisung stellt beispielsweise sicher, dass zwei Testbedingungen erfüllt sind, bevor ein Datensatz angezeigt wird:
(Custno > 1400) AND (Custno < 1500);
Hinweis: Wenn die Filterung aktiviert ist und der Benutzer einen Datensatz bearbeitet, kann dies dazu führen, dass der Datensatz die Filterbedingungen nicht mehr erfüllt. Beim nächsten Abrufen von Datensätzen aus der Datenmenge anhand des Filters ist ein solcher Datensatz dann "verschwunden". Der nächste Datensatz, der die Bedingungen erfüllt, wird dann zum aktuellen.
Siehe auch
Beispiele
- FireDAC TFDQuery Filter (Beispiel)