Hi,
ich arbeite daran, eine interne Tabelle dynamisch aufzubauen, so daß ich nicht spezifizieren muss, welche Felder sie hat und sie sich im Idealfall an das anpasst, was ein danach folgendes SELECT liefert (Zusammenstellung von Feldern aus mehreren Tabellen).
Für die Deklaration hab ich folgenden Code:
*&---------------------------------------------------------------------*
*& Include ZFH_INTTAB_JOIN4_DX_DYNDECL *
*&---------------------------------------------------------------------*
* Hereby, an internal table is created fully dynamically so it will
* adapt to whatever data the SELECT statement that is yet to come
* will provide.
* Before we can use the CREATE DATA statement, we must declare the
* type of this internal-table-to-be.
* TYPES T_LINE.
* TYPES T_ITAB TYPE STANDARD TABLE OF T_LINE.
DATA TAB_REF TYPE REF TO DATA.
DATA T_LINE_REF TYPE REF TO DATA.
* Field-symbols are just placeholders; They reserve physical memory+
* space for something still to come.
FIELD-SYMBOLS TYPE ANY TABLE.FIELD-SYMBOLS TYPE ANY.* A data object (here an internal table) is created, taking on
* all the attributes of the DB table KNA1.
CREATE DATA TAB_REF TYPE ANY TABLE.
* This data object is assigned the memory space we have
* beforehand reserved using this field-symbol.
ASSIGN TAB_REF->* TO .* Another data object is created that has all the attributes
* of one line of the table (structure) that is now assigned
* to the field-symbol.
CREATE DATA T_LINE_REF LIKE LINE OF .* This new data object is now assigned to the second
* field-symbol.
ASSIGN T_LINE_REF->* TO .Das funktioniert auch soweit, das Problem ist nur: Ich hab für den Typ des Datenobjekts, das ich da generiere, auf KNA1 gezeigt - damit übernimmt die interne Tabelle erst mal die Felder, die in KNA1 vorkommen. So weit so gut - aber wenn mein SELECT kommt, passt sich die Tabelle nicht an, es werden nur die Daten eingefüllt, wo die Feldnamen zufällig passen, weil es eben Felder aus der KNA1 sind. Alles andere wird ignoriert.
Das ist ja nicht der Sinn der Sache.
Kann mir einer sagen, wie ich diesem Datenobjekt einen generischen Typ mitgebe, so daß es sich anpasst?
Danke vielmals!
Gruß,
Sappralott