Code: Alles auswählen.
select kostl dmbtr ... into rec
from bseg
where bukrs = itab-bukrs
and gjahr = itab-gjahr
and belnr = itab-belnr
and buzei <> itab-buzei
and kostl <> space
and koart = 'S'.
Code: Alles auswählen.
REPORT zdebikostl .
DATA: BEGIN OF itab OCCURS 0,
bukrs TYPE bsid-bukrs,
kunnr TYPE bsid-kunnr,
gjahr TYPE bsid-gjahr,
belnr TYPE bsid-belnr,
buzei TYPE bsid-buzei,
budat TYPE bsid-budat,
bldat TYPE bsid-bldat,
dmbtr TYPE bsid-dmbtr,
kostl TYPE bsid-bldat,
END OF itab.
DATA: BEGIN OF ktab OCCURS 0,
bukrs LIKE bsid-bukrs,
kunnr LIKE bsid-kunnr,
kostl LIKE bsid-kostl,
dmbtr LIKE bsid-dmbtr,
END OF ktab.
DATA: x_save, "for Parameter I_SAVE
gs_variant TYPE disvariant. "for parameter IS_VARIANT
DATA shkzg TYPE bsid-shkzg.
SELECT-OPTIONS s_bukrs FOR itab-bukrs.
SELECT-OPTIONS s_kunnr FOR itab-kunnr.
PARAMETERS p_day TYPE sy-datum.
TYPE-POOLS : slis.
DATA : fcat TYPE slis_t_fieldcat_alv.
DATA lay TYPE slis_layout_alv.
DATA prog TYPE sy-repid.
RANGES stida FOR bsid-bldat.
START-OF-SELECTION.
PERFORM selection USING 'BSID'.
*für AP's Stichtag bezogen
stida-low = p_day.
stida-sign = 'I'.
stida-option = 'GT'.
APPEND stida.
PERFORM selection USING 'BSAD'.
LOOP AT itab.
MOVE-CORRESPONDING itab TO ktab.
SELECT kostl shkzg dmbtr FROM bseg
INTO (ktab-kostl, shkzg, ktab-dmbtr)
WHERE bukrs = itab-bukrs
AND belnr = itab-belnr
AND gjahr = itab-gjahr
AND buzei <> itab-buzei
AND koart = 'S'
AND kostl <> space.
*Vorzeichen umdrehen
IF shkzg = 'S'.
ktab-dmbtr = ktab-dmbtr * -1.
ENDIF.
COLLECT ktab.
ENDSELECT.
ENDLOOP.
prog = sy-repid.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = prog
i_internal_tabname = 'KTAB'
i_inclname = prog
CHANGING
ct_fieldcat = fcat.
x_save = 'X'.
gs_variant-report = sy-repid.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
it_fieldcat = fcat
is_variant = gs_variant
i_save = x_save
TABLES
t_outtab = ktab[]
EXCEPTIONS
OTHERS = 1.
*&---------------------------------------------------------------------*
*& Form selection
*&---------------------------------------------------------------------*
FORM selection USING tabn.
SELECT bukrs kunnr gjahr belnr buzei budat bldat dmbtr
FROM (tabn) APPENDING TABLE itab
WHERE bukrs IN s_bukrs
AND kunnr IN s_kunnr
AND augdt IN stida.
MESSAGE i001(00) WITH 'Sätze:' sy-dbcnt.
ENDFORM. " sel