Drunken Lion

IS_LAYOUT 본문

SAP/ALV

IS_LAYOUT

DrkLion 2007. 10. 4. 13:09
  CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
       EXPORTING
*         I_INTERFACE_CHECK        = ' '
          i_callback_program       = pgm
          i_callback_pf_status_set =
          i_callback_user_command  = 'USER_COMMAND'
*         I_STRUCTURE_NAME         =
*         IS_LAYOUT                =
          it_fieldcat              = fieldcat
*         it_excluding             = pf_extab
*         IT_SPECIAL_GROUPS        =
*         IT_SORT                  =
*         IT_FILTER                =
*         IS_SEL_HIDE              =
*         I_DEFAULT                = 'X'
*         I_SAVE                   = ' '
*         IS_VARIANT               = ' '
*         IT_EVENTS                =
*         IT_EVENT_EXIT            =
*         IS_PRINT                 =
*         I_SCREEN_START_COLUMN    = 0
*         I_SCREEN_START_LINE      = 0
*         I_SCREEN_END_COLUMN      = 0
*         I_SCREEN_END_LINE        = 0
*    IMPORTING
*         E_EXIT_CAUSED_BY_CALLER  =
*         ES_EXIT_CAUSED_BY_USER   =
       TABLES
            t_outtab                 = download
       EXCEPTIONS
            program_error            = 1
            OTHERS                   = 2.

  화면의 LAYOUT 을 결정하기 위해서 사용되는 것으로 다양한 속성 값에 의해서 LAYOUT을 조정할 수 있도록 되어 있다.

 1. 속성
  - Display Option : Layout 의 display 옵션을 지정할 때 사용하는 속성
FIELD NAME 값(VALUE)
COLWIDTH_OPTIMIZE '', 'X'
NO_COLHEAD '', 'X'
ZEBRA '', 'X'
NO_VLINE '', 'X'
NO_MIN_LINESIZE '', 'X'
MIN_LINESIZE 0, 10 ~ 250
MAX_LINESIZE 0, 80 ~ 1020

 - Exceptions : Exception 처리를 신호로 구분해 주기위해 사용하는 속성
FIELD NAME 값(VALUE)
LIGHTS_FIELDNAME '', FIELD NAME
LIGHTS_TABNAME '', TABLE NAME
LIGHTS_ROLLNAME '', DATA ELEMENT TYPE
LIGHTS_CONDENSE '', 'X'


 - Totals : Total 값에 대한 layout을 설정할 수 있는 속성
FIELD NAME 값(VALUE)
NO_SUMCHOICE '', 'X'
NO_TOTALLINE '', 'X'
NO_SUBCHOICE '', 'X'
TOTALS_ONLY '', 'X'
TOTALS_TEXT '', String
SUBTOTALS_TEXT '', String
NUMC_SUM '', 'X'

- Interaction : 다른 Object 와 상호 연관성이 있으며 서로간의 상호작용에 영향을 주는 속성
FIELD NAME 값(VALUE)
BOX_FIELDNAME '', FIELD NAME
BOX_TABNAME '', TABLE NAME
NO_INPUT '', 'X'
EXPAND_FIELDNAME '', FIELD NAME
F2CODE '', FUNCTION CODE
CONFIRMATION_PROMPT '', 'X'
KEY_HOTSPOT '', 'X'
REPREP '', 'X'
GROUP_BUTTONS '', 'X'
NO_KEYFIX '', 'X'
GET_SELINFOS '', 'X'
GROUP_CHANGE_EDIT '', 'X'

- Detail screen : 세부 내용을 볼때 보여지는 layout 의 속성
FIELD NAME 값(VALUE)
DETAIL_POPUP '', 'X'
DETAIL_INITIAL_LINES '', 'X'
DETAIL_TITLEBAR '', String

- Color : 색깔에 대한 layout 지정
FIELD NAME 값(VALUE)
INFO_FIELDNAME '', FIELD NAME
COLTAB_FIELDNAME '', FIELD NAME

 2. DATA 선언
  DATA: GS_LAYOUT TYPE SLIS_LAYOUT_ALV.

 3. 적용방법
  FORM INIT.
    GS_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
  .
  .
  ENDFORM.

  CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
       EXPORTING
*         I_INTERFACE_CHECK        = ' '
          i_callback_program       = pgm
          i_callback_pf_status_set =
          i_callback_user_command  = 'USER_COMMAND'
*         I_STRUCTURE_NAME         =
        IS_LAYOUT                = GS_LAYOUT
          it_fieldcat              = fieldcat
