DO... VARYING vs ASSIGN INCREMENT

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

Getting started ... Alles für einen gelungenen Start.
54 Beiträge • Vorherige Seite 4 von 4 (current)
54 Beiträge Vorherige Seite 4 von 4 (current)

Re: DO... VARYING vs ASSIGN INCREMENT

Beitrag von black_adept (Top Expert / 4103 / 128 / 945 ) »
Du hattest in deinem OP 2x eine Definition für die Struktur BEISPIEL angegeben. Ich habe mich auf die 2. davon mit den Wertgruppen bezogen, da sich der ganze Thread ja um dieses Thema dreht
D&P hat geschrieben:

Code: Alles auswählen.

    DATA: BEGIN OF beispiel,
             bezeichnung1(10) type c,
             wert1 type i,
             bezeichnung2(10) type c,
             wert2 type i,
             bezeichnung3(10) type c,
             wert3 type i,
           END OF beispiel.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

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


Re: DO... VARYING vs ASSIGN INCREMENT

Beitrag von DeathAndPain (Top Expert / 1961 / 261 / 415 ) »
Okay, damit wäre der Fragepunkt ausgeräumt. Bleibt noch die Kernfrage, was Du mit den Feldern machst, die in der Tabelle vor den Feldgruppen stehen.

Re: DO... VARYING vs ASSIGN INCREMENT

Beitrag von black_adept (Top Expert / 4103 / 128 / 945 ) »
@D&P:
Beispielcoding: ok - aber ich kann dann nur mit Testdaten hantieren, da ich die Tabelle zwar auf dem System habe aber da es kein HR-System ist diese völlig leer ist.
Anlegen der "Analogstruktur". Die Tabelle HRP1020 besteht de facto aus 3 Includes und 2 Feldern. Ich lege eine analoge Struktur an, wobei ich für die letzte Struktur eine Z-Struktur verwende, die von der HRI_1020 kopiert wurde und an der markierten Stelle um eine Gruppe erweitert wurde ( Normalerweise würde ich dann die Dinger vollständig benamen - aber für die Demo reicht der Startpunkt )
Demo_0.png
Demo_2.png

Code: Alles auswählen.

REPORT.
DATA: ls_demo TYPE hrp1020.
FIELD-SYMBOLS: <ls_demo_analog> TYPE zdemo_hrp1020.
FIELD-SYMBOLS: <ls_gruppe> like <ls_demo_analog>-start.


* Ein paar Daten füllen
ls_demo-langu = 'D'.
ls_demo-bed01 = 10.
ls_demo-bed02 = 20.
ls_demo-bed03 = 30.
ls_demo-bed04 = 40.
* und die Struktur 4 Bereiche weiter unten auch mit füllen
ls_demo-langu004 = 'E'.
ls_demo-bed01004 = 100.
ls_demo-bed02004 = 200.
ls_demo-bed03004 = 300.
ls_demo-bed04004 = 400.


ASSIGN ls_demo TO <ls_demo_analog> CASTING.
DO 27 TIMES.
  DATA(lv_index) = sy-index - 1.
  ASSIGN <ls_demo_analog>-start INCREMENT lv_index TO <ls_gruppe>.
  WRITE:/ lv_index, <ls_gruppe>-langu,<ls_gruppe>-bed01,<ls_gruppe>-bed02,<ls_gruppe>-bed03,<ls_gruppe>-bed04.
ENDDO.

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

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: DO... VARYING vs ASSIGN INCREMENT

Beitrag von DeathAndPain (Top Expert / 1961 / 261 / 415 ) »
Das ist ziemlich ausgefuchst! Ich wusste gar nicht, dass man in der SE11 Includes einen Gruppennamen geben und in ABAP dann das ganze Include als Teilstruktur unter diesem Namen ansprechen kann. Damit ist auch die Wirkungsweise des CASTING klar: Es sind exakt die gleichen Felder in ZDEMO_HRP1020 und in der echten HRP1020 vorhanden; nur von den Metadaten (Aufteilung in Unterstrukturen) unterscheiden sie sich. Wenn ich das richtig verstehe, bewirkt das CASTING also nur, dass ABAP sich nicht über den abweichenden Datentyp beschwert, sondern die Daten einfach byteweise überträgt und schaut, in welchen Feldern sie dann landen.

