SETFILTER[Gelöst]

25. November 2010 12:00

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!
Zuletzt geändert von NAVGATOR am 20. April 2011 17:26, insgesamt 1-mal geändert.

Re: SETFILTER

25. November 2010 12:05

SETFILTER(Name,'%1','*@B&T*');
Zuletzt geändert von McClane am 25. November 2010 12:27, insgesamt 1-mal geändert.

Re: SETFILTER

25. November 2010 12:16

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

25. November 2010 12:26

NAVGATOR hat geschrieben:ich glaub das kann nicht die Lösungs sein

Musst du ja auch nicht glauben, aber es klappt :wink:

Re: SETFILTER

26. November 2010 14:14

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! :shock:
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

26. November 2010 14:36

winfy hat geschrieben:Die SETFILTER Variante geht bei mir auch nicht @McClane!

Bei mir aber :P :wink: 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

26. November 2010 14:39

McClane hat geschrieben:Bei mir aber :P :wink: 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! :wink:

Er sucht IMO nach 'B&T' als String und will aber nicht das '&' als Operator erkannt wird.

Gruß,
winfy

Re: SETFILTER

26. November 2010 15:07

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

1. Dezember 2010 11:39

Ich kenne noch folgende Variante: SETFILTER(<Feld>, STRSUBSTNO('@*%1&%2*', 'B', 'T'));

Re: SETFILTER

2. Dezember 2010 03:34

pduck hat geschrieben:Ich kenne noch folgende Variante: SETFILTER(<Feld>, STRSUBSTNO('@*%1&%2*', 'B', 'T'));


Das klappt.