Ausgabe einer internen Tabelle

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

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

Ausgabe einer internen Tabelle

Beitrag von Lord_Dunkelziffer (ForumUser / 5 / 1 / 0 ) »
Hallo!
Ich bin absoluter ABAP-Neuling und versuche gerade eine Übung zu lösen. Ich möchte mir die Zeilen der internen Tabelle "kilometerstaende" über eine Schleife ausgeben lassen:

TYPES: BEGIN OF str_auto_km,
wagennummer TYPE i,
km TYPE i,
END OF str_auto_km.

DATA: kilometerstaende TYPE SORTED TABLE OF str_auto_km WITH
UNIQUE KEY wagennummer,
fahrt TYPE str_auto_km.

fahrt-wagennummer = 1.
fahrt-km = 100.
COLLECT fahrt INTO kilometerstaende.
fahrt-wagennummer = 2.
fahrt-km = 30.
COLLECT fahrt INTO kilometerstaende.
fahrt-wagennummer = 1.
fahrt-km = 50.
COLLECT fahrt INTO kilometerstaende.

LOOP AT kilometerstaende into fahrt.
WRITE: fahrt-wagennummer, fahrt-km.
ENDLOOP.

Nun habe ich das Problem, dass mir nur eine einzige Zeile ausgegeben wird. Ich hätte aber gern zwei Zeilen mit den beiden Spalten "wagennummer" und "km". Wie veränder ich den Code, um die gewünschte Tabellenausgabe zu erhalten?

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


Re: Ausgabe einer internen Tabelle

Beitrag von ewx (Top Expert / 4844 / 311 / 640 ) »
Es fehlt der /

Code: Alles auswählen.

WRITE: / variable1, variable2.

Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag:
Lord_Dunkelziffer


Re: Ausgabe einer internen Tabelle

Beitrag von DeathAndPain (Top Expert / 1939 / 257 / 412 ) »
Und noch ein Tipp: Wenn Du eine numerische Spalte als Schlüsselspalte verwendest, wie in Deinem Fall die Wagennummer, dann nimmt man dafür üblicherweise nicht den Typ I, sondern N. Das wird in SAP überall so gemacht (Materialnummer, Personalnummer, Kundennummer, Auftragsnummer usw.).

Re: Ausgabe einer internen Tabelle

Beitrag von deejey (Specialist / 422 / 129 / 45 ) »
... denn sonst wird "wagennummer" beim collect ebenfalls summiert

Re: Ausgabe einer internen Tabelle

Beitrag von DeathAndPain (Top Expert / 1939 / 257 / 412 ) »
Nope. COLLECT summiert über den Primärschlüssel der Tabelle auf. Wenn Du bei der Definition einer Standardtabelle keinen Schlüssel angibst, dann baut SAP automatisch einen DEFAULT KEY aus den zeichenartigen Feldern auf, das stimmt. Aber der Threadersteller hat ja den Primärschlüssel seiner Tabelle explizit (und inhaltlich sauber) spezifiziert. Damit ist klar definiert, über welche Spalten COLLECT aufsummiert, egal welchen Typ diese haben.

Folgende Benutzer bedankten sich beim Autor DeathAndPain für den Beitrag:
deejey


Re: Ausgabe einer internen Tabelle

Beitrag von deejey (Specialist / 422 / 129 / 45 ) »
oha, das war mir garnicht bekannt 😜

Re: Ausgabe einer internen Tabelle

Beitrag von DeathAndPain (Top Expert / 1939 / 257 / 412 ) »
So kommt's, wenn die Leute alle nur mit ineffizienten Standardtabellen arbeiten. 😁 Das halte ich übrigens auch für den Grund, weshalb Standardtabellen überhaupt einen Primärschlüssel haben. Im Regelfall hat der ja keinerlei Auswirkungen, weswegen ich meine Standardtabellen (da wo ich welche brauche) in aller Regel explizit mit WITH EMPTY KEY deklariere.

Re: Ausgabe einer internen Tabelle

Beitrag von deejey (Specialist / 422 / 129 / 45 ) »
Das Ding ist, dass manche von uns sich nicht ausreichend im Detail damit beschäftigt haben, was auch nur gut geht so lange man es nicht mit Massendaten zu tun hat. Wir haben gerade so einen Fall, keine sortierten Tabellen, dafür viele IF LINE_EXISTS und READ TABLE WITH KEY ohne BINARY SEARCH, was bei einigen 100.000 Sätzen und viel ITab-Gegurke erhebliche Performanceeinbußen bringt, dieses mal liegt es nicht wie alle erwartet haben an der DB. Dann gibt es einige LOOP mit GROUP BY was ich bis vor paar Monaten noch garnicht kannte, ich habe keinen Schimmer wie das performancetechnisch zu werten ist, wird Zeit sich damit mal zu beschäftigen 🤓

