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 / 331 ) »
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 / 3943 / 105 / 886 ) »
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

Vergleichbare Themen

33
Antw.
5574
Views
Dynamisch Typisieren
von SaskuAc » 22.10.2018 08:24 • Verfasst in ABAP® für Anfänger
8
Antw.
5175
Views
Interne Tabelle dynamisch generieren
von inab » 22.10.2008 10:19 • Verfasst in ABAP Objects®
12
Antw.
2594
Views
Interne Tabelle Dynamisch einfuhlen
von autohandel7 » 22.01.2016 13:14 • Verfasst in ABAP® für Anfänger
8
Antw.
1007
Views
Interne Tabelle dynamisch erzeugen
von Der Formulator » 21.10.2021 09:30 • Verfasst in ABAP® Core
8
Antw.
4932
Views
interne Tabelle dynamisch anlegen
von Google » 27.10.2006 11:11 • Verfasst in ABAP Objects®

Über diesen Beitrag


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.