Dynamische Struktur

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

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

Dynamische Struktur

Beitrag von PeterPaletti (Specialist / 348 / 32 / 97 ) »
Hallo,
ich möchte zur Laufzeit eine dynamische Struktur erstellen.
Was ich an Input habe, ist eine Tabelle mit Feldnamen und Datenelementen.

Kann mir jemand helfen, wie ich auf diese Weise eine dynamsiche Struktur erstellen kann?

Ich habe das erstmal so gelöst, dass ich zuerst eine dynamische Tabelle erstelle und davon eine Struktur ableite.

Code: Alles auswählen.

 LOOP AT lt_structure INTO ls_structure.
    ls_dyn_fcat-col_pos = ls_structure-pos.
    ls_dyn_fcat-fieldname = ls_structure-fieldname.
    ls_dyn_fcat-rollname  = ls_structure-rollname.
    ls_dyn_fcat-outputlen = ls_structure-expleng.
    APPEND ls_dyn_fcat TO lt_dyn_fcat.
  ENDLOOP.

  CALL METHOD cl_alv_table_create=>create_dynamic_table
    EXPORTING
*     i_style_table             = 'X'
      it_fieldcatalog           = lt_dyn_fcat
    IMPORTING
      ep_table                  = lt_dyn_table
    EXCEPTIONS
      generate_subpool_dir_full = 1
      OTHERS                    = 2.

  ASSIGN lt_dyn_table->* TO <fs_table>.
  CREATE DATA ps_line LIKE LINE OF <fs_table>.
Gibt es einen eleganteren Weg?

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


Re: Dynamische Struktur

Beitrag von Tron (Top Expert / 1327 / 35 / 332 ) »
Moin.
schau mal bitte:
siehe http://www.abapforum.com/forum/viewtopi ... 61&p=57285
lg Jens

Folgende Benutzer bedankten sich beim Autor Tron für den Beitrag:
PeterPaletti

<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Re: Dynamische Struktur

Beitrag von PeterPaletti (Specialist / 348 / 32 / 97 ) »
Ich habs Rausgefunden.

Code: Alles auswählen.

  DATA: lr_rtti_struc TYPE REF TO cl_abap_structdescr.
  DATA: lr_rtti_data  TYPE REF TO cl_abap_datadescr.
  DATA: lt_comp       TYPE cl_abap_structdescr=>component_table.
  DATA: ls_comp       LIKE LINE OF lt_comp.

 LOOP AT lt_structure INTO ls_structure.
    lr_rtti_data ?= cl_abap_datadescr=>describe_by_name( ls_structure-rollname ).
    IF lr_rtti_data IS BOUND.
      ls_comp-name = ls_structure-fieldname.
      ls_comp-type = lr_rtti_data.
      APPEND ls_comp TO lt_comp.
    ENDIF.
  ENDLOOP.

  lr_rtti_struc = cl_abap_structdescr=>create( p_components = lt_comp ).
  CREATE DATA ps_line TYPE HANDLE lr_rtti_struc.

Re: Dynamische Struktur

Beitrag von ewx (Top Expert / 4844 / 311 / 640 ) »
ja, gibt es: Mittels Runtime Type Creation RTTC
Nachteil bei deiner Variante ist, dass die Generierung der dynamischen Struktur mittels GENERATE SUBROUTINE POOL erfolgt und das ist nur begrenzt möglich: 36 mal; (Daher auch die entsprechende Ausnahme)
Das reicht zwar in der Regel für die meisten Anwendungen, "elegant" ist es jedoch nicht.
Vorteil bei deiner Lösung: Du kannst den kompletten Feldkatalog so aufbauen, wie du es möchtest (Bezeichner etc.).
Bei der Verwendung von RTTC und der Ausgabe mittels SALV muss der Feldkatalog noch angepasst, bzw. separat erzeugt werden.

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


Seite 1 von 1

Vergleichbare Themen

4
Antw.
3838
Views
Dynamische Struktur bei Feldsymbol
von BesenWesen » 10.08.2006 09:54 • Verfasst in ABAP® für Anfänger
1
Antw.
11639
Views
Dynamische Struktur anlegen
von Hunter » 01.06.2006 12:16 • Verfasst in ABAP Objects®
4
Antw.
2829
Views
CL_SALV_TABLE - Dynamische Struktur
von zer0 » 12.03.2013 11:44 • Verfasst in ABAP Objects®
4
Antw.
3907
Views
dynamische Struktur abgrasen
von sapdepp » 27.06.2016 12:24 • Verfasst in ABAP Objects®
4
Antw.
4178
Views
Dynamische Struktur erstellen und ansprechen
von miho » 07.08.2013 13:32 • 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

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

Daten an Tabelle binden
vor 23 Stunden von Bright4.5 1 / 497
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2139
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8735