Thema: Table Filter

Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#16

AW: Table Filter

  Alt 1. Jul 2016, 12:22
Das wird hier jetzt eher zur wilden Spekulation.

Zeig' uns doch einfach mal, wie der Filter so aussieht:
Delphi-Quellcode:
Form1.Table_Einsaetze_Event.Filtered := false;
Form1.Table_Einsaetze_Event.Filter := 'EINSATZNUMMER ='+ QuotedStr(Form1.Table_Einsaetze_Event.FieldByName('EINSATZNUMMER').Text);
ShowMessage(QuotedStr(Form1.Table_Einsaetze_Event.Filter));
Form1.Table_Einsaetze_Event.Filtered := true;
Die Ausgabe von ShowMessage postest Du bitte hier.

Die Art der Ausgabe / Anzeige der Daten, ist für das Setzen von Filtern irrelevant.
Entscheidend ist die korrekte Syntax der Filter.

Bei "geht nicht" gehe ich davon aus, dass die Funktionalität des Filters nicht gegeben ist, er also fehlerhaft ist. Dies äußert sich für gewöhnlich durch eine Exception. Gibt es eine? Wenn ja, dürften wir ihren Inhalt erfahren. Gibt es keine Exception, dann bitte die Info, dass es keine Exception gibt.

In dem Fall ist übrigens davon auszugehen, dass es die entsprechenden Sätze nicht gibt.
Von welchem Typ ist denn Einsatznummer? Integer? Dann wäre die sinnvollste Methode, den Filter zu setzen vermutlich:
Delphi-Quellcode:
Form1.Table_Einsaetze_Event.Filtered := false;
Form1.Table_Einsaetze_Event.Filter := Format('EINSATZNUMMER = %d', [Form1.Table_Einsaetze_Event.FieldByName('EINSATZNUMMER').AsInteger]);
Form1.Table_Einsaetze_Event.Filtered := true;
Sollte Einsatznummer vom Typ String sein, dann wäre dashier eventuell die bessere Variante des Filtersetzens:
Delphi-Quellcode:
Form1.Table_Einsaetze_Event.Filtered := false;
Form1.Table_Einsaetze_Event.Filter := Format('EINSATZNUMMER = %s', [QuotedStr(Form1.Table_Einsaetze_Event.FieldByName('EINSATZNUMMER').AsString)]);
Form1.Table_Einsaetze_Event.Filtered := true;
Werden im DBGrid nach dem Filtered := true; eigentlich irgendwelche Daten angezeigt? Oder ist die Ergebnismenge leer oder ist sie unverändert?
  Mit Zitat antworten Zitat