Code: Alles auswählen.
*Gueltige Lgart
form check-lgart
using gueltig spalte.
gueltig = false.
case spalte.
when '1'. check lgart1.
when '2'. check lgart2.
when '3'. check lgart3.
when '4'. check lgart4.
when '5'. check lgart5.
** when '8'. check lgart8. "20050329F#RÖ "20171211F#RÖ
** when '9'. check lgart9. "20050329F#RÖ "20171211F#RÖ
when '10'. check lgart10. "20060811F#RÖ
when others.
endcase.
* check lgart.
gueltig = true.
endform. " CHECK-LGART.
Code: Alles auswählen.
data:
begin of inttab occurs 10. " für indirekte Bewertung
include structure pbwla.
select-options:
lgart1 for inttab-lgart,
lgart2 for inttab-lgart,
lgart3 for inttab-lgart,
lgart4 for inttab-lgart,
lgart5 for inttab-lgart,
lgart10 for inttab-lgart,
DeathAndPain hat geschrieben: ↑13.03.2020 15:34CHECK SELECT-OPTIONS. ist hier nicht die richtige Antwort. Zum einen setzt er die Verwendung einer logischen Datenbank voraus, zum anderen kann er nur atomar ohne Parameter angegeben werden.
Code: Alles auswählen.
DATA gtest TYPE i..
PARAMETERS ptest TYPE i DEFAULT 4.
SELECT-OPTIONS stest FOR gtest DEFAULT 1 TO 10.
SELECT-OPTIONS unam FOR sy-uname DEFAULT sy-uname.
START-OF-SELECTION.
gtest = ptest.
WRITE: / 'Liegt', ptest, 'zwischen', stest-low, 'und', stest-high, '??'.
IF stest.
WRITE: 'JA'.
ELSE.
WRITE: 'NEIN'.
ENDIF.
IF unam.
WRITE: / 'du bist es!'.
ELSE.
WRITE: / 'du bist es nicht!'.
ENDIF.
ja.DeathAndPain hat geschrieben: ↑16.03.2020 16:02Das ist schon sehr interessant. Ich hatte schon mit eigenen Tests festgestellt, dass es sowas gibt, es aber inhaltlich nicht genau eingrenzen können. SELECT-OPTIONS benötigen ja immer ein Referenzfeld. Wenn das SELECT-OPTIONS-Feld als Bool ausgewertet wird, wird demnach also geprüft, ob der aktuelle Wert des Referenzfeldes in der SELECT-OPTION liegt?
ausprobieren.DeathAndPain hat geschrieben: ↑16.03.2020 16:02Was passiert, wenn ich eine RANGES-Tabelle mit LIKE RANGE OF oder gar mit TYPE RANGE OF definiere? Dann gibt es ja kein explizites Referenzfeld. Ist dann dennoch eine boolesche Verwendung möglich, und wenn ja, was wird da dann ausgewertet?
In der ABAP-Hilfe habe ich auch nichts Genaues dazu gefunden. Die Anweisung ist aber auch sowas von obsolet - ist vielleicht ganz gut, dass der nicht dokumentiert ist...DeathAndPain hat geschrieben: ↑16.03.2020 16:02Nur, wie gesagt, CHECK SELECT-OPTIONS ist eine atomare Anweisung, also unveränderlich (und damit parameterfrei) und hier nicht zu gebrauchen. Mehr hatte ich nicht gesagt. Dass es Ausdrücke gibt, die sich in ABAP boolesch interpretieren lassen, wusste ich, kannte aber nicht die genauen Zusammenhänge (die ich in der F1-Hilfe von ABAP trotz Suche bisher auch nicht gefunden habe).
Fragt sich nur wie, wenn man nichts zum Vergleichen hat. Ausprobieren kann man allenfalls, ob der Interpreter einem da eine Fehlermeldung wirft.ausprobieren.