본문 바로가기

전체글

HTMLB : TableView Cell Color

BSP에서 <htmlb:tableView>를 사용할 때 Cell 또는 해당 Row의 색상을 바꿔달라는 요구사항이 있을수 있다.
이럴때 기본적인 고려사항은 다음과 같다.
  • <tableView> HTMLB에서는 색상지정이 불가능하다.
  • <tableView>에서 색상을 지정하려면 반드시 tableView Iterator를 사용해야 한다.
  • 사용가능한 색상이 사전에 정의되어 있으며 자유롭게 색상을 지정할 수 없다.
1. <tableView>에서 사용가능한 색상의 목록은 IFUR_D2 Interface에 attribute로 정의되어 있음.
   각각의 attribute는 정수값을 가지며, 상세한 내용은 아래 테이블을 참조.

attribute name value Color CSS Class
STCD_ENUM 0

STCD_STANDARD 1
urSTTD
STCD_ALTERNATING 2
urSTSAlt
STCD_TRANSPARENT 3
urSTSTrans
STCD_NEGATIVE 4
urSTSNeg
STCD_POSITIVE 5
urSTSPos
STCD_TOTAL 6
urSTSTot
STCD_SUBTOTAL 7
urSTSSubtot
STCD_SUBTOTAL_LIGHT 8
urSTSSubtotLight
STCD_BADVALUE_DARK 9
urSTSBadDark
STCD_BADVALUE_MEDIUM 10
urSTSBadMedium
STCD_BADVALUE_LIGHT 11
urSTSBadLight
STCD_CRITICALVALUE_DARK 12
urSTSCritDark
STCD_CRITICALVALUE_MEDIUM 13
urSTSCritMedium
STCD_CRITICALVALUE_LIGHT 14
urSTSCritLight
STCD_GOODVALUE_DARK 15
urSTSGoodDark
STCD_GOODVALUE_MEDIUM 16
urSTSGoodMedium
STCD_GOODVALUE_LIGHT 17
urSTSGoodLight
STCD_GROUP_HIGHLIGHTED 18
urSTSGrpHL
STCD_GROUP_HIGHLIGHTED_LIGHT 19
urSTSGrpHLLight
STCD_KEY_MEDIUM 20
urSTSKeyMedium
STCD_GROUP_LEVEL1 21
urSTSGrpLvl1
STCD_GROUP_LEVEL2 22
urSTSGrpLvl2
STCD_GROUP_LEVEL3 23
urSTSGrpLvl3
STCD_MARKED 24
urSTSMarked
STCD_FILTER 25
urSTFltBdr
STCD_FILTERICON 26
urSTSFlt
STCD_POPIN 27
urSTSPopIn
                      - 위 예제중에서 STCD_ENUM은 실제로는 사용되지 않으며, STCD_FILTER는 Background Color 대신
                         Cell Border color가 변경됨. STCD_FILTERICON 및 STCD_STANDARD, STCD_TRANSPARENT는
                         Background Color가 #FFF 임.
                      - 위에서 사용된 CSS Class는 SAP WAS의 MIME Repository에 있는 ur_ie6.css 파일에 모두
                         정의되어 있음. 단, SAP EP 환경에서는 Theme 적용에 따라서 일부 Class가 누락되는 경우도 있으니
                         주의할것.
            - CLUR_D2 ABAP Class의 local class LCLUR_ie5->IFUR_D2__ALL~F_SapTableCell 메소드에서 attribute와
                        CSS Class간의 mapping code를 볼수 있슴..


2.  <tableView> Iterator Class에서 위 design을 적용하려면 아래와 같이 사용한다.
  • Iterator Class의 IF_HTMLB_TABLEVIEW_ITERATOR~RENDER_CELL_START 메소드를 구현.
    사용자 삽입 이미지

  • Render_cell_start 메소드의 p_style 파라미터에  cellDesign:<attribute명> 형식으로 값을 설정.
    Ex) p_style = 'cellDesign:ALTERNATING'.