Vielen Dank für eure zahlreiche Hilfe.
Habe jetzt doch noch eine Änderung. Und zwar soll über nen Select-Options die Zahlungsbedingungen ausgewählt werden, sprich es soll die Möglichkeit vorhanden sein, mehrere Zahlungsbedinungen gleichzeitig einzugeben. Des WEiteren sollte auch beim Umsatz die Spanne individuell eingegeben werden können. Wie könnte sowas aussehen. Wäre so ein Code denkbar:
REPORT ZFKRED01 .
Tables: LFA1, LFB1, LFC1, T052U. " Tabellendeklaration
Data: Sumh like lfc1-umsav,
UMSAV like lfc1-umsav,
counter type i,
sums like lfc1-umsav,
sumt like lfc1-umsav,
sum_total like lfc1-umsav.
selection-screen begin of block ZFKRED with frame title text-001.
SELECT-OPTIONS: so_lifnr FOR lfa1-lifnr.
SELECT-OPTIONS: so_bukrs FOR lfb1-bukrs.
SELECT-OPTIONS: so_gjahr FOR lfc1-gjahr.
select-options: so_zterm FOR T052U-zterm.
Select-options: so_umsat for lfc1-umsav.
* parameter: zahl_bed(4) type c. " obligatory.
* parameter: Umsatz type i obligatory.
selection-screen end of block ZFKRED.
select * from T052U where zterm in so_zterm.
endselect.
*CALL FUNCTION 'FI_CHECK_ZTERM'
* EXPORTING
* i_zterm = zahl_bed.
if sy-subrc NE 0.
write: / ' Zahlungsbedingung nicht vorhanden: ', so_zterm.
exit.
endif.
select * from LFB1 where LIFNR in so_LIFNR and
bukrs in so_bukrs.
* and zterm = zahl_bed.
select * from lfc1 where lifnr = lfb1-lifnr and
bukrs = lfb1-bukrs and
gjahr in so_gjahr.
if sy-subrc = 0.
perform summieren.
endif.
endselect.
endselect.
skip 2.
write: / 'Anzahl Datensätze =', counter, 140 'Umsatz gesamt =', sum_total.
*&---------------------------------------------------------------------*
*& Form summieren
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
form summieren.
clear: sumh, UMSAV, sums, sumt.
ADD LFC1-UM01H THEN LFC1-UM02H UNTIL LFC1-UM16H GIVING SUMH.
* SumH = LFC1-UM01H + LFC1-UM02H + LFC1-UM03H + LFC1-UM04H + LFC1-UM05H + LFC1-UM06H + LFC1-UM07H +
* LFC1-UM08H + LFC1-UM09H + LFC1-UM10H + LFC1-UM11H + LFC1-UM12H + LFC1-UM13H + LFC1-UM14H + LFC1-UM15H + LFC1-UM16H.
* SumS = LFC1-UM01s + LFC1-UM02s + LFC1-UM03s + LFC1-UM04s + LFC1-UM05s + LFC1-UM06s + LFC1-UM07s +
* LFC1-UM08s + LFC1-UM09s + LFC1-UM10s + LFC1-UM11s + LFC1-UM12s + LFC1-UM13s + LFC1-UM14s + LFC1-UM15s + LFC1-UM16s.
* sumt = UMSAV.
sumt = sumh.
sum_total = sum_total + sumt.
if sumt LE umsav and sumh <> 0.
select single * from lfa1 where lifnr = lfb1-lifnr.
write: / LFA1-LIFNR, lfa1-name1, sy-vline, lfa1-ort01, sy-vline, LFA1-BRSCH, sy-vline, LFB1-BUKRS, sy-vline, T052U-TEXT1, sy-vline, sumt.
counter = counter + 1.
endif.
endform. "summieren
Vielen Dank
Gruss Marco