PARAMETERS: p_ebeln TYPE ekpo-ebeln.
START-OF-SELECTION.
SELECT SINGLE FROM ekpo
FIELDS
menge,
meins,
bprme,
netpr,
peinh,
txz01,
packno
WHERE ebeln EQ @p_ebeln
AND ebelp EQ '00001'
INTO @DATA(lv_ekpo).
IF sy-subrc EQ 0.
DATA: it_gliederung TYPE STANDARD TABLE OF ml_esll WITH DEFAULT KEY.
* Holen Gliederungsdaten für Listausgabe
CALL FUNCTION 'MS_SUBDIVISION_FOR_PRINT'
EXPORTING
packno = lv_ekpo-packno
TABLES
gliederung = it_gliederung
EXCEPTIONS
packno_not_exist = 1
OTHERS = 2.
IF sy-subrc = 0.
DATA: it_leistung TYPE STANDARD TABLE OF ml_esll WITH DEFAULT KEY.
LOOP AT it_gliederung ASSIGNING FIELD-SYMBOL(<g>).
DATA(pos) = ( <g>-rang * 2 ).
IF <g>-rang = 0.
WRITE: AT /pos '#', lv_ekpo-txz01, lv_ekpo-menge, lv_ekpo-meins, lv_ekpo-netpr.
ELSE.
WRITE: AT /pos '#', <g>-ktext1.
ENDIF.
CLEAR: it_leistung.
* Holen Leistungen für Listanzeige
CALL FUNCTION 'MS_SERVICES_FOR_PRINT'
EXPORTING
packno = <g>-sub_packno
TABLES
leistung = it_leistung
EXCEPTIONS
no_services_found = 1
OTHERS = 2.
IF sy-subrc = 0.
LOOP AT it_leistung ASSIGNING FIELD-SYMBOL(<l>).
WRITE: AT /10 <l>-extrow, '|', <l>-srvpos, '|', <l>-menge, <l>-meins, <l>-brtwr, <l>-waers, <l>-ktext1, '|', <l>-ebeln, <l>-ebelp.
ENDLOOP.
ENDIF.
WRITE: /.
ENDLOOP.
ENDIF.
ENDIF.