[ABAP] PARAMETER - SALV

parameter 사용

1	REPORT zclass_001 MESSAGE-ID zfi00.
2
3	TABLES: sflight.
4
5	PARAMETERS: p_carrid LIKE sflight-carrid.
5
7	DATA: gt_list TYPE TABLE OF sflight WITH HEADER LINE.
8
9	//SALV 변수 선언
10	data: gr_table  type ref to cl_salv_table.
11
12	START-OF-SELECTION.
13	  PERFORM select_data.
14	    CHECK NOT GT_LIST[] IS INITIAL.
15	  PERFORM display_data.
16  
17	FORM select_data .
18
19  DATA: LV_CNT LIKE SY-TABIX.   "TABIX :시스템에서 라인수 나오는것
20	
21	  SELECT *
22	    FROM sflight
23	    INTO CORRESPONDING FIELDS OF TABLE gt_list
24	    WHERE carrid = p_carrid.
25
26
27	  IF SY-SUBRC = 0.
28	    LV_CNT = LINES( GT_LIST ).
29	    MESSAGE S010 WITH LV_CNT.
30	  ELSE.
31	    MESSAGE E004.
32	  ENDIF.
33	ENDFORM.
32	
33	FORM display_data .
34	  call method cl_salv_table=>factory
35	  importing
36	    r_salv_table = gr_table
37	  changing
38	    t_table      = gt_list[].
39
40	*... Display table
41	gr_table->display( ).
42
43	ENDFORM.
  1. MESSAGE-ID : REPORT프로그램의 첫줄. REPORT 옆에 사용할 수 있는건 MESSAGE-ID밖에 없음.

    REPORT 프로그램명 MESSAGE-ID 메세지유지보수 프로그램명>

  1. TABLES: SELECT사용하거나, 선언할 때 사용할 TABLE 선언.
    일반 PARAMETER같은걸 사용할땐 TABLES로 선언하지 않아도 되지만, SELECT-OPTION 사용하려면 TABLES 무조건 선언해줘야 함.
  1. PARAMETERS: Possible Entry 생성. 선택하여 select할때 값을 조건값으로 넣을 수 있음.

    PARAMETERS: <사용할 PARAMETER명> LIKE <TABLE명-FIELD명>

    PARAMETER을 넣으면 실행화면에서 나타나는 단어를 설정할 수 있음. SE80 코딩화면에서 위 텍스트 기호를 누르면 아래와 같은 화면이 나타남.

    선택텍스트에서 DICTIONARY 참조를 누른 후 ENTER를 누르면 TABLES로 선언한 테이블의 DATA ELEMENT에서 필드라벨에 설정해놓은 값이 텍스트에 입력이됨.

  2. WITH HEADER LINE: STRUCTURE가 하나 더 붙어있는 형태. WITH HEADER LINE이 없으면 STRUCTURE을 하나 더 선언해야함.

    디버깅을 해보면 위의 이미지처럼 WITH HEADER LINE으로 선언을 한다면 GT_LIST HEADER(모자모양)가 같이 생성되고, WITH HEADER LINE을 없이 선언하면 GT_LIST2같이 STRUCTURE만 생성됨.

  3. START-OF-SELECTION
    선언부분과 PERFORM부분을 구분지을때 사용함. 대부분 윗부분은 지역변수, 아랫부분은 PERFORM 등등...

  4. 33-43줄
    SALV사용하는 구문.
    SE80 접속 후, PACKAGE -> SALV_OM_OBJECTS 입력하면 많은 테이블이 나오지만 SALV_LEARN_MAP_TABLE_1 요거 참조함.

좋은 웹페이지 즐겨찾기