Ausgabe einer ganzen Work Area?

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

Ausgabe einer ganzen Work Area?

Beitrag von Corn (ForumUser / 5 / 0 / 0 ) »
Hallo,

wenn man einen Datensatz per select Anweisung in eine interne Tabelle schreibt und dann in einer Loop at zeilenweise in eine work area liest, kann man ja die einzelnen Felder der work area Struktur per write ausgeben. Gibt es eine Möglichkeit, die gesamte work area auszugeben ohne auf die einzelnen Felder zugreifen zu müssen?

Der Hintergrund ist, dass erst zur Laufzeit die Anzahl und der Name der Felder festgelegt wird. D.h. Ich weiß jetzt noch nicht, wie die Felder heißen.

Danke!
LG
Corn

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


Re: Ausgabe einer ganzen Work Area?

Beitrag von a-dead-trousers (Top Expert / 4414 / 224 / 1186 ) »
Grundsätzlich funktioniert "WRITE workarea", aber nur wenn alle Felder von der Art CLIKE (C,N,D,T) sind und das workarea somit eine "flache" Struktur hat. Sobald z.B. Strings, Binär oder Zahlfelder (I,F,P) verwendet werden funktioniert es nicht mehr. (Details siehe ABAP Hilfe)

Was mich jetzt aber wundert ist, wie du eine workarea bei einer erst zur Laufzeit bestimmten Struktur haben kannst. Für mich klingt das sehr nach dynamischer Programmierung und da workareas etwas rein statisches sind gibt es das nicht bei dieser Art von Programmen. Nur Referenzen (REF TO) und Zuweisungen (ASSIGN mit FIELD-SMYBOLS) sind damit möglich.

Nichts desto trotz, um auf (unbekannte) Felder einer Struktur zugreifen zu können gibt es ASSIGN COMPONENT x OF STRUCTURE ... TO ...
Das x kann hier entweder ein Index oder der Feldname sein.
(Mehr dazu auch hier wieder in der ABAP-Hilfe)

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
Gokar

Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Ausgabe einer ganzen Work Area?

Beitrag von Corn (ForumUser / 5 / 0 / 0 ) »
Danke, das werde ich mir am Montag mal angucken. Bezüglich der dynamischen Programmierung kann es gut sein, dass ich da was falsch verstanden habe. Bin totaler Anfänger.

Gruß
Corn

Re: Ausgabe einer ganzen Work Area?

Beitrag von ralf.wenzel (Top Expert / 3946 / 201 / 281 ) »
Rückfrage: Hat die Ausgabe per WRITE einen besonderen Grund? Oder bist du offen für alternative Ausgaben?


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

Re: Ausgabe einer ganzen Work Area?

Beitrag von Corn (ForumUser / 5 / 0 / 0 ) »
Also ich konnte das mit dem assign component mal testen. Aber auch das klappt nur, wenn die Struktur nur aus Clike besteht, so wie du es oben geschrieben hattest.

Ne, ich hänge nicht an der write Ausgabe. War nur ein schneller Weg etwas zu sehen^^

Re: Ausgabe einer ganzen Work Area?

Beitrag von black_adept (Top Expert / 4103 / 128 / 945 ) »

Code: Alles auswählen.

REPORT.
SELECT *
  FROM t005
  INTO TABLE @DATA(gt_t005).

cl_salv_table=>factory(
  IMPORTING
    r_salv_table   = DATA(go_salv)
  CHANGING
    t_table        = gt_t005 ).
go_salv->display( ).
Das ist der ganz triviale Ansatz. Normalerweise kapselt man das dann in eine Klasse wo man über einen statischen Methodenaufruf einfach eine Tabelle übergibt die das dann auf denn Screen dumpt, wobei man dann allerdings noch die eine oder andere Sache berücksichtigen sollte um das allgemein verwendbar und halbwegs hübsch zu machen.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Ausgabe einer ganzen Work Area?

Beitrag von DeathAndPain (Top Expert / 1961 / 261 / 415 ) »
Und das funktioniert auch bei einer nicht-flachen Tabelle oder einer, die xstring und so'n Kram enthält? Bin grad zu faul es auszuprobieren, aber wie will das ALV das denn ausgeben?

Re: Ausgabe einer ganzen Work Area?

Beitrag von a-dead-trousers (Top Expert / 4414 / 224 / 1186 ) »
Corn hat geschrieben:
10.08.2020 13:35
Also ich konnte das mit dem assign component mal testen. Aber auch das klappt nur, wenn die Struktur nur aus Clike besteht, so wie du es oben geschrieben hattest.
Dann hast du was falsch gemacht.
Das funktioniert definitiv mit jeder Art von Datentyp.

DeathAndPain hat geschrieben:
10.08.2020 14:15
Und das funktioniert auch bei einer nicht-flachen Tabelle oder einer, die xstring und so'n Kram enthält? Bin grad zu faul es auszuprobieren, aber wie will das ALV das denn ausgeben?
Solange die Daten (wie in der Anforderung hier) aus einer DB-Tabelle kommen ist es kein Problem. ("nicht flach" bedeutet in SAP nicht automatisch "tabelle in tabelle" sondern nur "nicht rein zeichenartig")
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Ausgabe einer ganzen Work Area?

Beitrag von ewx (Top Expert / 4854 / 313 / 644 ) »
Ich warte ja immer noch, dass CL_DEMO_OUTPUT tiefe Strukturen endlich mal unterstützt...

Seite 1 von 1

Vergleichbare Themen

5
Antw.
2781
Views
Rechnen mit ganzen Zahlen >> 30 Stellen
von danielpaul » 22.03.2016 15:12 • Verfasst in ABAP® für Anfänger
1
Antw.
1751
Views
Collapsible area
von Lydia » 26.02.2008 06:53 • Verfasst in Dialogprogrammierung
0
Antw.
1080
Views
Transaction FM_SETS_FUNCTION1 Funtional area
von niermaj » 26.10.2005 10:36 • Verfasst in Financials
1
Antw.
1539
Views
4
Antw.
2473
Views
Adobe Forms - Content Area befüllen
von lausek » 16.05.2018 11:56 • Verfasst in ABAP® Core

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

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