Code: Alles auswählen.
CASE datelemt.
When datelemt .
DELETE l_t_rsdiobj WHERE iobjnm+2(5) <> datelemt.
ENDCASE.Code: Alles auswählen.
CASE datelemt.
WHEN ' '. "also leer
* hier deine Verarbeitung wenn nichts eingegeben wurde
WHEN OTHERS. "also wenn das Feld gefüllt wurde
* hier deine Verarbeitung wenn das Feld gepflegt wurde
ENDCASE.wenn nichts eingegeben wurde soll er andere Case Anweisungen ausführen nur eben diese nicht ??* hier deine Verarbeitung wenn nichts eingegeben wurde
Code: Alles auswählen.
DELETE l_t_rsdiobj WHERE iobjnm+2(5) <> datelemt.Code: Alles auswählen.
DELETE l_t_rsdiobj WHERE iobjnm+2(5) <> 'EINGABE. Na was denn nun, nichts tun oder doch was tun?patlau hat geschrieben:also das er bei ' ' nichts weiter tun soll...ausser die Case Anweisungen die soweiso laufen?
Code: Alles auswählen.
CASE datelemt.
WHEN ' '.
* tue nichts.
WHEN OTHERS.
DELETE l_t_rsdiobj WHERE iobjnm+2(5) <> datelemt.
ENDCASE.Code: Alles auswählen.
CASE datelemt.
WHEN ' '. "also leer
WHEN OTHERS. "also wenn das Feld gefüllt wurde
Delete l_t_rsdiobj Where iobjnm+2(5) <> datelemt.
ENDCASE.Code: Alles auswählen.
START-OF-SELECTION.
PERFORM infos.
SORT l_t_rsdiobj BY iobjnm+7(2) DESCENDING.
CASE merkmal.
WHEN 'M01'.
DELETE l_t_rsdiobj WHERE iobjnm(1) <> 'C' .
WHEN 'M02'.
DELETE l_t_rsdiobj WHERE iobjnm(1) <> 'U'.
WHEN 'M03'.
DELETE l_t_rsdiobj WHERE iobjnm(1) <> 'V' .
ENDCASE.
CASE mrkmlart.
WHEN 'MA01' .
DELETE l_t_rsdiobj Where iobjnm+1(1) <> '0'.
WHEN 'MA02' .
DELETE l_t_rsdiobj Where iobjnm+1(1) <> '5'.
ENDCASE.
CASE datelemt.
WHEN ' '. "also leer
WHEN OTHERS. "also wenn das Feld gefüllt wurde
Delete l_t_rsdiobj Where iobjnm+2(5) <> datelemt.
ENDCASE.
If last_obj = 'X' and next_obj <> 'X'.
PERFORM lastobj.
ELSEIF next_obj = 'X' and last_obj <> 'X'.
PERFORM nextobj.
ELSEIF last_obj = 'X' and next_obj = 'X'.
PERFORM bothobj.
ELSEIF last_obj <> 'X' and next_obj <> 'X'.
PERFORM allobj.
Endif.Code: Alles auswählen.
IF datelemt IS NOT INITIAL.
DELETE l_t_rsdiobj WHERE iobjnm+2(5) <> datelemt.
ENDIF.Folgende Benutzer bedankten sich beim Autor Thanatos82 für den Beitrag:
patlau
Code: Alles auswählen.
DATA: lv_strlen TYPE i.
lv_strlen = STRLEN( datelemt ).
IF lv_strlen = 0 OR lv_strlen = 5.
* ignorieren und weiterverabeiten.
ELSE.
MESSAGE 'Geben Sie ein 5 stelliges Datenobjekt an.' TYPE 'S' DISPLAY LIKE 'E'.
EXIT. "ggf. RETURN, da bin ich mir grad nicht sicher, musst du testen
ENDIF.Da der User die Eingabe auf dem SelScreen macht, könnte man diese doch auch dort prüfen:Thanatos82 hat geschrieben:Ermittle beim START OF SELECTION die Stringlänger
Code: Alles auswählen.
PARAMETERS: feld TYPE char05.
AT SELECTION-SCREEN ON feld.
lv_strlen = STRLEN( datelemt ).
IF lv_strlen < 5 OR lv_strlen > 0.
MESSAGE 'Geben Sie ein 5 stelliges Datenobjekt an.' TYPE 'E'.
ENDIF.Folgende Benutzer bedankten sich beim Autor JHM für den Beitrag:
Thanatos82