25. Juli 2008 10:17
also hier für alle meine erkenntnisse:
1.) FilterVar := '*EXW*'; SETFILTER("Shipment Code", FilterVar);
Der Filterausdruck ist laut Syntax ein String - hier also der Wert aus der Textvariablen FilterVar => der Wert wird nicht auf Sonderzeichen interpretiert und somit sucht das Programm ganz buchstäblich nach *EXW* (wie dämlich
aber noch verständlich)
2.)der Versuch FilterVar := 'EXW'; SETFILTER("Shipment Codes", '*FilterVar*') ist ebenso zum Scheitern verurteilt, weil innerhalb des String Variablen nur durch das % eingeführt werden können (war vorher klar)
3.)FilterVar := 'EXW'; SETFILTER("Shipment Codes", '*%1*', FilterVar); führt interessanterweise auch nicht zum Ziel, was Rückschlüsse auf die Reihenfolge bei der Untersuchung von Filterausdruck und Wert ermöglicht.
Zuerst wird der Filterausdruck interpretiert, dann wird der Filterwert interpretiert und ersetzt und abschließend auf dieser Basis gesucht. In diesem Beispiel wird also zuerst '**' interpretiert, wobei der Interpreter keine bedeutsamen Sonderzeichen ausmachen kann
, dann wird %1 durch EXW ersetzt (auch nurn String) - letztendlich sucht er wieder buchstäblich nach *EXW* (der Depp)
4.)also bleibt nur die Möglichkeit von MK einen Filterausdruck zu bauen und diesen dann über % als Filterwert einzuführen...