Ich habe folgendes Problem: In der dbf gibt es ein Feld C60, in dem z. B. dieser Inhalt stehen kann:" G_2 S_12 T1_2 T3_1 T5_2 T6_13 T7_13 T9_1". Die Buchstaben mit der direkt folgenden Ziffer geben hier die Haupt- und Unter-Lagerbereiche an, die Ziffer hinter dem _ gibt die Anzahl der Artikel in diesem Bereich an.
Ich muß jetzt auf die dbf einen Filter setzen, um Positionen mit den passenden Hauptlagerbereiche auszufiltern. Es wäre ein Einfaches, wenn der Filter einfach nur wäre
Code: Alles auswählen
dbf_alias->(DbSetFilter({|| "T" $ dbf_alias->feldname}))
Aber so einfach ist das leider nicht. Denn ich muß nicht einen einzelenen Lagerbereich ausfiltern, sondern eine Gruppe. Es sollen also alle Sätze angezeigt werden, in denen im entsprechenden Feld mind. 1x z. B. ein Buchstabe aus der Gruppe "GTLR" vorkommt. Hier kann ich natürlich nicht mehr mit $ arbeiten, denn ich suche ja nicht die Zeichenkette "GTLR", sondern ob irgend einer der vier Buchstaben mind. 1x in dem Feldinhalt auftaucht. Wobei die Länge der Vergleichszeichenkette variabel ist, die vier Zeichen hier sind nur ein Beispiel.
Als ob das nicht schon kompliziert genug wäre, läuft das ganze auch noch auf einem ADS. Es sollte also ein Filter sein, den der ADS intern auflösen kann. Weil der dann eben um ein vielfaches schneller ist als wenn der Filter auf dem Client aufgelöst werden würde. Ich hätte dabei dann auch kein Problem, wenn ich das mit einem Select oder ähnlichem auf SQL-Ebene machen würde.
Ich hoffe, ich habe das Problem halbwegs verständlich darstellen können ...
Jan