Академический Документы
Профессиональный Документы
Культура Документы
TYPES:
BEGIN OF gtys_value,
value LIKE tsprim-field,
text LIKE tsapplt-txt,
END OF gtys_value,
gtyt_gt_values TYPE TABLE OF gtys_value WITH EMPTY KEY.
DATA:
gv_retfield TYPE fieldname VALUE 'VALUE',
gv_objtype TYPE ddeutype.
DATA:
go_data TYPE REF TO data.
DATA:
gt_return TYPE TABLE OF ddshretval,
gt_dfies TYPE dfies_tab.
PARAMETERS:
p_tab TYPE tabname OBLIGATORY,
p_file TYPE localfile OBLIGATORY.
TYPES:
BEGIN OF gtys_fields,
* fieldname TYPE fieldname,
fieldname TYPE ddtext,
END OF gtys_fields,
gtyt_fields TYPE TABLE OF gtys_fields WITH EMPTY KEY.
DATA:
lv_file TYPE string,
lvo_ref TYPE REF TO data,
lvo_ref_line TYPE REF TO data.
FIELD-SYMBOLS:
<lfs_tab> TYPE ANY TABLE.
START-OF-SELECTION.
" First check if table exists and has the right type
CHECK sy-subrc = 0.
START-OF-SELECTION.
IF gt_return IS INITIAL.
MESSAGE 'No fields selected' TYPE 'S' DISPLAY LIKE 'E'.
LEAVE LIST-PROCESSING.
ENDIF.
DATA(gt_components) = CAST
cl_abap_structdescr( cl_abap_typedescr=>describe_by_name( p_tab ) )-
>get_components( ).
LOOP AT gt_components REFERENCE INTO DATA(gr_component).
IF gr_component->as_include NE 'X'.
CONTINUE.
ENDIF.
DATA(gv_tabix) = sy-tabix.
DATA(gt_components_include) = CAST cl_abap_structdescr( gr_component->type )-
>get_components( ).
DELETE gt_components INDEX gv_tabix.
INSERT LINES OF gt_components_include INTO gt_components INDEX gv_tabix.
ENDLOOP.
END-OF-SELECTION.
lv_file = p_file.