Dbsetfilter
Moderator: Moderatoren
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1930
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Dbsetfilter
hallo zusammen.
kann man mit dbsetfilter eigentlich nur 1 Bedingung filtern, oder auch mehere. Dies habe ich versucht, aber hat nicht funkt.
kann man mit dbsetfilter eigentlich nur 1 Bedingung filtern, oder auch mehere. Dies habe ich versucht, aber hat nicht funkt.
- Jan
- Marvin
- Beiträge: 14658
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Hallo Rolf,
klar kann man mit DbSetFilter() mehrere Bedingungen setzen. Im Gegensatz zu Scopes, da geht immer nur eine. Dafür sind Scopes wesentlich schneller. Daher ist es oft schneller, auf die Hauptbedingung einen Scope zu setzen, und dann auf die weitere(n) Bedingung(en) den Filter.
Zeig doch mal die nicht funktionierende Codezeile.
Jan
klar kann man mit DbSetFilter() mehrere Bedingungen setzen. Im Gegensatz zu Scopes, da geht immer nur eine. Dafür sind Scopes wesentlich schneller. Daher ist es oft schneller, auf die Hauptbedingung einen Scope zu setzen, und dann auf die weitere(n) Bedingung(en) den Filter.
Zeig doch mal die nicht funktionierende Codezeile.
Jan
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo Rolf,
Sollte dann eigentlich so mit DbSetFilter() gehen:
Viele Grüße,
Martin
Code: Alles auswählen
set filter to ( ( empty( klub ) .or. klub >= 990 ) .and. ( tag == left( tempauswahl[ h ], 1 ) ) )
Code: Alles auswählen
xumwandl->( DbSetFilter( { || ( ( empty( xumwandl->klub ) .or. xumwandl->klub >= 990 ) .and. ( xumwandl->tag == left( tempauswahl[ h ], 1 ) ) ) } ) )
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1930
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Hier mein Code:
Spstamm->(DbSetFilter({|| substr(Artnr,1,3) > aFelder[10][2] .and.;
substr(Artnr,1,3) < aFelder[11][2], Saison=aFelder[6][2] } ))
Die aFelder[10][2] und aFelder[11][2] beinhalten Warengruppen von bis
und saison ist die nächste Bediungen - oder müssen alle dann mit .and. abgefragt werden ?
Spstamm->(DbSetFilter({|| substr(Artnr,1,3) > aFelder[10][2] .and.;
substr(Artnr,1,3) < aFelder[11][2], Saison=aFelder[6][2] } ))
Die aFelder[10][2] und aFelder[11][2] beinhalten Warengruppen von bis
und saison ist die nächste Bediungen - oder müssen alle dann mit .and. abgefragt werden ?
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo Rolf,
was soll das "," vor saison? Es müssen alle Bedingungen mit .and. (oder .or., je nachdem) verknüpft werden!
Viele Grüße,
Martin
was soll das "," vor saison? Es müssen alle Bedingungen mit .and. (oder .or., je nachdem) verknüpft werden!
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1930
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Yup! Oder .or. - je nachdem, was Du brauchst...
Viele Grüße,
Martin
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo Rolf,
Thema Hilfe: da bist Du durcheinander gekommen! Das "," trennt die Filterbedingung als Codeblock von der optionalen Filterbedingung als Zeichenkette!
Viele Grüße,
Martin
Thema Hilfe: da bist Du durcheinander gekommen! Das "," trennt die Filterbedingung als Codeblock von der optionalen Filterbedingung als Zeichenkette!
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Manfred
- Foren-Administrator
- Beiträge: 21200
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: Dbsetfilter
Hi,
ich hänge mich mal wieder hinten dran.
Ich kann nichts finden, was mir im Moment weiterhilft, wenn ich einen Filter auf einen logischen und einen numerischen Wert kombiniert setzen will. Der numerische Wert ist klar, Str(wert,x,x). Wie sieht das nochmal aus mit dem logischen Wert? Wie muß der umgewandelt werden?
ich hänge mich mal wieder hinten dran.
Ich kann nichts finden, was mir im Moment weiterhilft, wenn ich einen Filter auf einen logischen und einen numerischen Wert kombiniert setzen will. Der numerische Wert ist klar, Str(wert,x,x). Wie sieht das nochmal aus mit dem logischen Wert? Wie muß der umgewandelt werden?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9367
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: Dbsetfilter
Hallo, Manfred.
Du musst nichts umwandeln:
SET FILTER to numwert = irgendwas .and. logischerwert
numwert ist ein numerischer Wert aus der Datenbank, logischerwert ein logisches Feld. Hier müsste ein "!" davorgesetzt werden, wenn .F. abgefragt werden soll. Mit DbSetFilter sähe das so aus:
DbSetFilter({||numwert = irgendwas .and. logischerwert})
Dadurch, dass Du klammern, verunden und verodern kannst, musst Du keine Umwandlungsoperationen durchführen (wie bei zusammengesetzten Indexen), sondern einfach nur wie in einer IF-Abfrage Ausdrücke bauen.
Du musst nichts umwandeln:
SET FILTER to numwert = irgendwas .and. logischerwert
numwert ist ein numerischer Wert aus der Datenbank, logischerwert ein logisches Feld. Hier müsste ein "!" davorgesetzt werden, wenn .F. abgefragt werden soll. Mit DbSetFilter sähe das so aus:
DbSetFilter({||numwert = irgendwas .and. logischerwert})
Dadurch, dass Du klammern, verunden und verodern kannst, musst Du keine Umwandlungsoperationen durchführen (wie bei zusammengesetzten Indexen), sondern einfach nur wie in einer IF-Abfrage Ausdrücke bauen.
Herzlich,
Tom
Tom
- Manfred
- Foren-Administrator
- Beiträge: 21200
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: Dbsetfilter
Hi Tom,
nee, ich bin blöde. Statt .And. habe ich + genommen. Vielleicht hätte ich zum Jahreswechsel doch mal so richtig einen heben sollen....
nee, ich bin blöde. Statt .And. habe ich + genommen. Vielleicht hätte ich zum Jahreswechsel doch mal so richtig einen heben sollen....
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!