Wildcards Suche in Parameters

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
5 Beiträge • Seite 1 von 1
5 Beiträge Seite 1 von 1

Wildcards Suche in Parameters

Beitrag von Oliver Hagn (ForumUser / 21 / 0 / 0 ) »
Hallo zusammen,

da ich in der Selektion zwei Felder nebeneinander haben möchte muß ich
statt SELECT-OPTIONS PARAMETERS verwenden, um auch 'keine'
Eingaben zuzulassen habe ich dieses wie folgt gelöst:

Code: Alles auswählen.

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.          "Scuhbegriff 2

RANGES: r_sort1 FOR adrc-sort1,
        r_sort2 FOR adrc-sort2.

IF NOT pa_sort1 IS INITIAL.
  r_sort1-sign = 'I'.
  r_sort1-option = 'EQ'.
  r_sort1-low = pa_sort1.
  APPEND r_sort1.
  CLEAR r_sort1.
ENDIF.

IF NOT pa_sort2 IS INITIAL.
  r_sort2-sign = 'I'.
  r_sort2-option = 'EQ'.
  r_sort2-low = pa_sort1.
  APPEND r_sort2.
  CLEAR r_sort2.
ENDIF.

SELECTION-SCREEN END OF LINE.

*SELECT-OPTIONS: so_sort1 FOR itab_input-sort1       "Suchbegriff 1
*                    NO-EXTENSION NO INTERVALS,
*                so_sort2 FOR itab_input-sort2       "Suchbegriff 2
*                    NO-EXTENSION NO INTERVALS.
Funktioniert alles soweit auch wunderbar, nur die Suche mit Wildcards
funktioniert nicht. Hat hier jemand einen Tipp für mich, bzw. eine kompl.
andere Lösung?

Gruß Oliver

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
Hallo Oliver,

Du musst für die Felder prüfen, ob ein '*' vorhanden ist. Wenn ja setzt Du OPTION auf CP (statt 'EQ')...
Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .

Beitrag von brinam ( / / 0 / 3 ) »
Hallo Oliver,

m.E. könntest Du Dir den Aufbau der ranges r_sort1/r_sort2 auch ersparen, wenn Du die Platzhalter * und + durch die technischen Platzhalter ersetzt,
die man beim select abfragen kann.

IF NOT pa_sort1 IS INITIAL.
REPLACE ALL OCCURRENCES OF '+' IN pa_sort1 WITH '_'.
REPLACE ALL OCCURRENCES OF '*' IN pa_sort1 WITH '%'.
ENDIF.

Beitrag von Oliver Hagn (ForumUser / 21 / 0 / 0 ) »
Hallo Britta,

danke für die Hilfe, irgendwie habe ich das aber noch nicht verstanden!
Ist es richtig, daß ich meinen Teil

Code: Alles auswählen.

IF NOT pa_sort1 IS INITIAL. 
  r_sort1-sign = 'I'. 
  r_sort1-option = 'EQ'. 
  r_sort1-low = pa_sort1. 
  APPEND r_sort1. 
  CLEAR r_sort1. 
ENDIF. 
durch diesen Teil

Code: Alles auswählen.

IF NOT pa_sort1 IS INITIAL. 
REPLACE ALL OCCURRENCES OF '+' IN pa_sort1 WITH '_'. 
REPLACE ALL OCCURRENCES OF '*' IN pa_sort1 WITH '%'. 
ENDIF.
ersetzen muß?
Wenn ich das mache meckert er folgendes an:

Die Angabe "OCCURRENCES OF '+' IN PA_SORT1" ist nicht vorgesehen.

Vielen Dank für Deine Hilfe!

Gruß, Oliver

Beitrag von brinam ( / / 0 / 3 ) »
Hallo Oliver,

hmm, bei mir meldet der Compiler keinen Fehler. Ich weiß nicht, ob das ein Befehl ist, den es unter gewissen Releaseständen (noch) nicht gibt, kann ich mir aber nicht so richtig vorstellen. Ich arbeite unter 4.7. Schau doch mal in die F1-Hilfe.
Ich habe ein kleines Testprogramm geschrieben, und das funktioniert.

Code: Alles auswählen.

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.

Seite 1 von 1

Vergleichbare Themen

2
Antw.
1686
Views
Abrechnung Konditionskontrakte Wildcards
von SAP_ENTWICKLER » 20.05.2019 14:45 • Verfasst in Sales and Distribution
2
Antw.
1295
Views
Wildcards übersetzten und die Probleme damit
von danielA. » 12.05.2006 10:59 • Verfasst in ABAP® Core
1
Antw.
2623
Views
LSMW - periodische Datenübernahme - wildcards in Dateiname
von Niekohle » 20.08.2007 13:04 • Verfasst in ABAP® für Anfänger
2
Antw.
10641
Views
Parameters-Name ändern
von aaaarrrggh » 10.10.2006 11:58 • Verfasst in ABAP® für Anfänger
3
Antw.
1952
Views
SET PARAMETERS tut nicht so wie ich will
von Ralph » 25.08.2005 16:25 • Verfasst in ABAP® Core

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Zeilenumbrüche ersetzen
vor 23 Minuten von rob_abc 2 / 9
Dialog-Container mit Toolbar/Status
vor 19 Stunden von tar gelöst 19 / 2083
SAP Trial Version für SAP Fiori
vor 23 Stunden von tar 2 / 1444

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Zeilenumbrüche ersetzen
vor 23 Minuten von rob_abc 2 / 9
Dialog-Container mit Toolbar/Status
vor 19 Stunden von tar gelöst 19 / 2083
SAP Trial Version für SAP Fiori
vor 23 Stunden von tar 2 / 1444

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
Gestern von Bright4.5 1 / 504
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2143
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8738