.
.
 의 방법으로 적용한다.

4. 속성 설명
  1) COLWITH_OPTIMIZE
    출력되는 필드의 너비를 Internal table의 필드 너비와 동일하게 설정해 준다.

  2) NO_COLHEAD
    'X' 인경우 각 Column header 가 나타나지 않게 된다.

  3) ZEBRA
    'X' 인경우 짝수 줄과 홀수줄의 색상이 다르게 표현된다.

  4) NO_VLINE
    'X' 인경우 필드 구분을 위한 세로줄이 삭제된다.

  5) NO_MIN_LINESIZE, MIN_LINESIZE, MAX_LINESIZE
  결과 화면에 영향을 미치지는 않으나, I_INTERFACE_CHECK 와 함께 사용할 경우,
속성값이 적절하지 않을때 Warning Message를 띄워주게 된다.
 예를 들어 , Max_linesize = '100' 이라고 지정한 경우에 실제 라인 수는 100을 초과 한다면
warning message를 보여준다.

  6) LIGHTS_FIELDNAME
    '1' : 빨간신호
    '2' : 노란색 신호
    '3' : 녹색 신호
   - 구현방법 : 출력할 Internal table에 status 라는 필드를 추가
   - gs_layout-lights_fieldname = 'STATUS' 라인 추가
   - 출력할 테이블의 각 라인에 조건을 걸어 Status 필드에 각각 1 ~ 3 까지 의 값을 입력

  7) LIGHTS_TABNAME
    Hierarchical-sequential list와 관련된 속성으로 2개의 테이블을 가지고 리스트를 구성할때
  lights_fieldname이 어느 테이블 내의 필드 값인지 알려주기 위해서 필요한 속성이다.

  8) LIGHTS_ROLLNAME
    Exception Field에 대해서 F1 help 호출시 보여주기 위한 것으로 해당 필드의
  data element name을 넣으면 적용된다.

  9) LIGHTS_CONDENSE

  10) NO_SUMCHOICE
   'X'인 경우 SUM 이 가능한 필드에 대해서 SUM 수행이 되지 않도록 설정

  11) NO_TOTALLINE
   'X'인 경우 계산은 하지만 실제로 출력은 되지 않도록 설정됨.

  12) NO_SUBCHOICE
   'X'인 경우 Subtotal 버튼이 보이지 않도록 설정됨.

  13) NO_SUBTOTALS
   'X' 인경 부분합 버튼은 있으나 , 클릭시 sort된 결과만 보여진다.

  14) TOTALS_ONLY
    Hierarchical-sequential list와 simple list 에서만 가능하며 단지 total record 만 보여준다.
    'X' 인 경우에 가능하며 IT_SORT 에 sort 조건과 subtotal flag를 포함하고 있어야 한다.

  15) TOTALS_TEXT
    Total record 맨 처음 field에 원 하는 문구를 넣고자 할때 사용.

  16) SUBTOTALS_TEXT
    Subtotal record 맨 처음 field에 원 하는 문구를 넣고자 할때 사용.

  17) NUMC_SUM
    'X' 인 경우 NUMC 인 필드에 대해 TOTAL을 수행한다.

  18) BOX_FIELDNAME
    Output list 에 checkbox를 두고 싶을때 이용가능한 속성이다.
    - 구현방법 : 출력할 Internal table에 zmark 라는 필드를 추가
    - gs_layout-box_fieldname = 'ZMARK' 라인 추가
    - '' 또는 X 필드값을 가질수 있다.
   
  19) NO_INPUT
    IT_FIELDCAT 의 INPUT 속성이 X 인경우, 필드가 입력 가능하다.
    본 속성은 모든 필드에 적용되며, IT_FIELDCAT 이 우선 적용된다.

  20) F2CODE
    FUNCTION CODE 를 입력하면 해당기능이 작동하게 된다.
    gs_layout-f2code = '&ETA'. 라고 하면 더블클릭시 상세 화면이 보이게 된다.

  21) CONFIRMATION_PROMPT
    'X' 값을 쓰면, BACK(F03), EXIT(F15), CANCEL(F12)가 일어날때 Confirm Message
   를 보여준다

  22) KEY_HOTSPOT
    'X' 인 경우 KEY FIELD는 HOTSPOT 으로 보이며, 선택 가능해진다.

  23) NO_KEYFIX
    Block list 와는 관계가 없으며 field catalog 에서 key로 지정된 컬럼은 좌우 스크롤시 화면에
  fix 되어지는데 이러한 기능을 하지 못하게 할때 no_keyfix에 X 를 주면 동작하지 않는다.

  24) GET_SELINFOS
    SELECTION SCREEN 에서 검색조건으로 넣었던 값들을 보여주는 버튼이 생겨난다.

  25) GROUP_CHANGE_EDIT
    이 속성에 X 를 하면 SORT 와 SUBTOTAL POPUP 내의 각 SORT 조건을 위한 포맷을
  사용자가 입력 가능하도록 열어준다.
    NEW PAGE 와 UNDERLINE 선택이 가능하며 그 값은 '*' 과 'UL' 이다.
 
  26) DETAIL_POPUP
    'X' 인 경우 DETAIL BUTTON 클릭시 보여주는 세부 항목 화면을 POPUP으로 보여준다.

  27) DETAIL_INITIAL_LINES
    'X' 인 경우 세부항목 화면에서 내용이 없는 필드는 제외시키고 DISPLAY 한다.

  28) DETAIL_TITLEBAR
    GS_LAYOUT-DETAIL_TITLEBAR = 'TITLE'  로 구현하며, 세부항목 화면의 TITLE을
  구성할수 있도록 한다.

  29) INFO_FIELDNAME
    데이터를 가지고 있는 Internal table에 색상 지정을 위한 3자리 필드를 추가한다.
    Cxy
    C: color : 모든 코드는 C 로 시작된다.
    x : color number 1 ~ 9 까지 지정할 수 있다.
    y : bold  0 - normal , 1 = bold
    마찬가지로 아래와 같은 소스를 추가해 주어야 한다.
    GS_LAYOUT-INFO_FIELDNAME = 'COLOR' "FIELD NAME

  30) COLTAB_FIELDNAME
    ※ 내용이 잘 이해 되지 않아 sample source 로 대체한다.

    INFO_FIELDNAME 과 비슷하지만, KEY FIELD 의 색상도 지정이 가능한점,
  컬럼별로 색상 지정이 가능한점, 또, FIELD가 아니라 'SLIS_T_SPECIALCOL_ALV' TYPE
  이라는 점이 다르다.
    DATA: IT_COLOR TYPE SLIS_T_SPECIALCOL_ALV,
              LS_COLOR1 TYPE SLIS_SPECIALCOL_ALV,
              LS_COLOR2 TYPE SLIS_SPECIALCOL_ALV,
              LS_COLOR3 TYPE SLIS_SPECIALCOL_ALV.
    -----------------------
    GS_LAYOUT-COLTAB_FIELDNAME = 'TABCOLOR'.
    -----------------------
    FORM BUILD LAYOUT.
      LS_COLOR1-FIELDNAME = 'NO_EMPL'.
      LS_COLOR1-COLOR_COL = 5.
      LS_COLOR1-COLOR_INT = 1.
      LS_COLOR1-COLOR-INV = 0.
      LS_COLOR1-NOKEYCOL = 'X'

      LS_COLOR2-FIELDNAME = 'ZPOSITION'.
      LS_COLOR2-COLOR_COL = 6.
      LS_COLOR2-COLOR_INT = 1.
      LS_COLOR2-COLOR-INV = 0.
      LS_COLOR2-NOKEYCOL = 'X'

      LS_COLOR3-FIELDNAME = 'TENURE'.
      LS_COLOR3-COLOR_COL = 7.
      LS_COLOR3-COLOR_INT = 1.
      LS_COLOR3-COLOR-INV = 0.
      LS_COLOR3-NOKEYCOL = 'X'
 
      LOOP AT GT_OUTTAB ASSIGNING <LS_OUTTAB>.
        CLEAR LT_COLOR.
        APPEND LS_COLOR1 TO LT_COLOR.
        IF <LS_OUTTAB>-ZPOSITION = '사장'.
            APPEND LS_COLOR2 TO LT_COLOR.
        ENDIF.
        IF <LS_OUTTAB>-TENURE > '20'.
            APPEND LS_COLOR3 TO LT_COLOR.
        ENDIF.
        <LS_OUTTAB>-TABCOLOR = LT_COLOR.
      ENDLOOP.
    ENDFORM.



   


   
   
   

'SAP > ALV' 카테고리의 다른 글

ALV 정형화 1/2  (0) 2007.11.06
IT_FIELDCAT  (0) 2007.10.04
I_CALLBACK_USER_COMMAND  (0) 2007.10.04
I_STRUCTURE_NAME  (0) 2007.10.04
I_CALLBACK_PF_STATUS_SET  (0) 2007.10.02