Code: Alles auswählen.
REPORT zpsbudget_test.
TYPES: BEGIN OF str_psbudget,
"PROJ ALIAS d
d_pspnr TYPE proj-pspnr,
"PRPS ALIAS p
p_pspnr TYPE prps-pspnr,
p_posid TYPE prps-posid,
p_post1 TYPE prps-post1,
p_objnr TYPE prps-objnr,
p_psphi TYPE prps-psphi,
"BPJA ALIAS b
b_objnr TYPE bpja-objnr,
b_wrttp TYPE bpja-wrttp,
b_gjahr TYPE bpja-gjahr,
b_vorga TYPE bpja-vorga,
b_wljhr TYPE bpja-wljhr,
b_wljhv TYPE bpja-wljhv,
END OF str_psbudget.
DATA: i_psbudget TYPE TABLE OF str_psbudget,
wa_psbudget LIKE LINE OF i_psbudget.
DATA: v_original TYPE bpja-wljhr,
v_original_sum TYPE bpja-wljhr,
v_nachtrag TYPE bpja-wljhr,
v_nachtrag_sum TYPE bpja-wljhr,
v_verteilbar TYPE bpja-wljhv,
v_verteilbar_sum TYPE bpja-wljhv,
v_rueckgabe TYPE bpja-wljhr,
v_rueckgabe_sum TYPE bpja-wljhr,
v_umbuchung TYPE bpja-wljhr,
v_umbuchung_sum TYPE bpja-wljhr.
SELECTION-SCREEN BEGIN OF BLOCK projektbudget WITH FRAME TITLE text-001.
SELECT-OPTIONS so_pspnr FOR wa_psbudget-d_pspnr NO INTERVALS
NO-EXTENSION
OBLIGATORY.
SELECT-OPTIONS so_posid FOR wa_psbudget-p_posid.
SELECT-OPTIONS so_gjahr FOR wa_psbudget-b_gjahr NO INTERVALS
NO-EXTENSION OBLIGATORY.
SELECTION-SCREEN END OF BLOCK projektbudget.
START-OF-SELECTION.
SELECT d~pspnr p~pspnr p~posid p~post1 p~objnr p~psphi b~objnr b~wrttp
b~gjahr b~vorga b~wljhr b~wljhv
FROM bpja AS b INNER JOIN prps AS p ON b~objnr = p~objnr
INNER JOIN proj AS d ON d~pspnr = p~psphi
INTO TABLE i_psbudget
WHERE d~pspnr IN so_pspnr
"AND p~objnr = so_posid
"AND p~objnr = 'PR00000453'
AND b~gjahr = 2011
AND ( wrttp = '41' OR wrttp = '42' ).
IF sy-subrc <> 0.
MESSAGE
'Keine Datensätze zu den angegebenen Selektionswerten gefunden!'
TYPE 'I'.
EXIT.
ENDIF.
SORT i_psbudget BY b_objnr.
LOOP AT i_psbudget INTO wa_psbudget.
v_original = 0.
v_nachtrag = 0.
v_rueckgabe = 0.
v_umbuchung = 0.
v_verteilbar = 0.
CASE wa_psbudget-b_vorga.
WHEN 'KBUD'.
v_original = v_original + wa_psbudget-b_wljhr.
WHEN 'KBN0'.
v_nachtrag = v_nachtrag + wa_psbudget-b_wljhr.
WHEN 'KBR0'.
v_rueckgabe = v_rueckgabe + wa_psbudget-b_wljhr.
WHEN 'KBUS'.
v_umbuchung = v_umbuchung + wa_psbudget-b_wljhr.
WHEN 'KBFC'.
v_verteilbar = v_verteilbar + wa_psbudget-b_wljhv.
ENDCASE.
v_original_sum = v_original_sum + v_original.
v_nachtrag_sum = v_nachtrag_sum + v_nachtrag.
v_rueckgabe_sum = v_rueckgabe_sum + v_rueckgabe.
v_verteilbar_sum = v_verteilbar_sum + v_verteilbar.
v_umbuchung_sum = v_umbuchung_sum + v_umbuchung.
WRITE: wa_psbudget-p_posid, wa_psbudget-b_objnr, v_original_sum,
v_nachtrag_sum, v_rueckgabe_sum, v_umbuchung_sum, v_verteilbar_sum.
ENDLOOP.