Code: Alles auswählen.
DATA:
itab_line TYPE TABLE, "OF was_auch_immer
itab TYPE TABLE OF itab_line.
FIELD-SYMBOLS: "sind ähnlich *ptr in C
<wa_itab> LIKE LINE OF itab,
<wa_any> LIKE LINE OF <wa_itab>.
READ TABLE itab ASSIGNING <wa_itab>
INDEX x.
IF sy-subrc EQ 0.
READ TABLE <wa_itab> ASSIGNING <wa_any>
INDEX y.
* jetzt hast Du mit <WA_ANY> Zugriff auf tab[x][y] ...
ENDIF.
ich hab's grad noch im R/3 gecheckt. Obigen Code mag er nicht...Gast hat geschrieben:hmm schade das die form tab[x][y] nicht funkt aber wenigstens hab ich jetzt gewissheit!!!
ich werd gleich mal deinen vorschlag ausprobieren und danke für die schnelle antwort!
Code: Alles auswählen.
DATA:
itab_line TYPE TABLE OF string,
itab LIKE TABLE OF itab_line, "LIKE statt TYPE
x TYPE i VALUE 1,
y TYPE i VALUE 1.
FIELD-SYMBOLS: "sind ähnlich *ptr in C
<wa_itab> LIKE LINE OF itab,
<wa_any> LIKE LINE OF <wa_itab>.
READ TABLE itab ASSIGNING <wa_itab>
INDEX x.
IF sy-subrc EQ 0.
READ TABLE <wa_itab> ASSIGNING <wa_any>
INDEX y.
* jetzt hast Du mit <WA_ANY> Zugriff auf tab[x][y] ...
ENDIF.
Code: Alles auswählen.
TYPES: BEGIN OF ty_array,
x1 TYPE i,
x2 TYPE i,
...
xn TYPE i,
value type irgendwas,
END OF ty_array,
tyt_array TYPE HASHED TABLE OF ty_array
WITH KEY x1 x2 ... xn.
DATA: t_array TYPE tyt_array.
...dann würde ich mir evtl. die ABAP-typische Schreibweise angewöhnenes geht doch wohl um die C-typische Schreibweise tab[x][y], die sich nicht in der Form in ABAP abbilden läßt...
Code: Alles auswählen.
TYPES: y_element type TABLE OF irgendwas.
TYPES: BEGIN OF y_tabelle,
element TYPE y_element,
END OF y_tabelle.
DATA: tabelle TYPE TABLE OF y_tabelle.
FIELD-SYMBOLS: <tabelle> like line of tabelle,
<element> like line of y_element.
* oder vielleicht LIKE LINE OF tabelle-element ???
Code: Alles auswählen.
READ TABLE tabelle ASSINGING <tabelle> INDEX 4.
READ TABLE <tabelle>-element ASSINGING <element>
INDEX 3.manchmal habe ich das Gefühl, dass man meine Ausführungen einfach überliestbabap hat geschrieben:Hallo,
Man kann in ABAP Tabellen definieren, in deren Tabellenzeile wieder eine Tabelle enthalten ist.
In der 4. Zeile das 3. Element erwischt man so:Code: Alles auswählen.
TYPES: y_element type TABLE OF irgendwas. TYPES: BEGIN OF y_tabelle, element TYPE y_element, END OF y_tabelle. DATA: tabelle TYPE TABLE OF y_tabelle. FIELD-SYMBOLS: <tabelle> like line of tabelle, <element> like line of y_element. * oder vielleicht LIKE LINE OF tabelle-element ???
Code: Alles auswählen.
READ TABLE tabelle ASSINGING <tabelle> INDEX 4. READ TABLE <tabelle>-element ASSINGING <element> INDEX 3.
Mit <element> hat man jetzt Zugriff auf das 3. Element in der 4. Zeile.
Im Debugger kan man mit tabelle[] den Tabellenkörper und mit tabelle[4] die 4. Zeile der Tabelle ansprechen.
Mit tabelle[4]-element[3] sieht man das 3. Element der 4. Zeile.
Die Variable "tabelle[]" kann man im Coding ansprechen (CLEAREN, MOVEN, Vergleichen ...)
Wäre zu probieren, ob man per Nummer die Einträge im Coding auch ansprechen kann ...
(Sorry für Syntaxfehler, aber habe leider gerade kein System zur Hand.)
Gruß
babap
Code: Alles auswählen.
DATA:
itab_line TYPE TABLE OF string,
itab LIKE TABLE OF itab_line, "LIKE statt TYPE
x TYPE i VALUE 1,
y TYPE i VALUE 1.
FIELD-SYMBOLS: "sind ähnlich *ptr in C
<wa_itab> LIKE LINE OF itab,
<wa_any> LIKE LINE OF <wa_itab>.
READ TABLE itab ASSIGNING <wa_itab>
INDEX x.
IF sy-subrc EQ 0.
READ TABLE <wa_itab> ASSIGNING <wa_any>
INDEX y.
* jetzt hast Du mit <WA_ANY> Zugriff auf tab[x][y] ...
ENDIF.