Innterne Tabelle dynamisch generieren und in ALV ausgeben

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

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
4 Beiträge • Seite 1 von 1
4 Beiträge Seite 1 von 1

Innterne Tabelle dynamisch generieren und in ALV ausgeben

Beitrag von SAP_ENTWICKLER (Specialist / 445 / 219 / 6 ) »
Hallo,

für die Ausgabe eines ALV's erzeuge ich einen Feldkatalog, der

a) aus einem fixen Teil besteht und
b) eine variable Anzahl von weiteren Spalten gleichen Aufbaus enthält. Wobei nicht alle Zeilen die gleiche Anzahl an Zusatzspalten benötigen. Daher ermittele ich im Vorfeld die max. Anzahl
der Zusatzspalten. In den 'kürzeren' Zeilen bleiben diese dann leer.

Dazu passend benötige ich natürlich eine interne Tabelle für die auszugebenden Daten. Diese Tabelle generiere ich über die folgende Methode aus dem Feldkatalog:

Code: Alles auswählen.


 FIELD-SYMBOLS:
    <workarea> TYPE any.

FIELD-SYMBOLS:
   <table>    TYPE STANDARD TABLE.

DATA:
   gt_fieldcat        TYPE lvc_t_fcat,
   lt_res_table      TYPE REF TO data.

* Die interne Tabelle für die Ausgabe generieren
  CALL METHOD cl_alv_table_create=>create_dynamic_table
    EXPORTING
      it_fieldcatalog = gt_fieldcat
    IMPORTING
      ep_table        = lt_res_table.

* Übergabe der Daten vorbereiten
  ASSIGN lt_res_table->* TO <table>.
  ASSIGN <table> TO <workarea>.
Die Daten, die ich dann wirklich ausgeben möchte, habe ich schon in einer anderen internen Tabelle gesammelt und müsste sie nur noch an die Ausgabetabelle übergeben.

Code: Alles auswählen.

LOOP AT lt_t01 INTo ls_t01.

?????????

ENDLOOP.
Wie bekomme ich jetzt die Daten der weiteren Tabelle LT_T01 in die einzelnen Zeilen der generierten internen Tabelle LT_RES_TABLE / <table>?

Was gebe ich hier an?

Code: Alles auswählen.

* ALV ausgeben
  CALL METHOD XX_grid->set_table_for_first_display
    EXPORTING
      is_layout       = gs_layout
    CHANGING
      it_fieldcatalog = gt_fieldcat
      it_outtab       = <table>.
Ist für die Ausgabe <table> durch LT_RES_TABLE zu ersetzen?

Vielen Dank

Norbert

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


Re: Innterne Tabelle dynamisch generieren und in ALV ausgebe

Beitrag von ewx (Top Expert / 4846 / 311 / 642 ) »
<table> ist nun deine dynamisch generierte interne Tabelle. Bisher ist sie leer.

der ASSIGN <table> to <workarea> ist quatsch!
Du hast dadurch zwei Variablen, mit denen du die interne Tabelle ansprechen kannst: <table> und <workarea>.

In <workarea> möchtest du aber eine Zeile der Tabelle haben. Also:
APPEND INITIAL LINE TO <table> ASSIGNING <workarea>.

Den Feldern der <workarea> kannst du nun deine Werte zuweisen.
Natürlich ebenfalls nur dynamisch!
also z.B.

Code: Alles auswählen.

data fieldname type string value 'WERT001'.
field-symbols <value> type any.
ASSIGN COMPONENT fieldname OF STRUCTURE <worakrea> TO <value>.
"fieldname" generierst du entweder (WERT001 oder MONAT04 etc) oder du weißt den Namen.
Wenn du eine fixe Feldleiste hast von festen Namen, dann kannst du diese auch "normal" füllen und dann mit MOVE-CORRESPONDING zuweisen:

Code: Alles auswählen.

my_struc-feld1 = '100'.
my_struc-vkorg = '4000'.
my_struc-datum = sy-datum.
move-corresponding my_struc to <workarea>.

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


Re: Innterne Tabelle dynamisch generieren und in ALV ausgebe

Beitrag von SAP_ENTWICKLER (Specialist / 445 / 219 / 6 ) »
Hallo,

wenn ich

Code: Alles auswählen.

ASSIGN COMPONENT fieldname OF STRUCTURE <worakrea> TO <value>.
lese würde ich eher denken, dass ich den Wert einer Komponente der Struktur <workarea> dem Field-Symbol <value> zuweise und nicht umgekehrt, wie ich es möchte. Das ist der Grund warum ich es immer vermieden habe mit Field-Symbols zu arbeiten.

Re: Innterne Tabelle dynamisch generieren und in ALV ausgebe

Beitrag von ewx (Top Expert / 4846 / 311 / 642 ) »
Genau das tust du auch. Aber eben nicht nur den Wert sondern den gesamten Zugriff auf das Feld (nicht denWert)!

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


Seite 1 von 1

Vergleichbare Themen

8
Antw.
5398
Views
Interne Tabelle dynamisch generieren
von inab » 22.10.2008 10:19 • Verfasst in ABAP Objects®
3
Antw.
4575
Views
Dynamisch Struktur und Tabelle generieren und füllen
von Kresiquadratur » 16.07.2007 14:32 • Verfasst in ABAP® für Anfänger
4
Antw.
2449
Views
Dynamisch erzeugte interne Tabelle ausgeben.
von gabo » 10.12.2007 14:32 • Verfasst in ABAP® Core
2
Antw.
1960
Views
Report dynamisch generieren...
von gabrielgn » 16.01.2008 08:17 • Verfasst in ABAP® Core
4
Antw.
2282
Views
Funktionsbaustein dynamisch generieren
von gabrielgn » 21.01.2008 08:57 • 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

Dialog-Container mit Toolbar/Status
vor 6 Stunden von DeathAndPain gelöst 22 / 2801
Daten an Tabelle binden
vor 11 Stunden von Lukas Sanders 2 / 877
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 431

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

Dialog-Container mit Toolbar/Status
vor 6 Stunden von DeathAndPain gelöst 22 / 2801
Daten an Tabelle binden
vor 11 Stunden von Lukas Sanders 2 / 877
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 431

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2468
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9050