s.a. Regular Expressions
- Select
In Select können folgende Zeichen ‚_‘ und ‚%‘ abgefragt werden.
A ‚%‘ matches any string with zero or more characters.
An ‚_‘ matches any single character.
IF NOT pa_sort1 IS INITIAL.
REPLACE ALL OCCURRENCES OF ‚+‘ IN pa_sort1 WITH ‚_‘.
REPLACE ALL OCCURRENCES OF ‚*‘ IN pa_sort1 WITH ‚%‘.
ENDIF.
REPORT ztest LINE-SIZE 125 NO STANDARD PAGE HEADING.
DATA it_such TYPE adrc OCCURS 0 WITH HEADER LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(31) text-001 FOR FIELD pa_sort1.
PARAMETERS: pa_sort1 LIKE adrc-sort1, "Suchbegriff 1
pa_sort2 LIKE adrc-sort2. "Suchbegriff 2
SELECTION-SCREEN END OF LINE.
START-OF-SELECTION.
IF NOT pa_sort1 IS INITIAL.
REPLACE ALL OCCURRENCES OF '+' IN pa_sort1 WITH '_'.
REPLACE ALL OCCURRENCES OF '*' IN pa_sort1 WITH '%'.
ENDIF.
IF NOT pa_sort2 IS INITIAL.
REPLACE ALL OCCURRENCES OF '+' IN pa_sort2 WITH '_'.
REPLACE ALL OCCURRENCES OF '*' IN pa_sort2 WITH '%'.
ENDIF.
SELECT * FROM adrc INTO TABLE it_such
WHERE sort1 LIKE pa_sort1
OR sort2 LIKE pa_sort2.
LOOP AT it_such.
WRITE: / it_such-name1, it_such-sort1, it_such-sort2.
ENDLOOP.
Weiters gilt:
In SAP gilt das #-Zeichen als sog. Escape- oder Fluchtsymbol, mit dem auch nach [Sonder-)Zeichen wie „!“ (Ausrufezeichen), „*“ (Stern) oder nach dem #-Zeichen selbst gesucht werden kann, indem dem gesuchten Zeichen ein # vorangestellt wird; bei Suche nach # also ##.
2) Select Option
In Select-options gilt:
‚+‘ entspricht einem Zeichen.
‚*‘ entspricht einer beliebigen Zeichenfolge.
‚+‘ in einer SELECT-OPTION (mit OPTION = ‚CP‘) entspricht ‚_‘ bei LIKE …
Abfrage im Code mit:
Data: lrt_repname type range of PROGNAME,
lrs_repname like line of lrt_repname.
lrs_repname-sign = 'I'.
lrs_repname-option = 'CP'.
lrs_repname-low = 'z*'.
append lrs_repname to lrt_repname.
SELECT * FROM adrc INTO TABLE it_such
WHERE sort1 in lrt_repname.