EMPTY KEY habe ich auch mal gesehen :) aber nie dazu gekommen zu erforschen was das eigentlich genau bedeutet

Re: Ausgabe einer internen Tabelle

Beitrag von Lord_Dunkelziffer (ForumUser / 5 / 1 / 0 ) »
Ich danke euch allen vielmals für die nützlichen Hinweise!!

Re: Ausgabe einer internen Tabelle

Beitrag von ralf.wenzel (Top Expert / 3924 / 200 / 280 ) »
deejey hat geschrieben:
05.11.2019 11:44
Dann gibt es einige LOOP mit GROUP BY was ich bis vor paar Monaten noch garnicht kannte
Gibt es auch noch nicht lange.


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Ausgabe einer internen Tabelle

Beitrag von black_adept (Top Expert / 4087 / 126 / 940 ) »
DeathAndPain hat geschrieben:
05.11.2019 10:46
[...]wenn die Leute alle nur mit ineffizienten Standardtabellen arbeiten. [...]
Entweder willst du sagen, dass
  • Standardtabellen per se ineffizient sind oder
  • Leute Standardtabellen nur dann verwenden wenn es nicht effizient ist das zu tun
Könntest du mal spezifizieren gegen wen du hier gerade schießt?
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Ausgabe einer internen Tabelle

Beitrag von DeathAndPain (Top Expert / 1939 / 257 / 412 ) »
Gegen diejenigen, die aus alter Gewohnheit immer nur Standardtabellen verwenden und sich um die Performance keinen Kopp machen. Nach meiner Erfahrung gilt das leider immer noch für einen erheblichen Prozentsatz der Entwickler. Lies deejeys letzte Antwort, dann siehst Du, was ich meine.
deejey hat geschrieben:EMPTY KEY habe ich auch mal gesehen :) aber nie dazu gekommen zu erforschen was das eigentlich genau bedeutet
Es bedeutet nur, dass bei der Standardtabelle kein Default Key (also ein automatisch erzeugter Primärschlüssel) erzeugt werden soll. Dieser ist in den allermeisten Fällen nutzlos; er wird nur bei COLLECT oder AT-Statements innerhalb eines LOOPs genutzt. Mit WITH EMPTY KEY spart man also ein paar Byte. Die sind sicherlich nicht der Rede wert, aber man erklärt damit schon bei der Deklaration der Tabelle sehr deutlich, dass man bei dieser Tabelle keinen Schlüssel braucht, dass es sich also, wie Ralf es ausdrücken würde (und ich sehe das genauso), einfach nur um eine Liste handelt.

Re: Ausgabe einer internen Tabelle

Beitrag von ralf.wenzel (Top Expert / 3924 / 200 / 280 ) »
DeathAndPain hat geschrieben:
06.11.2019 08:57
Mit WITH EMPTY KEY spart man also ein paar Byte. Die sind sicherlich nicht der Rede wert,
...aber man hat eine voll spezifizierte, nicht generische Tabelle!


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Seite 1 von 1

Vergleichbare Themen

0
Antw.
1908
Views
Double_Click - Ausgabe einer internen Tabelle
von honeyjam » 07.01.2011 09:05 • Verfasst in ABAP® für Anfänger
2
Antw.
1725
Views
fehlerhafte Ausgabe einer internen Tabelle im Popup
von Alexander D. » 13.03.2007 12:11 • Verfasst in ABAP® Core
4
Antw.
1973
Views
Probleme bei Ausgabe einer internen Liste auf Präsentationsserver
von Doobie » 04.07.2024 12:10 • 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

Aktuelle Forenbeiträge

Zeilenumbrüche ersetzen
vor 19 Stunden von ralf.wenzel 6 / 169
Dialog-Container mit Toolbar/Status
Gestern von tar gelöst 19 / 2334
SAP Trial Version für SAP Fiori
vor 2 Tagen von tar 2 / 1548

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 19 Stunden von ralf.wenzel 6 / 169
Dialog-Container mit Toolbar/Status
Gestern von tar gelöst 19 / 2334
SAP Trial Version für SAP Fiori
vor 2 Tagen von tar 2 / 1548

Unbeantwortete Forenbeiträge

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