Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
AbapWB_content_EN.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
40.44 Mб
Скачать

100 * Wa_flight-seatsocc / wa_flight-seatsmax.

* Create list:

WRITE: / wa_flight-carrid, wa_flight-connid, wa_flight-fldate, wa_flight-seatsmax, wa_flight-seatsocc,

wa_flight-percentage, ’%’.

ENDSELECT.

IF sy-subrc NE 0.

WRITE: ’No ’, pa_car, ’flights found !’. ENDIF.

153 Exercise 9: Data Retrieval and Buffering in an Internal Table

Exercise Duration: 35 Minutes

Exercise Objectives

After completing this exercise, you will be able to:

• Fill an internal table with data from a database table

• Sort the content of an internal table

Business Example

Enhance your ABAP program for outputting required flight schedules in such a way that the percentage occupancy can be output in ascending order.

System Data

System: Will be assigned Client: Will be assigned User ID: Will be assigned Password: Will be assigned

Set up instructions: No special instructions when using a standard training

system

Task 1:

Retrieve data and fill an internal table

1. Copy your program ZBC400_##_SELECT_SFLIGHT (solution to first exercise in this lesson) or the template SAPBC400DDS_SELECT_SFLIGHT to the new name ZBC400_##_SELECT_SFLIGHT_ITAB.

2. Define an internal table (name proposal: it_flight) using a global table type that has the global structure SBC400FOCC as the row type.

Hint: From SBC400FOCC use the where-used list to find a suitable table type, which might exist already.

3. Each SFLIGHT row that is read should not be output directly but inserted into an internal table (INSERT statement).

Continued on next page

Task 2:

Sort and output the internal table

1. Sort the internal table according to occupancy (ascending).

2. Use a LOOP to display the contents of the internal table.

Solution 9: Data Retrieval and Buffering in an Internal Table

Task 1:

Retrieve data and fill an internal table

1. Copy your program ZBC400_##_SELECT_SFLIGHT (solution to first exercise in this lesson) or the template SAPBC400DDS_SELECT_SFLIGHT to the new name ZBC400_##_SELECT_SFLIGHT_ITAB.

a) Carry out this step as usual.

2. Define an internal table (name proposal: it_flight) using a global table type that has the global structure SBC400FOCC as the row type.

Hint: From SBC400FOCC use the where-used list to find a suitable table type, which might exist already.

a) Carry out this step as usual.

3. Each SFLIGHT row that is read should not be output directly but inserted into an internal table (INSERT statement).

a) See source code excerpt in the model solution.

Task 2:

Sort and output the internal table

1. Sort the internal table according to occupancy (ascending). a) See source code excerpt in the model solution.

2. Use a LOOP to display the contents of the internal table. a) See source code excerpt in the model solution.

Result

Source code excerpt: SAPBC400DDS_SELECT_SFLIGHT_TAB

REPORT sapbc400dds_select_sflight_tab. DATA: it_flight TYPE sbc400_t_sbc400focc,

wa_flight LIKE LINE OF it_flight.

Continued on next page

PARAMETERS pa_car TYPE s_carr_id.

* Select all flights belonging to PA_CAR : SELECT carrid connid fldate seatsmax seatsocc

FROM sflight

INTO CORRESPONDING FIELDS OF wa_flight

WHERE carrid = pa_car.

* Calculate occupation of flight wa_flight-percentage =

100 * wa_flight-seatsocc / wa_flight-seatsmax.

* Insert flight into internal table