Optionfilter String

22. Juni 2019 11:27

Hallo Zusammen,

leider habe ich im Forum mein Problem nicht finden können, deswegen frage ich hier einmal schnell nach.
Ich möchte einen "dynamischen" Textfilter auf ein Optionsfeld in einer Tabelle legen (Per Code)

Die Optionswerte sind:
- Blau, Gelb, Rot

Dazu habe ich in einer Einrichtungungstabelle ein Textfeld hinzugefügt.
Hier soll man nun entweder Blau, Blau|Gelb, Geld|Rot... usw. als Text hinterlegen können.
Der Textstring wird dann zur Laufzeit geholt und soll als Optionsfilter in der Tabelle verwendet werden.

Im Code habe ich lokale Variable angelegt
OptionsHilfsVar >> Blau, Gelb, Rot

EVALUATE(OptionsHilfsVar, Einrichtungstabelle.Textfeld);
Zieltabelle.SETFILTER(Zieltabelle.Zielfeld, '%1', OptionsHilfsVar ) ;

Leider läuft das auf einen Fehler - hat jemand eine Idee was ich falsch mache?

Danke und Grüße

Oliver

Re: Optionfilter String

22. Juni 2019 19:19

Hallo,

die Optionswerte sind eigentlich Integer, von 0 startend, mit Komma getrennt in "OptionString". Dynamische Filter sind dann:

setfilter(Feld, '%1|%2',<wert1_als_int>,<wert2_als_int>);

Wenn Du direkt die Klartextoption hinterlegen willst ist es

setrange(Feld,Feld::<wert>);

LG Jens

Re: Optionfilter String

24. Juni 2019 09:57

das funktioniert zumindest in 2018:
Code:
recref.OPEN(37);
fieldref := recref.FIELD(5);
fieldref.SETFILTER('Item|G/L Account');
MESSAGE(FORMAT(recref.GETFILTERS));


Du solltest auf dennoch den integer Wert und nicht den Text speichern, sonst hast du spätestens ein Problem wenn jemand ne andere Sprache benutzt. oder jemand gibt einen wert ein der in dem Option Feld nicht existiert.