Select Range

Getting started ... Alles für einen gelungenen Start.
12 Beiträge • Seite 1 von 1
12 Beiträge Seite 1 von 1

Select Range

Beitrag von Senshi (ForumUser / 29 / 0 / 0 ) »
Hallo,

ich habe eine kleine Frage zum Select Range.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.

SELECT-OPTIONS l_lagertyp FOR g_lagertyp.
SELECT-OPTIONS l_gasse FOR g_gasse.
SELECT-OPTIONS l_lagerplatz FOR g_lagerplatz.
SELECT-OPTIONS l_Status FOR g_status.

SELECTION-SCREEN END OF BLOCK b2. "Ende Block b2
SELECTION-SCREEN END OF BLOCK b1. "Ende Block b1

Jetzt meine Frage - wie kann ich über eine Select-Anweisung alle 4 Werte in eine Tabelle reinschreiben? Bin bisher so vorgegangen, dass ich über eine IF-Abfrage zunächst gecheckt habe, ob die eingegebenen Werte Initial sind. Sind sie nicht initial - soll die Select Anweisung ausgeführt werden. Sind alle 4 Felder initial hab ich den Befehl Leave Program eingefügt. Wie gehe ich mit dem Intervall um? Z.B.: Lagertyp - von 010 bis 030.

Gibt es eine bessere Variante? Funktion? Wie geh ich am besten an die Sache ran. Bin leider noch ein absoluter Newbie und wäre für jede Hilfe sehr dankbar.

Viele Grüße

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


Beitrag von khb (Specialist / 184 / 7 / 1 ) »
Mach doch einfach Muß-Felder daraus, dann sparst Du dir die IF-Abfragen:

select-options: ... for .... obligatory.

F1-Hilfe Select-Options:

Zusatz 1
... OBLIGATORY

Wirkung
Dieser Zusatz definiert das erste Eingabefeld des Selektionskriteriums auf dem Selektionsbild als Muss-Feld. Ohne Eingabe in diesem Feld kann der Benutzer die Anzeige des Selektionsbildes nicht mit der Funktion Ausführen (F8) verlassen, sondern nur über die Funktionen Zurück, Beenden oder Abbrechen.

Meintest Du das?

Re: Select Range

Beitrag von ralf.wenzel (Top Expert / 3956 / 202 / 281 ) »
Senshi hat geschrieben:Jetzt meine Frage - wie kann ich über eine Select-Anweisung alle 4 Werte in eine Tabelle reinschreiben? Bin bisher so vorgegangen, dass ich über eine IF-Abfrage zunächst gecheckt habe, ob die eingegebenen Werte Initial sind. Sind sie nicht initial - soll die Select Anweisung ausgeführt werden.
Eiweh.

Gegenfrage: Hast du keine DDIC-Typen auf die du referenzieren kannst? Warum nennst du die Ranges nicht s_lagertyp etc? So sieht man sofort was es ist.

Code: Alles auswählen.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.

SELECT-OPTIONS s_feld1      FOR ddic-tabelle-feld1.
SELECT-OPTIONS s_feld2      FOR ddic-tabelle-feld2.
SELECT-OPTIONS s_feld3      FOR ddic-tabelle-feld3.
SELECT-OPTIONS s_feld4      FOR ddic-tabelle-feld4.

SELECTION-SCREEN END   OF BLOCK b2. "Ende Block b2
SELECTION-SCREEN END   OF BLOCK b1. "Ende Block b1

....

select (feldliste)
from (ddic-tabelle)
into table (zieltabelle)
where feld1 IN s_feld1
 and   feld2 IN s_feld2
.....

