DATA: wa_flight TYPE spfli.
DATA: wa_spflight TYPE sflight.
DATA: l_par TYPE p DECIMALS 2.
PARAMETERS : pa_car TYPE s_carr_id.
IF pa_car EQ space.
pa_car = '%'.
ENDIF.
SELECT carrid connid fldate seatsmax seatsocc
FROM sflight
INTO CORRESPONDING FIELDS OF wa_spflight
WHERE carrid LIKE pa_car.
CLEAR l_par.
IF wa_spflight-seatsmax > 0.
l_par = 100 * wa_spflight-seatsocc /
wa_spflight-seatsmax.
ENDIF.
WRITE: / wa_spflight-carrid,
wa_spflight-connid,
wa_spflight-fldate,
wa_spflight-seatsmax,
wa_spflight-seatsocc,
l_par ,
'%'.
ENDSELECT.
1.PARAMETERS : pa_car TYPE s_carr_id.
scarr_id의 역활은 뭔가요?
2. IF pa_car EQ space.
pa_car = '%'.
ENDIF.
빈공백으로 실행하니 결과는 나오네요. % 는 뭐보고 저렇게 사용한 이유가 뭔가요?
3. IF wa_spflight-seatsmax > 0.
l_par = 100 * wa_spflight-seatsocc /
wa_spflight-seatsmax.
ENDIF.
로직구조는 알겠는데 저런 계산을 해서 결과를 출력한 이유를 모르겠습니다.
자세한 설명부탁합니다.
1번 : 데이타 선언부에 TYPES: S_CARR_ID로 선언된 부분이 있을거에요. 그 데이타 타입으로 PA_CAR를 선언한다는거지요.
2번 : PA_CAR에 데이타가 없으면 모든 것을 넣기 위해서 %를 사용했나보네요. 쿼리시 WHERE조건에 LIKE '%' 면 모든 것을 가져옴.
3번 : 좌석이 몇프로 예약되어 있는지 나타내는거 같네요 ㅎㅎ