Probleme mit PARAMETER und SELECT

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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

Probleme mit PARAMETER und SELECT

Beitrag von Gast ( / / 0 / 3 ) »
Ich habe folgendes Problem: Ich lese beim Start eines Reports mehrere Werte als Parameter und SELECT-Options ein auf die bei der SELECT Anweisung mittels WHERE Klausel auf vorhandensein in einer Tabelle geprüft werden. Also soweit nichts besonderes. Das Problem liegt jetzt daran, dass wenn kein Parameter eingegeben wird, die Abfrage so realisiert sein soll, dass es wie ein Jokerzeichen/Wildcard gehandhabt wird, es also egal ist, was in der Tabelle steht und alles zugehörige ausgelesen wird. Wie kann ich das realisieren ?

Wenn ich nur ein Parameter hätte, könnte man es ja einfach über eine IF-Abfrage machen und dann dementsprechend zwei verschiedene SELECT-Anweisungen implementieren. Da ich aber nun 4 bis 5 Parameter übergeben lassen will, müsste ich eine unheimlich große Anzahl an verschiedenen SELECT-Anweisungen implementieren. Das ganze sollte doch auch einfacher gehen oder ? Hat da jemand eine Idee ? Gibts ein Modul oder ne Variante die das ganze löst ?

Danke schon mal im Voraus.

Schönen Gruß Hannes

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


Beitrag von Nicole_80 (Specialist / 120 / 0 / 0 ) »
Hallo Hannes,

also weiß nicht ob es eine bessere Lösung gibt, aber ich habe mir für solche Parameter immer ein interne Tabelle aufgebaut, die wie ein "Select-Options-Feld" aussieht.

Beispiel mit dem Feld Kundennummer:

DATA: begin of s_kunnr occurs 0,
SIGN type c,
OPTION(2) type c,
LOW(11) type c,
HIGH(11) type c,
end of s_kunnr.

Dann kannst du die Werte aus deinem Parameter in die Tabelle übertragen:

* Includieren:
s_kunnr = 'IEQ1234'. append s_kunnr.

* Excludieren (ausschließen):
s_kunnr = 'EEQ1234'. append s_kunnr.

Oder mit Concatenate selber als Wildcard zusammenbauen.

Im Select kannst du dein "Select-Option-Feld" wie die anderen Select-Option-Felder mit "IN" abfragen.


:!: Wie gesagt, weiß nicht ob es eine bessere Lösung gibt, aber so habe ich solche Sonderlösungen programmiert. :!:

Gruß,
Nicole

Beitrag von Gast ( / / 0 / 3 ) »
erstmal danke für deine antwort, werde das morgen mal versuchen umzusetzen auch wenn ich noch nicht zu hundertprozent dahinter gestiegen bin wie deine lösung funktioniert. aber ich denke das wird morgen in alles frische besser.

hat vielleicht trotzdem jemand anders noch vorschläge. wäre sehr hilfreich.

Grüße Hannes

check es !

Beitrag von Gast (BIGCompi) ( / / 0 / 3 ) »
die Anforderung ist eine SELECT-Options, also
kein Problem, weil SELECT-Options eine Range ist, und wenn nix drin ist, heißt das grundsätzlich alles "selektieren"!, da gibts nix zu prüfen!

wenn du allerdings eine Abfrage bauen mußt, die alle Parameter und Select-Options (befüllt oder nicht) in Summe berücksichtigen sollst, hilft nur eins:

temporäres Programm erstellen oder dynamisches OPEN SQL !

Beitrag von Gast ( / / 0 / 3 ) »
Mach einfach aus allen Parameter eine Select-Options mit "NO INTERVALS NO-EXTENSION".

Beispiel: s_matnr FOR mara-matnr NO INTERVALS NO-EXTENSION.

Es sieht dann aus, wie ein Parameter, ist aber schon eine Select-option.

Der select auf die Tabelle ist dann wie bei allen Range-tabellen.

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

die Umwandlung in eine SELECT-OPTION mit NO INTERVALS NO-EXTENSION ist eine Variante.
Manchmal kann es jedoch gewünscht sein, dass genau der Wert (EQ), als Muster (CP) oder eben keine Eingrenzung verwendbar sein sollen.

In diesem Fall finde ich die Vorgehensweise von Nicole_80 empfehlenswert, wobei ich ihre Art der Deklaration der Range-Tabelle nicht befürworte.
Einfacher geht es mit:

Code: Alles auswählen.

DATA:
  gr_kunnr TYPE RANGE OF kunnr WITH HEADER LINE,
* statt WITH HEADER LINE präferiere ich eine explizite Workarea
  gw_kunnr LIKE LINE OF gr_kunnr.
Als weitere Möglichkeit gibt es dann noch den Funktionsbaustein RS_COMPLEX_SELECTION (FuGr ALDB), der eine genaue Definition erlaubt, welche SELECT-OPTION-Parameter erlaubt sind.
Gruß
Ereglam


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

Beitrag von Nicole_80 (Specialist / 120 / 0 / 0 ) »
Wußte doch das es noch andere Lösungen geben muss!
Aber freut mich das ich nicht ganz so falsch war! :wink:

Gruß,
Nicole

Seite 1 von 1

Vergleichbare Themen

4
Antw.
18652
Views
Select nach Parameter & Select-Options
von doeme » 10.07.2012 16:37 • Verfasst in ABAP® für Anfänger
2
Antw.
1488
Views
Probleme mit dem Select
von just » 18.01.2006 23:18 • Verfasst in Basis
1
Antw.
1165
Views
Probleme mit select * where (table)
von Flo » 05.12.2006 16:49 • Verfasst in ABAP® Core
7
Antw.
5842
Views
Massendatenverarbeitung -> Probleme im Select => Help
von hfahrian » 10.01.2005 17:50 • Verfasst in ABAP® Core
15
Antw.
1208
Views
Von parameter in select-options wechseln
von User1234 » 05.08.2021 10:17 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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

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.

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
vor 2 Tagen von Bright4.5 1 / 604
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2233
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8826