(unter der Annahme dass die SelOpt-Ranges
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing
Neuer Artikel über BRF+ in der neuen iX 05/25!

Select Range

Beitrag von Senshi (ForumUser / 29 / 0 / 0 ) »
Vielen Dank für Deine Message, leider trifft es das nicht ganz.

Wie kann ich die Werte die in den einzelnen Feldern eingegeben werden übernehmen bzw. in eine Tabelle reinschreiben. Wenn der Benutzer zum Beispiel eingibt:

Lagerplatzsuche entweder nur eingibt 010 oder einen Bereich von 010 bis 030
oder
Gassensuche - zum Beispiel nur A oder A - C
oder
Lagerplatz - zum Beispiel A123 oder A123 - C123
oder
Status - zum Beispiel frei / unfrei.

Wie kann ich das ganze umsetzen?

vielen Dank im voraus

Beitrag von khb (Specialist / 184 / 7 / 1 ) »
sie Posting von ralf:

select (Felder angeben) from (DDIC-Tabelle)
into table (deien_tabelle)
where ddic-lagertyp in l_lagertyp
and ddic-gasse in l_gasse
....

Select Range

Beitrag von Senshi (ForumUser / 29 / 0 / 0 ) »
Leider funktioniert das nicht. Ich hab mir anschließend per Loop Anweisung die Ausgabe gebastelt. Leider wird bei dieser Variante nur das Intervall ausgegeben das vom Benutzer eingegeben worden ist - nicht die tatsächlichen Werte aus der DB

Viele Grüße

Re: Select Range

Beitrag von ralf.wenzel (Top Expert / 3956 / 202 / 281 ) »
So gehts nicht weiter, poste doch mal den ganzen Quelltext.


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing
Neuer Artikel über BRF+ in der neuen iX 05/25!

Select Range

Beitrag von Senshi (ForumUser / 29 / 0 / 0 ) »
hier der Code:

REPORT ANZ_LP.

TABLES: LGTAB.

*& Variableninitialisierung für Selection-Screen / -Options
DATA:
g_lgtyp TYPE LGTAB-lgtyp,
g_lggas TYPE LGTAB-gasse,
g_lgpla TYPE LGTAB-lgpla,
g_lgstat TYPE LGTAB-status,
lt_ausg TYPE TABLE OF ANZ_LP,
l_ausg TYPE ANZ_LP.

*& Initialisierung Selectionscreen
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.

SELECT-OPTIONS s_lgtyp FOR g_lgtyp.
SELECT-OPTIONS s_lggas FOR g_lggas.
SELECT-OPTIONS s_lgpla FOR g_lgpla.
SELECT-OPTIONS s_lgstat FOR g_lgstat.

SELECTION-SCREEN END OF BLOCK b2. "Ende Block b2
SELECTION-SCREEN END OF BLOCK b1. "Ende Block b1

PERFORM main.
*---------------------------------------------------------------------*
* FORM main *
*---------------------------------------------------------------------*
FORM main.

SELECT lgtyp gasse lgpla status
FROM LGTAB
INTO CORRESPONDING FIELDS OF TABLE lt_ausg
WHERE lgtyp IN s_lgtyp
AND gasse IN s_lggas
AND lgpla IN s_lgpla
AND status IN s_lgstat.

LOOP AT lt_ausg INTO l_ausg.
write: / s_lgtyp, s_lggas, s_lgpla, s_lgstat.
ENDLOOP.

ENDFORM. "Ende Form Main

Beitrag von khb (Specialist / 184 / 7 / 1 ) »
works as designed:

Code: Alles auswählen.

LOOP AT lt_ausg INTO l_ausg. 
write: / s_lgtyp, s_lggas, s_lgpla, s_lgstat. 
ENDLOOP. 
was soll auch anderes angezeigt werden, wenn Du die select-options ausgibst?

write: / l_ausg-lgtyp, l_ausg_lggas, l_ausg-lgpla, l_ausg-lgstat.

Und die select-options auch gleich verbessern:

SELECT-OPTIONS s_lgtyp FOR lgtab-lgtyp.
SELECT-OPTIONS s_lggas FOR lgtab-lggas.
SELECT-OPTIONS s_lgpla FOR lgtab-lgpla.
SELECT-OPTIONS s_lgstat FOR lgtab-_lgstat.

Dann kannst Du Dir die Variablendefinition für die select-options sparen.

btw, wo ist denn anz_lp definiert?

Select Range

Beitrag von Senshi (ForumUser / 29 / 0 / 0 ) »
im DDIC

Beitrag von khb (Specialist / 184 / 7 / 1 ) »
alles klar, klappt es nun?

Select Range

Beitrag von Senshi (ForumUser / 29 / 0 / 0 ) »
vielen Dank - hat funktioniert

Seite 1 von 1

Vergleichbare Themen

3
Antw.
2271
Views
Select mit dynamischer Range
von platx » 15.08.2009 10:59 • Verfasst in ABAP® für Anfänger
7
Antw.
8116
Views
Select Options und Range Tabellen
von gs3rr4 » 29.12.2016 14:12 • Verfasst in ABAP® für Anfänger
1
Antw.
2038
Views
Verprobung String gegen range-Variable (select-options)
von brinam » 22.09.2006 14:43 • Verfasst in ABAP® Core
3
Antw.
2609
Views
Range-Tabelle gegen Range-Tabelle abgleichen
von Romaniac » 09.02.2024 16:26 • Verfasst in ABAP® Core
2
Antw.
1619
Views
RANGE OF
von Gast » 06.12.2005 14:31 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


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

Aktuelle Forenbeiträge

FS-CD schnellstmöglich lernen
vor 2 Stunden von ralf.wenzel 1 / 65
Banf anlegen
vor 6 Tagen von wreichelt 2 / 6836
Banf anlegen
vor 6 Tagen von Manfred K. 1 / 6530
IBAN und BUT0BK
vor einer Woche von waltersen gelöst 10 / 21594
GUIXT Tabellen in Container ansprechen
vor einer Woche von Denaris 1 / 11769

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

FS-CD schnellstmöglich lernen
vor 2 Stunden von ralf.wenzel 1 / 65
Banf anlegen
vor 6 Tagen von wreichelt 2 / 6836
Banf anlegen
vor 6 Tagen von Manfred K. 1 / 6530
IBAN und BUT0BK
vor einer Woche von waltersen gelöst 10 / 21594
GUIXT Tabellen in Container ansprechen
vor einer Woche von Denaris 1 / 11769

Unbeantwortete Forenbeiträge

FS-CD schnellstmöglich lernen
vor 2 Stunden von ralf.wenzel 1 / 65
GUIXT Tabellen in Container ansprechen
vor einer Woche von Denaris 1 / 11769
Speichern Popup in MM42 verhindern
vor einer Woche von Noodl 1 / 12521
Meine Inbox
letzen Monat von Rabea1103 1 / 27383