Listing 4.2  Quelltext des Programms ZPTB00_Hotel_Reservation
REPORT  zptb00_hotel_reservation.
PARAMETERS:
* Reservation data
  p_room TYPE zptb00_room_number VALUE CHECK,
  p_chkin TYPE zptb00_checkin,
  p_chkout TYPE zptb00_checkout,
  p_name TYPE zptb00_customer_name,
* Application menu
  p_add TYPE c RADIOBUTTON GROUP grp1 DEFAULT 'X',
  p_delete TYPE c RADIOBUTTON GROUP grp1,
  p_show TYPE c RADIOBUTTON GROUP grp1.
DATA:
* For working with table zptb00_hreservat
  l_str_reservation TYPE zptb00_hreservat,
  l_tab_reservation TYPE STANDARD TABLE OF 
      zptb00_hreservat.

IF p_add = 'X'.
* Check whether period is free
  SELECT * FROM zptb00_hreservat INTO TABLE 
      l_tab_reservation
  WHERE ( room_number = p_room )
    AND ( ( checkin BETWEEN p_chkin and p_chkout )
    OR ( checkout BETWEEN p_chkin AND p_chkout ) ).
  IF sy-dbcnt > 0.
    WRITE: / 'Zeitraum bereits reserviert'.
  ELSE.
* Make reservation
    CALL FUNCTION 'GUID_CREATE'
      IMPORTING
*       EV_GUID_16       =
*       EV_GUID_22       =
        ev_guid_32       = l_str_reservation-id.
    l_str_reservation-room_number = p_room.
    l_str_reservation-checkin = p_chkin.
    l_str_reservation-checkout = p_chkout.
    l_str_reservation-customer_name = p_name.
    INSERT zptb00_hreservat FROM l_str_reservation.
    WRITE: / 'Reservierung wurde vorgenommen'.
  ENDIF.
ELSEIF p_delete = 'X'.
* Delete reservation
  DELETE FROM zptb00_hreservat WHERE room_number = 
      p_room
  AND checkin = p_chkin AND checkout = p_chkout.
  WRITE: / 'Reservierung wurde gelscht'.
ELSEIF p_show = 'X'.
* Show reservations
  SELECT * FROM zptb00_hreservat INTO TABLE 
      l_tab_reservation
  ORDER BY room_number checkin customer_name.
  WRITE: / 'Room Reservations'.
  LOOP AT l_tab_reservation INTO l_str_reservation.
    WRITE: / 'Room:', l_str_reservation-room_number,
             'Check in:', l_str_reservation-checkin,
             'Check out:', l_str_reservation-checkout,
             'Customer name:', l_str_reservation-
                               customer_name.
  ENDLOOP.
ENDIF.