Code: Alles auswählen.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: s_kof_cu FOR ls_selectionscreen-kofiz.
SELECTION-SCREEN END OF BLOCK b1.
Code: Alles auswählen.
| SIGN | OPTION | LOW | HIGH |
| I | BT | A1 | A5 |
| I | BT | B2 | B9 |
a-dead-trousers hat geschrieben: ↑12.01.2021 20:14Den Operator IN in der WHERE-CLause des SELECT Statements verwenden.
Code: Alles auswählen.
SELECT ...
WHERE kofiz IN s_kof_cu
Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
a-dead-trousers
Mal abgesehen von Deiner Zusatzanforderung, "Falscheingaben" zu erkennen (wobei Du nicht näher erläutert hast, wann eine Eingabe bei Dir "falsch" ist), ist auch dieser Fall trivial mit dem IN-Operator abgedeckt. Da schreibst Du dann einfach:Radinator hat geschrieben: ↑13.01.2021 09:20Ich hab da auch so ein ähnliches Problem bei einem meiner Reports gehabt. Dem User wird die Auswahl über Lieferantennummer und Materialnummer ermöglicht. Da ich für beides eine Range angegeben habe (also mit SELECT-OPTIONS) hab ich einen ellenlange Teil des Codes darauf "verwenschwendet" die möglichen Kombinationen so abzuprüfen, dass bei einer Falscheingabe eine Fehlermeldung angezeigt und bei korrekter Eingabe die Daten für die Selektion aus der entsprechenden Tabelle gezogen werden.
Wenn nun der User meinetwegen 1 Lieferantennummer und/oder 1 Materialnummer angibt, dann kann das auch gemacht werden. Die große Hürde ist nur wenn etwa Lieferant VON+BIS und gleichzeitig aber ein Ausschluss definiert ist (VON 4711 BIS 4717 aber OHNE 4716). Wenn solche Eingaben gemacht werden dann kommt einfache eine Meldung von wegen "Komplexe Suchkriterien werden nicht unterstützt".
Leider findet man auch sogut wie keine vernünftigen Tutorials wie man die SELECT-OPTIONS in so einer Situation einsetzt :(. Daher musste ich mir hier diese Krücke bauen.
Code: Alles auswählen.
WHERE LIFNR IN range_lieferant
AND MATNR IN range_matnr
Code: Alles auswählen.
| SIGN | OPTION | LOW | HIGH |
| I | BT | 4711 | 4717 |
| E | EQ | 4716 | |
| SIGN | OPTION | LOW | HIGH |
| I | BT | 0 | 999 |
| E | BT | 200 | 400 |
Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
DeathAndPain
Code: Alles auswählen.
| SIGN | OPTION | LOW | HIGH |
| I | BT | 4711 | 4717 |
| SIGN | OPTION | LOW | HIGH |
| I | BT | 0 | 999 |
| E | BT | 200 | 400 |
Code: Alles auswählen.
| SIGN | OPTION | LOW | HIGH |
| I | EQ | 4711 | |
| SIGN | OPTION | LOW | HIGH |
| I | BT | 0 | 999 |
Folgende Benutzer bedankten sich beim Autor DeathAndPain für den Beitrag:
Radinator