Interne Tabelle dynamisch typisieren

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

Interne Tabelle dynamisch typisieren

Beitrag von McQueenSix (ForumUser / 1 / 0 / 0 ) »
Hallo zusammen,

ich suche einen "einfachen" Weg, eine interne Tabelle dynamisch zu typisieren.

Die interne Tabelle soll immer die Felder einer beliebigen(!) Struktur/Tabelle aus dem DDIC haben, plus ein paar fester Felder.
Wenn DAS hier funktionieren würde, wäre ich happy, geht aber leider nicht:

Code: Alles auswählen.

TYPES: BEGIN OF ty_test,
festfeld1 TYPE bla,
festfeld2 TYPE blubb.
INCLUDE STRUCTURE (g_var_mit_strukturname, z.B. SFLIGHT). <-- Und genau das geht leider nicht
TYPES: END OF ty_test.

DATA: lt_tab TYPE TABLE OF ty_test.
Ich hoffe es kommt rüber, was ich erreichen will. Jemand nen Tipp?

Vielen Dank, mfG, Jens

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


Re: Interne Tabelle dynamisch typisieren

Beitrag von Tron (Top Expert / 1327 / 35 / 333 ) »
Moin Jens.
"Dynamisch" und "Einfach" ist ein Widerspruch in sich. :wink:
Aber schau Dir bitte mal diesen Beitrag an:
http://www.abapforum.com/forum/viewtopi ... =3&t=17061

gruß Jens
<:: 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: Interne Tabelle dynamisch typisieren

Beitrag von black_adept (Top Expert / 4161 / 136 / 960 ) »
Hallo Jens und Jens,

soooooo kompliziert oder aufwändig ist das doch gar nicht, wenn man einfach nur ein paar Felder vor oder hinter eine Struktur hängen möchte.

Ich hänge mal ein Beispielprogrämmle hier rein - das reine Erzeugen der erweiterten Struktur bzw. eine Referenz darauf sind nur 12 Zeilen + ein paar Datendeklarationen, die in neueren Releases wahrscheinlich inline gemacht werden könnten. Und genau genommen braucht man die nicht mal alle, aber es erklärt mehr wenn die drin sind.

Code: Alles auswählen.

REPORT.

CLASS lcl DEFINITION FINAL.
  PUBLIC SECTION.
    CLASS-METHODS: extend_structure IMPORTING is_structure                 TYPE any
                                    RETURNING VALUE(rr_extended_structure) TYPE REF TO data.
ENDCLASS.
CLASS lcl IMPLEMENTATION.
  METHOD extend_structure.

    DATA: BEGIN OF ls_fixed_fields,
            hugo1 TYPE syuname,
            hugo2 TYPE sydatum,
            hugo3 TYPE syuzeit,
          END OF ls_fixed_fields.

    DATA: lt_component_table TYPE abap_component_tab,
          lo_descr_extended  TYPE REF TO cl_abap_structdescr.

    FIELD-SYMBOLS: <ls_component> LIKE LINE OF lt_component_table.

*--------------------------------------------------------------------*
* Fixe Struktur am Anfang
*--------------------------------------------------------------------*
    APPEND INITIAL LINE TO lt_component_table ASSIGNING <ls_component>.
    <ls_component>-name       = ''.  " nicht extra benannt, da als Include eingebunden
    <ls_component>-type       ?= cl_abap_structdescr=>describe_by_data( ls_fixed_fields ).
    <ls_component>-as_include = 'X'.
    <ls_component>-suffix     = ''.  " kein suffix

*--------------------------------------------------------------------*
* Variable Struktur hernach
*--------------------------------------------------------------------*
    APPEND INITIAL LINE TO lt_component_table ASSIGNING <ls_component>.
    <ls_component>-name       = ''.  " nicht extra benannt, da als Include eingebunden
    <ls_component>-type       ?= cl_abap_structdescr=>describe_by_data( is_structure ).
    <ls_component>-as_include = 'X'.
    <ls_component>-suffix     = ''.  " kein suffix

    lo_descr_extended = cl_abap_structdescr=>create( lt_component_table ).
    CREATE DATA rr_extended_structure TYPE HANDLE lo_descr_extended.

  ENDMETHOD.
ENDCLASS.

START-OF-SELECTION.
  DATA: ls_data TYPE sflight,
        lr_data TYPE REF TO data.
  FIELD-SYMBOLS: <gs_data> TYPE any,
                 <gt_data> TYPE STANDARD TABLE.
  lr_data = lcl=>extend_structure( ls_data ).
  ASSIGN lr_data->* TO <gs_data>.
  CREATE DATA lr_data LIKE STANDARD TABLE OF <gs_data>.
  ASSIGN lr_data->* TO <gt_data>.
  APPEND <gs_data> TO <gt_data>.
  BREAK-POINT.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Seite 1 von 1

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Feldroutine ADSO Transformation
vor einer Woche von codemaster1 2 / 100698
Stücklisten
vor 3 Wochen von Selma.schwarz 1 / 102440

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.

Vergleichbare Themen

Dynamisch Typisieren
von SaskuAc » 22.10.2018 08:24
interne Tabelle dynamisch anlegen
von Google » 27.10.2006 11:11
Interne Tabelle dynamisch anzeigen
von Embryo » 24.01.2013 10:38
Interne Tabelle dynamisch generieren
von inab » 22.10.2008 10:19
Interne Tabelle dynamisch füllen
von stas » 27.10.2007 10:41

Aktuelle Forenbeiträge

Feldroutine ADSO Transformation
vor einer Woche von codemaster1 2 / 100698
Stücklisten
vor 3 Wochen von Selma.schwarz 1 / 102440

Unbeantwortete Forenbeiträge

Stücklisten
vor 3 Wochen von Selma.schwarz 1 / 102440
Belege
vor 3 Wochen von Selma.schwarz 1 / 99492