Filterbedingung aus Textstring [Erledigt]
Moderator: Moderatoren
- Jan
- Marvin
- Beiträge: 14641
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 87 Mal
- Kontaktdaten:
Filterbedingung aus Textstring [Erledigt]
Ich muß einen Filter setzen, wo je nach vorigen Auswahlen verschiedene Filterbedingungen gelten können. Also schreibe ich die einfach in einen String rein. Den Filter darauf zu setzen klappt auch. Aber beim DbGoTop() erzählt der mir dann immer, die im String aufgeführten Felder würden nicht existieren.
Der String sieht dann in etwa so aus: "feldname == bedingung1 .AND. feldname == bedingung2"
DbFilter() gibt mir immer nur den Variablennamen des Strings zurück.
Wie muß ich das anstellen, damit das richtig läuft?
Jan
Der String sieht dann in etwa so aus: "feldname == bedingung1 .AND. feldname == bedingung2"
DbFilter() gibt mir immer nur den Variablennamen des Strings zurück.
Wie muß ich das anstellen, damit das richtig läuft?
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2823
- Registriert: Fr, 08. Feb 2008 21:29
- Hat sich bedankt: 95 Mal
- Danksagung erhalten: 13 Mal
Re: Filterbedingung aus Textstring
Hallo, Jan -
das hört sich für mich so an, als wärest Du im falschen Select()-Bereich? Der SET FILTER ändert ja noch nichts (so sagt zumindest mein Gedächtnis), erst das Bewegen durch die Datei versucht dann, die Filter-Bedingung umzusetzen.
das hört sich für mich so an, als wärest Du im falschen Select()-Bereich? Der SET FILTER ändert ja noch nichts (so sagt zumindest mein Gedächtnis), erst das Bewegen durch die Datei versucht dann, die Filter-Bedingung umzusetzen.
Liebe Grüsse aus der Eifel,
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
- Tom
- 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: Filterbedingung aus Textstring
Das liegt daran, dass "bedingung1" und "bedingung2" im Moment des Zusammenbaus LOCALs waren, und wenn der Filter dann - außerhalb der "Baufunktion" - ausgeführt wird, existieren diese eben nicht. So beispielsweise dürfte es klappen (gibt aber noch elegantere Wege):
(Auf die zusätzlichen einfachen Anführungszeichen achten!)
Code: Alles auswählen
"feldname == '"+Trim(bedingung1)+"' .AND. feldname == '"+Trim(bedingung2)+"'"
Herzlich,
Tom
Tom
- brandelh
- Foren-Moderator
- Beiträge: 15689
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Filterbedingung aus Textstring
wenn Bedingung1 eine Variable ist, muss die private sein, ansonsten gilt natürlich, dass es sicherer ist LOCAL Variablen zu nutzen und den String daraus erzeugen zu lassen.
Bei den Feldern würde ich immer FIELD-> davor setzen, dann gibt es keine Missverständnisse.
Feldtypen mit Zeichen müssen in ' eingeschlossen werden ... was kann es noch sein ...
Bei den Feldern würde ich immer FIELD-> davor setzen, dann gibt es keine Missverständnisse.
Feldtypen mit Zeichen müssen in ' eingeschlossen werden ... was kann es noch sein ...
Gruß
Hubert
Hubert
- Jan
- 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: Filterbedingung aus Textstring
Hmm.
Georg hat natürlich Recht mit dem Select, aber das kann ich ausschließen. Einerseits ist die betreffende dbf vorher manuell selected worden, andererseits kann ich bei DbSetFilter() ja den betreffenden Bereich angeben.
Der Weg von Tom funktioniert leider nicht, da die Werte numerisch sind. Setze ich die dann wie von ihm vorgeschlagen in Hochkommata, dann werden die bei der Auswertung als String angesehen, was natürlich zur Laufzeit knallt.
Der eigentliche Fehler lag ganz woanders. Der Feldname hatte sich irgendwann zwischendurch geändert. Ich habe das im Code korrigiert, aber die auszuwertende Zwischendatei hatte noch den alten Feldnamen drin, die war seit der Änderung nicht neu erzeugt worden. Jetzt läuft der wenigstens ohne Laufzeitfehler durch.
Aber leider ist der Ausdruck jetzt leer. Obwohl er mehrere Seiten lang sein müsste. Muß mich mal weiter auf die Suche machen.
Jan
Georg hat natürlich Recht mit dem Select, aber das kann ich ausschließen. Einerseits ist die betreffende dbf vorher manuell selected worden, andererseits kann ich bei DbSetFilter() ja den betreffenden Bereich angeben.
Der Weg von Tom funktioniert leider nicht, da die Werte numerisch sind. Setze ich die dann wie von ihm vorgeschlagen in Hochkommata, dann werden die bei der Auswertung als String angesehen, was natürlich zur Laufzeit knallt.
Der eigentliche Fehler lag ganz woanders. Der Feldname hatte sich irgendwann zwischendurch geändert. Ich habe das im Code korrigiert, aber die auszuwertende Zwischendatei hatte noch den alten Feldnamen drin, die war seit der Änderung nicht neu erzeugt worden. Jetzt läuft der wenigstens ohne Laufzeitfehler durch.
Aber leider ist der Ausdruck jetzt leer. Obwohl er mehrere Seiten lang sein müsste. Muß mich mal weiter auf die Suche machen.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Jan
- 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: Filterbedingung aus Textstring
OK. Habs gefunden. Wenn natürlich der auszuwertende Datenbestand überhaupt nichts aufweist, was der Filterbedingung entspricht, dann kann da ja auch nix vernünftiges bei rumkommen.
Jan
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Tom
- 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: Filterbedingung aus Textstring [Erledigt]
Immerhin hattest Du den Thread vorsorglich in "Newbie" gestartet.
Herzlich,
Tom
Tom
- Jan
- 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: Filterbedingung aus Textstring [Erledigt]
Tom,
tja. Hier war das aber zum Glück nicht meine Schusseligkeit. Bei Faktoren lagen außerhalb meiner Kenntnisse, ich mußte mit dem umgehen, was mir geliefert worden war. Doof und peinlich ist das aber natürlich trotzdem. Aber hier im Forum darf man sich ja zum Glück ab und an sowas leisten, ohne gleich niedergemacht zu werden.
Jan
tja. Hier war das aber zum Glück nicht meine Schusseligkeit. Bei Faktoren lagen außerhalb meiner Kenntnisse, ich mußte mit dem umgehen, was mir geliefert worden war. Doof und peinlich ist das aber natürlich trotzdem. Aber hier im Forum darf man sich ja zum Glück ab und an sowas leisten, ohne gleich niedergemacht zu werden.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.