조회화면은 데이터 선언부이고 전역변수이다.

 

조회화면 만들기

*&---------------------------------------------------------------------*
*& 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

+ Recent posts