Filter setzen [Erledigt]

Zugriff, Engines, Konvertierung. Von ADS über DBF bis zu SQL.

Moderator: Moderatoren

Antworten
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Filter setzen [Erledigt]

Beitrag von Jan »

Hallo,

Anfängerfrage: Ich setze auf eine dbf einen Filter. Für einen Zwischenschritt muß ich den kurz aufheben, und den hinterher wieder setzen. Also lese ich die Filterbedingung per cAlias->(DbFilter()) in eine Variable aus, um damit hinterher den Filter wieder korrekt zu setzen. Aber genau da scheitere ich. Wie setze ich einen Filter anhand einer Variablen?

Der wäre also (stilisiert) diese Vorgehensweise:

cFilter := cAlias->(DbFilter())
cAlias->(DbClearFilter()
tuirgendwas()
cAlias->(DbSetFilter(cFilter)) // Was aber einen Laufzeitfehler fabriziert

Jan
Zuletzt geändert von Jan am Mi, 20. Jan 2021 10:52, insgesamt 1-mal geändert.
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Filter setzen

Beitrag von Tom »

DbSetFilter() erwartet einen Codeblock, aber DbFilter() returniert einen Filterausdruck.

Code: Alles auswählen

DbSetFilter({||NAME="Schulz"})
? DbFilter() // NAME="Schulz"
Du musst aus dem Rückgabewert wieder einen Codeblock machen. Oder mit Makros hantieren.
Herzlich,
Tom
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Filter setzen

Beitrag von Jan »

Hallo Tom,

ja klar, logisch. Danke für das auf die Sprünge helfen.-

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Antworten