Ob der Aufwand, zwei neue DDIC-Strukturen zu definieren, in einem angemessenen Verhältnis dazu steht, den obsoleten Befehl zu ersetzen, kann man sich zwar streiten, aber auf jeden Fall war das höchst lehrreich für mich! Vielen Dank dafür!

Wobei... sollte es für solch Programm nicht ausreichend sein, die Hilfsstrukturen lokal als Typen im Top-Include zu definieren?

Re: DO... VARYING vs ASSIGN INCREMENT

Beitrag von ralf.wenzel (Top Expert / 3946 / 201 / 281 ) »
Das mit den Gruppennamen wissen erschreckend viele nicht. Ich habe die Regel: Eine Tabellendefinition besteht immer aus (ggf. MANDT und) Strukturen, die Gruppennamen haben, zumindest KEY für die Schlüsselfelder und DATA für die anderen. Nach dieser Regel gehören da keine Einzelfelder rein. Das erleichtert das Fieldmapping an vielen Stellen. Und auch die Wiederverwendung, z. B. weil die Persistenzklasse eine ähnliche Struktur braucht mit noch mehr Feldern.


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

Re: DO... VARYING vs ASSIGN INCREMENT

Beitrag von black_adept (Top Expert / 4103 / 128 / 945 ) »
DeathAndPain hat geschrieben:Wobei... sollte es für solch Programm nicht ausreichend sein, die Hilfsstrukturen lokal als Typen im Top-Include zu definieren?
2 Wege nach Rom - einer im DDIC, einer im Code.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: DO... VARYING vs ASSIGN INCREMENT

Beitrag von DeathAndPain (Top Expert / 1961 / 261 / 415 ) »
Ja, nur vermeide ich es, für die Belange eines einzelnen Reports DDIC-Objekte anzulegen.

Re: DO... VARYING vs ASSIGN INCREMENT

Beitrag von ralf.wenzel (Top Expert / 3946 / 201 / 281 ) »
DeathAndPain hat geschrieben:Ja, nur vermeide ich es, für die Belange eines einzelnen Reports DDIC-Objekte anzulegen.
Was hindert dich, lokale Typen zu verwenden?

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

Re: DO... VARYING vs ASSIGN INCREMENT

Beitrag von DeathAndPain (Top Expert / 1961 / 261 / 415 ) »
Nicht nur den letzten Beitrag lesen, bevor Du antwortest, Ralf, sonst fehlt Dir der Kontext. ;-)

Vergleichbare Themen

3
Antw.
837
Views
7 days increment by 1
von erzoo24 » 04.11.2021 15:21 • Verfasst in ABAP® für Anfänger
3
Antw.
5198
Views
Ersetzen von oboleten DO VARYING
von Barney » 25.10.2013 14:25 • Verfasst in ABAP® für Anfänger
13
Antw.
4615
Views
Assign
von robin1at » 10.04.2006 10:42 • Verfasst in ABAP® für Anfänger
0
Antw.
1680
Views
Dirty Assign
von allgrinder » 10.08.2015 11:14 • Verfasst in ABAP® für Anfänger
6
Antw.
2638
Views
ASSIGN-Probleme
von ralf.wenzel » 23.06.2008 09:41 • Verfasst in ABAP® Core

Ü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

Nach MESSAGE TYPE E Felder entsperren
vor einer Woche von rob_abc gelöst 8 / 8528
ABAP - Mail so10 Text
vor einer Woche von retsch 6 / 2431
selection-screen comment mit icon
vor einer Woche von DeathAndPain 9 / 3711

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

Nach MESSAGE TYPE E Felder entsperren
vor einer Woche von rob_abc gelöst 8 / 8528
ABAP - Mail so10 Text
vor einer Woche von retsch 6 / 2431
selection-screen comment mit icon
vor einer Woche von DeathAndPain 9 / 3711

Unbeantwortete Forenbeiträge

SD_PRINT_TERMS_OF_PAYMENT
vor einer Woche von Manfred K. 1 / 2842
BUSOBJEKT zu CMIS PHIO ermitteln
vor 4 Wochen von snooga87 1 / 4651