Robocop написал(а):
Я указываю ссылочным типом прозрачную таблицу, данные из которой потом и собираюсь брать. Т.е. указываю я таблицу, но получаю только структуру с соответственной невозможностью записать туда dataset.
Указав в качестве типа параметра прозрачную таблицу, Вы и в самом деле указываете структуру. Вы легко можете в этом убедиться, перейдя к описанию класса:
Code:
methods TEST1
importing
!ES_MARA type MARA .
Если Вам не нравится определять тип в словаре или в группе типов, то самое простое, что можно придумать, выглядит примерно так:
Code:
CLASS lc_test DEFINITION DEFERRED.
DATA:
gs_mara TYPE mara,
gt_mara TYPE STANDARD TABLE OF mara,
glc_test TYPE REF TO lc_test
.
*---------------------------------------------------------------------*
* CLASS lc_test DEFINITION
*---------------------------------------------------------------------*
CLASS lc_test DEFINITION.
PUBLIC SECTION.
METHODS get_data
EXPORTING et_data TYPE STANDARD TABLE.
PRIVATE SECTION.
TYPES:
tt_mara TYPE STANDARD TABLE OF mara
.
ENDCLASS. "lc_test DEFINITION
*---------------------------------------------------------------------*
* CLASS lc_test IMPLEMENTATION
*---------------------------------------------------------------------*
CLASS lc_test IMPLEMENTATION.
METHOD get_data.
* EXPORTING et_data TYPE STANDARD TABLE.
DATA:
ls_mara TYPE mara
.
ls_mara-matnr = '1'.
APPEND ls_mara TO et_data.
ls_mara-matnr = '2'.
APPEND ls_mara TO et_data.
ENDMETHOD. "get_data
ENDCLASS. "lc_test IMPLEMENTATION
START-OF-SELECTION.
CREATE OBJECT glc_test.
CALL METHOD glc_test->get_data
IMPORTING
et_data = gt_mara.
LOOP AT gt_mara INTO gs_mara.
WRITE / gs_mara-matnr.
ENDLOOP.