NAV 4.0: Fehler bei SETFILTER-Interpretation umgehen

15. April 2008 20:53

Info: Dieser Tipp stammt aus dem MS KB-Artikel 951233, welcher einen Partnersource-Login erfordert.

Folgender Befehl kann in NAV 4.0 falsch interepretiert werden
Code:
Rec.SETFILTER("No.",'%1*','100');


Das Problem tritt nur dann auf, wenn ihr Platzhalter (%1) und Wildcards (* oder ?) kombiniert verwendet. (Wenn es dafür fachlich bessere Begriffe gibt, bitte korrigieren).
Um das Problem zu umgehen, könnt ihr diese Codezeile auf folgende Weise variieren:

Code:
// Möglichkeit 1
Rec.SETFILTER("No.",'100*');

//Möglichkeit 2
TempString := STRSUBSTNO('%1*','100');
Item.SETFILTER("No.",TempString);

Re: NAV 4.0: Fehler bei SETFILTER-Interpretation umgehen

24. September 2008 13:54

Ein weiterer Interpretrationsfehler dieser Art tauchte hier in diesem Forum an anderer Stelle zu Tage:

Dieser Befehl
Code:
Record.SETFILTER("G/L Account No.", '(8000..8445|8730..8744|8989..8995)&(%1)', Record2.GETFILTER("G/L Account No."))

führt zu folgendem Filter auf dem Feld "G/L Account No.":
Code:
(8000..8445|8730..8744|8989..8995)&('8339..8400')
- man achte auf die Apostrophs!

Workaround auch hier:
Code:
FilterStr := '(8000..8445|8730..8744|8989..8995)&(' + Record2.GETFILTER("G/L Account No.") + ')';
Record.SETFILTER("G/L Account No.", FilterStr);

Klammer-Problem umgehen

15. Oktober 2009 19:06

Wieder ein neuer Fall:

Code:
grPostCode.SETFILTER(City, 'Waren (Müritz)');
geht nicht.

Code:
grPostCode.SETFILTER(City, '%1', 'Waren (Müritz)');
geht.