Code: Alles auswählen.
CLASS mar_test DEFINITION.
PUBLIC SECTION.
TYPES: rt_info TYPE RANGE OF infty.
TYPES: rt_subty TYPE RANGE OF pa0001-subty..
" Defining a method with a returning parameter
METHODS get_infotyp
IMPORTING ip_infotyp TYPE rt_info
VALUE(ip_stichtag) TYPE dats
ip_subtyp TYPE rt_subty
RETURNING VALUE(r_data) TYPE REF TO data.
ENDCLASS. "mar_test DEFINITION
*----------------------------------------------------------------------*
* CLASS mar_test IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS mar_test IMPLEMENTATION.
METHOD get_infotyp.
DATA: lv_info TYPE string.
FIELD-SYMBOLS: <returning> TYPE any.
* DO x TIMES.
CONCATENATE: 'PA' '0006' INTO lv_info. "Zusammenbauen eines Infotypes (ip_infotyp[1]-low möchte ich verwenden können)
" Erstellung einer Reference zur Variable r_data
CREATE DATA r_data TYPE (lv_info).
" Referenz zum Feldsymbol zugewiesen
ASSIGN r_data->* TO <returning> CASTING TYPE (lv_info).
" <variable> wird befüllt -> Returning parameter
SELECT SINGLE * FROM (lv_info) INTO <returning> WHERE begda <= ip_stichtag AND endda >= ip_stichtag AND subty IN ip_subtyp.
* ENDDO.
ENDMETHOD. "get_infotyp
ENDCLASS. "mar_test IMPLEMENTATION
schau mal in die übergebene Range-Tabelle ( via Debugger ) rein. Dann weißt du in der Regel wie man drauf zugreift.
Code: Alles auswählen.
loop at s_infty into data(infty_struc).
data(infty) = infty_struc-low.
endloop.
Code: Alles auswählen.
data(nfty_db_itable) = 'PA' && infty_struc-low.
Wenn sie per RANGES oder SELECT-OPTIONS definiert sind ja. Aber wenn sie per TYPE RANGE OF definiert sind nicht (es sei denn, Du schreibst explizit WITH HEADER LINE dazu).Saskuac hat geschrieben:du kannst auch direkt über s_infty loopen ohne eine eigene struktur zu erstellen, da range-tabellen ( soweit ich weiß immer(?) ) Tabellen mit Kopfzeile sind...
Folgende Benutzer bedankten sich beim Autor DeathAndPain für den Beitrag:
SaskuAc