Listing 3.9  Quelltext des ZPTB00_SAVINGS_CALCULATOR
REPORT  zpbt00_savings_calculator. 
PARAMETERS:
* Savings target, monthly savings and yearly interest 
* rate
  p_atargt TYPE p DECIMALS 2,
  p_mrate TYPE p DECIMALS 2,
  p_iperc TYPE p DECIMALS 2.
DATA:
* Monthly interest rate, current savings and months
  l_monthly_interest_rate TYPE f,
  l_savings TYPE p DECIMALS 2,
  l_months TYPE i.
* Calculate Months and savings
l_monthly_interest_rate = p_iperc / 12 / 100.
WRITE: /'Savings target : ', p_atargt,
       /'monthly amount : ', p_mrate,
       /'Interest rate %: ', p_iperc.
WRITE sy-uline AS LINE.
* WHILE Version
WHILE l_savings < p_atargt.
  l_savings = l_savings + ( l_savings * 
  l_monthly_interest_rate ) + p_mrate.
  l_months = l_months + 1.
ENDWHILE.
WRITE: /'WHILE Statement',
       /'Months needed  : ', l_months,
       /'Saved amount   : ', l_savings.
* DO Version
CLEAR l_savings.
CLEAR l_months.
DO.
  l_savings = l_savings + ( l_savings * 
  l_monthly_interest_rate ) + p_mrate.
  l_months = l_months + 1.
  IF l_savings >= p_atargt.
    EXIT.
  ENDIF.
ENDDO.
WRITE: /'DO Statement',
       /'Months needed  : ', l_months,
       /'Saved amount   : ', l_savings.