ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • ALV 셀별 스타일 지정
    SAP/ABAP 2013. 3. 25. 18:14

    DATA LT_CELLTAB TYPE LVC_T_STYL,
           LS_CELLTAB TYPE LVC_S_STYL.

     

      " 버튼 스타일
    CLEAR LS_CELLTAB.
    LS_CELLTAB-FIELDNAME 'DETAIL'.
    LS_CELLTAB-STYLE     CL_GUI_ALV_GRID=>MC_STYLE_BUTTON.
    " LS_CELLTAB-STYLE     = CL_GUI_ALV_GRID=>MC_STYLE_DISABLED.
    APPEND LS_CELLTAB TO LT_CELLTAB.


    LOOP AT GT_OTAB.

      GT_OTAB-DETAIL ICON_HISTORY.
      CLEAR GT_OTAB-CELLSGT_OTAB-CELLS[].
      INSERT LINES OF LT_CELLTAB_BTN INTO TABLE GT_OTAB-CELLS.

      MODIFY GT_OTAB.

    ENDLOOP.
     


    ALV 세팅시 레이아웃에 다음과같이 CELL STYLE 필드를 지정해준다.
    PS_LAYOUT-STYLEFNAME 'CELLS'.

     

    필드 카달록으로 컬럼 전체가 아니라 데이터 확인후 셀별로 스타일 지정할때는 위와 같이 사용한다. CL_BUI_ALV_GRID 클래스에 각각의 다음과 같은 스타일이 정의 되어 있으니 참고.

     

     MC_STYLE4_LINK  Set Link Style '00000004'
     MC_STYLE4_LINK_NO  Remove Link Style '00000008'
     MC_STYLE_BUTTON  Button '20000000'
     MC_STYLE_DISABLED  Not Ready for Input '00100000'
     MC_STYLE_ENABLED  Ready for Input '00080000'
     MC_STYLE_F4  F4 '02000000'
     MC_STYLE_F4_NO  No F4 '04000000'
     MC_STYLE_HOTSPOT  Hotspot '00200000'
     MC_STYLE_HOTSPOT_NO  Disable Hotspot '00400000'
     MC_STYLE_NO_DELETE_ROW  Delete Rows not Enabled '10000000'

     

    값을 직접 입력하든 그건 니 맘.

     

    아래와 같이 FIELD CATALOG에서 스타일을 지정하면 셀별 스타일은 무시되는 것 같음(?).

     

       GS_FCAT1_LN-COL_POS     13.
      GS_FCAT1_LN-FIELDNAME   'DETAIL'.
      GS_FCAT1_LN-COLTEXT     '변경이력'(018).
      GS_FCAT1_LN-OUTPUTLEN   13.
      GS_FCAT1_LN-DATATYPE    'CHAR'.
      GS_FCAT1_LN-JUST        =  'C'.
      "GS_FCAT1_LN-STYLE       =  CL_GUI_ALV_GRID=>MC_STYLE_BUTTON.
      APPEND GS_FCAT1_LN TO GT_FCAT1.
      

     

Designed by Tistory.