Listing 3.2  Quelltext des Programms ZPTB00_Sales_Order
REPORT  zptb00_sales_order.
PARAMETERS:
* Article data
  p_ano(10) TYPE n OBLIGATORY,					
  p_aname(40) TYPE c OBLIGATORY,
  p_aprice TYPE p DECIMALS 2 OBLIGATORY,
  p_curr TYPE currencysap OBLIGATORY DEFAULT 'EUR',
  p_aquant TYPE i OBLIGATORY DEFAULT 1,
* Tax
  p_tax TYPE p DECIMALS 2 DEFAULT '16' OBLIGATORY,
* Terms of payment
  p_cash TYPE c RADIOBUTTON GROUP 0001 DEFAULT 'X',
  p_credit TYPE c RADIOBUTTON GROUP 0001,
  p_months TYPE i OBLIGATORY DEFAULT '24'.

CONSTANTS:
* Interest per year in percent
  con_annual_interest TYPE p DECIMALS 2 VALUE '6.75'.

DATA: 	
* Temporary data
  l_net_amount TYPE p DECIMALS 2,
  l_tax_factor TYPE f,
  l_credit_amount TYPE p DECIMALS 2,
  l_monthly_interest_factor TYPE f,
* Result data
  l_monthly_vat_amount TYPE p DECIMALS 2,
  l_monthly_amount TYPE p DECIMALS 2,
  l_vat_amount TYPE p DECIMALS 2,
  l_total_amount LIKE l_net_amount.

* Temporary calculations
l_net_amount = p_aprice * p_aquant.
l_tax_factor = p_tax / 100.
* Write article information to screen
WRITE: /, / 'Article information',
       / 'Article number: ', 30 p_ano,
       / 'Article name: ', 30 p_aname,
       / 'Article net price: ', 30 p_aprice, p_curr,
       / 'Quantity: ', 30 p_aquant.

* Write conditions to screen
WRITE: /, / 'Conditions',
       / 'Tax rate: ', 30 p_tax,
       / 'Quantity: ', 30 p_aquant.

WRITE: /, / 'Result'.
IF p_cash = 'X'.
* Calculate cash results
  l_vat_amount = l_net_amount * l_tax_factor.
  l_total_amount = l_net_amount + l_vat_amount.
* Write results to screen
  WRITE: / 'Total VAT amount: ', 30 l_vat_amount, 
            p_curr,
         / 'Total amount: ', 30 l_total_amount, p_curr.
ELSE.
* Calculate interest results
  l_monthly_interest_factor = con_annual_interest / 100 
  / 12.
  l_credit_amount = l_net_amount + l_net_amount * 
  l_monthly_interest_factor * p_months.
  l_vat_amount = l_credit_amount * l_tax_factor.
  l_total_amount = l_credit_amount + l_vat_amount.
  l_monthly_vat_amount = l_vat_amount / p_months.
  l_monthly_amount = l_total_amount / p_months.
* Write results to screen
  WRITE: / 'Month: ', 30 p_months,
         / 'Monthly VAT amount: ', 30 
           l_monthly_vat_amount, p_curr,
         / 'Monthly amount: ', 30 l_monthly_amount, 
           p_curr,
         / '(VAT amount: ', 30 l_vat_amount, p_curr, 
           ')',
         / '(Total amount: ', 30 l_total_amount, 
           p_curr, ')'.
ENDIF.