Code: Alles auswählen.
PARAMETERS P_carrid TYPE sflight-carrid.
PARAMETERS p_carr2 TYPE sflight-carrid.
DATA: lt_einzelfluege TYPE TABLE OF sflight.
DATA: ls_flugverbindungen TYPE spfli.
DATA: ls_einzelfluege TYPE sflight.
DATA: ls_buchung TYPE sbook.
DATA: lt_buchung TYPE TABLE OF sbook.
START-OF-SELECTION.
DATA: lt_flugverbindungen TYPE TABLE OF spfli.
DATA: lt_fluege TYPE TABLE OF spfli.
DATA: lv_ergebnis TYPE i.
SELECT * FROM spfli INTO TABLE lt_flugverbindungen.
PERFORM ausgabe_flugverbindungen USING lt_flugverbindungen.
SELECT * FROM sbook INTO TABLE lt_buchung
WHERE carrid = p_carrid.
PERFORM bookid USING lt_buchung.
FORM ausgabe_flugverbindungen USING pt_flugverbindungen LIKE lt_flugverbindungen.
DATA: lt_einzelfluege TYPE TABLE OF sflight.
DATA: ls_flugverbindungen TYPE spfli.
DATA: ls_einzelfluege TYPE sflight.
LOOP AT pt_flugverbindungen INTO ls_flugverbindungen.
SELECT * FROM sflight INTO TABLE lt_einzelfluege
WHERE carrid = ls_flugverbindungen-carrid
AND connid = ls_flugverbindungen-connid.
PERFORM ausgabe_flugverbindung USING ls_flugverbindungen.
LOOP AT lt_einzelfluege INTO ls_einzelfluege.
PERFORM ausgabe_einzelflug USING ls_einzelfluege.
ENDLOOP.
ENDLOOP.
ENDFORM.
FORM ausgabe_flugverbindung USING ps_flugverbindungen TYPE spfli.
WRITE: / 'Flugverbindung:'.
WRITE: / ' ', ps_flugverbindungen-carrid, ps_flugverbindungen-connid.
ENDFORM.
FORM ausgabe_einzelflug USING ps_einzelfluege TYPE sflight.
WRITE : / 'Einzelflug'.
WRITE : / ' ',ps_einzelfluege-carrid, ps_einzelfluege-connid,
ps_einzelfluege-fldate.
WRITE: / ' ','Preis' ,ps_einzelfluege-price.
WRITE: / ' ','Seatsmax', ps_einzelfluege-seatsmax.
ULINE.
"perform berechne offene_plätze using ps_einzelfluege changig lv_anzahl_frei
"write: / ' ','Offene Plätze', lv_anzahl_frei
ENDFORM.
FORM substraktion USING p_nummer1 TYPE i p_nummer2 TYPE i CHANGING ergebnis TYPE i.
ergebnis = p_nummer1 - p_nummer2.
ENDFORM.
FORM bookid USING ps_buchung LIKE lt_buchung.
LOOP AT lt_buchung INTO ls_buchung.
WRITE: ' ', 'Buchungsnummer'.
WRITE: / ls_buchung-bookid.
ENDLOOP.
ENDFORM.
Dein carr2 ist vom Ansatz her falsch. Was Du da brauchst, ist kein Parameter, sondern eine SELECT-OPTION. Also(Nebenbei wäre noch gut wenn die Parameters (carrid und carr2 tagsächlich die Fluglinien eingrenzen würden :D)
Code: Alles auswählen.
DATA dummy_carrid TYPE sflight-carrid. " Aus technischen Gründen notwendig. Dieses Feld brauchst Du später nicht mehr.
SELECT-OPTIONS s_carrid for dummy_carrid.
Code: Alles auswählen.
SELECT * FROM sbook INTO TABLE lt_buchung
WHERE carrid IN s_carrid.
Folgende Benutzer bedankten sich beim Autor DeathAndPain für den Beitrag:
ocb
Wirklich? Was bringen die?Zu meinem Verständnis von Doppelpunkten bei DATA: So wie ich das verstehe sind Doppelpunkte für Kettensätze. Da ich bei DATA keine verwende könnte ich sie weg lassen, finde die Formatierung aber mit den Doppelpunkten übersichtlich.
Code: Alles auswählen.
DATA: abc TYPE i,
def TYPE string,
ghi TYPE boolean_flg.
Die Last auf der Datenbank ist wesentlich höher, weil sie alle Felder transferiert, obgleich Du davon nur einen Bruchteil brauchst. Spürt man heute nicht mehr so; in früheren Zeiten waren Programme mit SELECT * erheblich langsamer. Bei S/4 HANA ist * meines Wissens sogar verboten (sage ich, ohne HANA-Programmierer zu sein).* Sagt meines wissen aus das ALLE Spalten gelesen werden sollen, in meinem Fall würde bookid auslesen aber reichen, stimmt.
https://github.com/SAP/styleguides/blob ... clarations
Code: Alles auswählen.
DATA: eins
, zwei
, drei
.
Code: Alles auswählen.
eins := zwei.
Code: Alles auswählen.
DATA:eins:TYPE:c:LENGTH:1::::.
Ich persönlich finde Komma bei DATA durchaus schön, genau wie auch bei TYPES. Häufig definiert man ja auch eine Struktur direkt mit DATA (nämlich dann, wenn man sie nur in der lokalen Routine, also nicht in Interfaces, benötigt und auch keine interne Tabelle daraus konstruieren möchte). Aber auch bei WRITE sind Kommas mehr als nützlich.msfox hat geschrieben: ↑02.03.2023 17:28https://github.com/SAP/styleguides/blob ... clarations
Ich nehme die auch nicht, aber mein Kollege mag die sehr. Hatten letzten eine lange Diskussion darüber. Aber laut CleanCode der SAP, soll man die nicht mehr wirklich nehmen.