Seite 1 von 1
SETFILTER[Gelöst]
Verfasst: 25. November 2010 12:00
von NAVGATOR
Hallo,
folgendes Problem:
Ich möchte mit SETFILTER nach allen Kreditoren filtern, die B&T enthalten,
also SETFILTER(Name,*@B&T*);
Das Problem ist jetzt, dass & als UND-Operator verstanden wird, und nicht als Teil des String.
Wie bekomme ich es hin, dass & als Teil des String verwendet wird?
Vielen Dank für eure Hilfe!
Re: SETFILTER
Verfasst: 25. November 2010 12:05
von McClane
SETFILTER(Name,'%1','*@B&T*');
Re: SETFILTER
Verfasst: 25. November 2010 12:16
von NAVGATOR
hmmm,
ich glaub das kann nicht die Lösungs sein
* und @ werden hier auch immer noch als Operator verwendet.
Ich muss mich auch hinsichtlich meines ersten Posts korrigieren,
ich meinte SETFILTER(Name,'*@B&T*')
und hier wird & als Operator verwendet.
Re: SETFILTER
Verfasst: 25. November 2010 12:26
von McClane
NAVGATOR hat geschrieben:ich glaub das kann nicht die Lösungs sein
Musst du ja auch nicht glauben, aber es klappt
Re: SETFILTER
Verfasst: 26. November 2010 14:14
von winfy
NAVGATOR hat geschrieben:Hallo,
folgendes Problem:
Ich möchte mit SETFILTER nach allen Kreditoren filtern, die B&T enthalten,
also SETFILTER(Name,*@B&T*);
Das Problem ist jetzt, dass & als UND-Operator verstanden wird, und nicht als Teil des String.
Wie bekomme ich es hin, dass & als Teil des String verwendet wird?
Vielen Dank für eure Hilfe!
Die SETFILTER Variante geht bei mir auch nicht @McClane!
Da der String unerwünschte Operatoren (gemeint ist &) enthält kann der Filter eigentlich auch nicht das gewünschte Ergebnis erzielen.
Als Workaround fällt mir nur ein:
Mit Setfilter vorsortieren und mit einer IF Anweisung dann genauer prüfen.
- Code:
SETFILTER(Name, '*@B?T*');
...
- Code:
IF STRPOS(UPPERCASE(Name), 'B&T') > 0 THEN BEGIN
...
END;
Gruß,
winfy
Re: SETFILTER
Verfasst: 26. November 2010 14:36
von McClane
winfy hat geschrieben:Die SETFILTER Variante geht bei mir auch nicht @McClane!
Bei mir aber :P
Sowohl Native als auch SQL.
Mit SETFILTER(Name, '@*B&T*'); kommen alle, die mit "T" beginnen und "B" enden (also sinngemäß T*B), und sonst der eine, in dessen Namen wirklich der Substring vorkommt. Allerdings mit Nav5 SP1.
Re: SETFILTER
Verfasst: 26. November 2010 14:39
von winfy
McClane hat geschrieben:Bei mir aber :P
Sowohl Native als auch SQL.
Mit SETFILTER(Name, '@*B&T*'); kommen alle, die mit "T" beginnen und "B" enden (also sinngemäß T*B), und sonst der eine, in dessen Namen wirklich der Substring vorkommt. Allerdings mit Nav5 SP1.
Ich glaube das war dann ein klassisches Missverständnis!
Er sucht IMO nach
'B&T' als String und will aber nicht das
'&' als Operator erkannt wird.
Gruß,
winfy
Re: SETFILTER
Verfasst: 26. November 2010 15:07
von McClane
Nein, das habe ich genau so gemeint, wie du sagst. Mit der %1-Variante wird der Substring "B&T" korrekt gefunden *schwör*.
Re: SETFILTER
Verfasst: 1. Dezember 2010 11:39
von pduck
Ich kenne noch folgende Variante: SETFILTER(<Feld>, STRSUBSTNO('@*%1&%2*', 'B', 'T'));
Re: SETFILTER
Verfasst: 2. Dezember 2010 03:34
von Freestyler
pduck hat geschrieben:Ich kenne noch folgende Variante: SETFILTER(<Feld>, STRSUBSTNO('@*%1&%2*', 'B', 'T'));
Das klappt.