조회화면은 데이터 선언부이고 전역변수이다.
조회화면 만들기
*&---------------------------------------------------------------------*
*& Report ZR4WEEK_1
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
*조회화면
REPORT ZR4WEEK_1.
*각 block은 이름이 달라야 함(희미한 네모박스)
SELECTION-SCREEN BEGIN OF BLOCK part1 WITH FRAME TITLE text-001. "frame title: 박스 제목
PARAMETERS field(10) TYPE c OBLIGATORY. "obligatory: 필수값
SELECTION-SCREEN END OF BLOCK part1.
SELECTION-SCREEN BEGIN OF BLOCK part2 WITH FRAME TITLE text-002.
PARAMETERS: p1(10) TYPE c VISIBLE LENGTH 1, "visible length: 보여지는 길이
p2(10) TYPE c VISIBLE LENGTH 5,
p3(10) TYPE c VISIBLE LENGTH 10.
SELECTION-SCREEN END OF BLOCK part2.
*checkbox - 중복가능
SELECTION-SCREEN BEGIN OF BLOCK part3 WITH FRAME TITLE text-003.
PARAMETERS: a AS CHECKBOX USER-COMMAND flag,
b AS CHECKBOX DEFAULT 'X'. "default: 디폴트값
SELECTION-SCREEN END OF BLOCK part3.
*radio button group - 각 그룹에서 중복 불가
SELECTION-SCREEN BEGIN OF BLOCK part4 WITH FRAME TITLE text-004.
PARAMETERS: r1 RADIOBUTTON GROUP rad1,
r2 RADIOBUTTON GROUP rad1 DEFAULT 'X',
r3 RADIOBUTTON GROUP rad1,
s1 RADIOBUTTON GROUP rad2,
s2 RADIOBUTTON GROUP rad2,
s3 RADIOBUTTON GROUP rad2 DEFAULT 'X'.
SELECTION-SCREEN END OF BLOCK part4.
SELECTION-SCREEN BEGIN OF BLOCK part5 WITH FRAME TITLE text-005.
PARAMETERS p_carrid TYPE spfli-carrid
AS LISTBOX VISIBLE LENGTH 20 "listbox
DEFAULT 'LH'.
SELECTION-SCREEN END OF BLOCK part5.
SELECTION-SCREEN BEGIN OF BLOCK part6 WITH FRAME TITLE text-006.
PARAMETERS p_carr1 TYPE spfli-carrid AS LISTBOX VISIBLE LENGTH 20.
PARAMETERS p_carr2 TYPE spfli-connid AS LISTBOX VISIBLE LENGTH 20.
PARAMETERS p_carr3 TYPE ZSPFLI10-countryfr AS LISTBOX VISIBLE LENGTH 20. "listbox는 필드가 2개일 때만 가능
PARAMETERS p_carr4 TYPE spfli-cityfrom AS LISTBOX VISIBLE LENGTH 20.
PARAMETERS p_carr5 TYPE spfli-airpfrom AS LISTBOX VISIBLE LENGTH 20.
PARAMETERS p_carr6 TYPE spfli-countryto AS LISTBOX VISIBLE LENGTH 20.
PARAMETERS p_carr7 TYPE spfli-cityto AS LISTBOX VISIBLE LENGTH 20.
PARAMETERS p_carr8 TYPE spfli-airpto AS LISTBOX VISIBLE LENGTH 20.
PARAMETERS p_carr9 TYPE spfli-fltime AS LISTBOX VISIBLE LENGTH 20.
PARAMETERS p_carr10 TYPE spfli-deptime AS LISTBOX VISIBLE LENGTH 20.
PARAMETERS p_carr11 TYPE spfli-arrtime AS LISTBOX VISIBLE LENGTH 20.
PARAMETERS p_carr12 TYPE spfli-distance AS LISTBOX VISIBLE LENGTH 20.
PARAMETERS p_carr13 TYPE spfli-distid AS LISTBOX VISIBLE LENGTH 20.
PARAMETERS p_carr14 TYPE spfli-fltype AS LISTBOX VISIBLE LENGTH 20.
PARAMETERS p_carr15 TYPE spfli-period AS LISTBOX VISIBLE LENGTH 20.
SELECTION-SCREEN END OF BLOCK part6.
SELECTION-SCREEN BEGIN OF BLOCK part7 WITH FRAME TITLE text-007.
PARAMETERS p_sth1 TYPE zscarr10-carrid.
PARAMETERS p_sth2 TYPE zscarr10-carrname.
PARAMETERS p_sth3 TYPE zscarr10-currcode.
PARAMETERS p_sth4 TYPE zscarr10-url.
SELECTION-SCREEN END OF BLOCK part7.
*한줄에 두칸 만들기
TABLES SPFLI. "테이블 선언을 해주어야 함.
SELECTION-SCREEN BEGIN OF BLOCK part8 WITH FRAME TITLE text-008.
SELECT-OPTIONS s_carrid FOR spfli-carrid.
SELECTION-SCREEN END OF BLOCK part8.
*&---------------------------------------------------------------------*
*& Report ZR2WEEK_1
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zr4week_2.
TABLES: scarr.
TYPE-POOLS: slis. "ALV Declarations
*Data Declaration
*----------------
TYPES: BEGIN OF t_scarr,
mandt TYPE scarr-mandt,
carrid TYPE scarr-carrid,
carrname TYPE scarr-carrname,
currcode TYPE scarr-currcode,
url TYPE scarr-url,
line_color(4) TYPE c, "Used to store row color attributes
END OF t_scarr.
DATA: it_scarr TYPE STANDARD TABLE OF t_scarr,
wa_scarr TYPE t_scarr.
*ALV data declarations
DATA: fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE,
gd_tab_group TYPE slis_t_sp_group_alv,
gd_layout TYPE slis_layout_alv,
gd_repid LIKE sy-repid.
DATA : t TYPE slis_t_sp_group_alv .
*조회화면(Start of selection 위)
SELECTION-SCREEN BEGIN OF BLOCK part8 WITH FRAME TITLE text-008.
SELECT-OPTIONS s_carrid FOR scarr-carrid.
SELECT-OPTIONS s_cname FOR scarr-carrname.
SELECT-OPTIONS s_ccode FOR scarr-currcode.
SELECT-OPTIONS s_url FOR scarr-url.
*PARAMETERS p_carrid TYPE scarr-carrid OBLIGATORY DEFAULT 'AA'. "파라미터에 obligatory, default
SELECTION-SCREEN END OF BLOCK part8.
************************************************************************
*Start-of-selection.
START-OF-SELECTION.
PERFORM data_retrieval.
PERFORM build_fieldcatalog.
PERFORM build_layout.
PERFORM display_alv_report.
*&---------------------------------------------------------------------*
*& Form BUILD_FIELDCATALOG
*&---------------------------------------------------------------------*
* Build Fieldcatalog for ALV Report
*----------------------------------------------------------------------*
FORM build_fieldcatalog.
fieldcatalog-fieldname = 'MANDT'.
fieldcatalog-seltext_m = 'Client'.
fieldcatalog-col_pos = 0.
fieldcatalog-outputlen = 10.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'CARRID'.
fieldcatalog-seltext_m = 'Airline Code'.
fieldcatalog-col_pos = 1.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'CARRNAME'.
fieldcatalog-seltext_m = 'Airline name'.
fieldcatalog-col_pos = 2.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'CURRCODE'.
fieldcatalog-seltext_m = 'Local currency of airline'.
fieldcatalog-col_pos = 3.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'URL'.
fieldcatalog-seltext_m = 'Airline URL'.
fieldcatalog-col_pos = 4.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
ENDFORM. " BUILD_FIELDCATALOG
*&---------------------------------------------------------------------*
*& Form BUILD_LAYOUT
*&---------------------------------------------------------------------*
* Build layout for ALV grid report
*----------------------------------------------------------------------*
FORM build_layout.
gd_layout-no_input = 'X'.
gd_layout-colwidth_optimize = 'X'.
gd_layout-zebra = 'X'.
* gd_layout-info_fieldname = 'LINE_COLOR'.
* gd_layout-def_status = 'A'.
ENDFORM. " BUILD_LAYOUT
*&---------------------------------------------------------------------*
*& Form DISPLAY_ALV_REPORT
*&---------------------------------------------------------------------*
* Display report using ALV grid
*----------------------------------------------------------------------*
FORM display_alv_report.
gd_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = gd_repid
is_layout = gd_layout
it_fieldcat = fieldcatalog[]
i_save = 'X'
TABLES
t_outtab = it_scarr
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " DISPLAY_ALV_REPORT
*&---------------------------------------------------------------------*
*& Form DATA_RETRIEVAL
*&---------------------------------------------------------------------*
* Retrieve data form EKPO table and populate itab it_ekko
*----------------------------------------------------------------------*
FORM data_retrieval.
DATA: ld_color(1) TYPE c.
SELECT mandt carrid carrname currcode url
FROM scarr
INTO TABLE it_scarr
WHERE carrid IN s_carrid "carrid의 범위를 지정
AND carrname IN s_cname
AND currcode IN s_ccode
AND url IN s_url.
* WHERE carrid = p_carrid. "파라미터 조건
ENDFORM. " DATA_RETRIEVAL
'review > abap_itrich' 카테고리의 다른 글
week3_review : 디버깅 (1) | 2024.10.24 |
---|---|
week2_review : 기본구조 (7) | 2024.10.22 |