콘텐츠로 이동

FieldCat

목적

Graph Field Catalog의 속성을 정의


주요 단계

[ 첨부 ABAP SOURCE ( SET_CHART_FCAT ) ]


METHOD SET_CHART_FCAT.

    DATA : LS_FCAT TYPE /U4A/CL_UO99988=>TY_FCAT.

    --------------------------------------------------------------------

    REFRESH ET_FCAT.

    LS_FCAT-VALUEFIELD      = 'WEK01'.     "필드명  
    LS_FCAT-TYPE            = 'column'.    "필드타입("column", "step" "line", "smoothedLine") 
    LS_FCAT-LINEALPHA       = '1'.         "막대 테두리 색상 투명도(0~1 소숫점 허용가능).
    LS_FCAT-LINECOLOR       = '#40E0C0'.   "막대 테두리 색상.
    LS_FCAT-LINETHICKNESS   = '5'.         "라인 두께
    LS_FCAT-BULLET          = 'round'.     "표 시점 type("none", "round", "square", "triangleUp", "triangleDown", "bubble", "custom).
    LS_FCAT-BULLETSIZE      = '10'.        "표시점 크기
    LS_FCAT-BULLETCOLOR     = '#40E0C0'.   "표시점 색상
    LS_FCAT-LABELPOSITION   = 'right'.     "라벨 위치.("bottom", "top", "right", "left", "inside", "middle)
    LS_FCAT-SHOWVALUETEXT   = 'X'.         "막대의 값 TEXT 보일지 여부('X' = 값을 표현함)
    LS_FCAT-FONTSIZE        = '15'.        "TEXT FONT크기(숫자)
    LS_FCAT-COLOR           = '#40E0C0'.   "라벨 색상.
    LS_FCAT-AXISVALUEFIELD  = 'WEK02'.     "AXIS를 사용할 다른 VALUEFIELD명.

    APPEND LS_FCAT TO ET_FCAT.
    CLEAR LS_FCAT. 

ENDMETHOD .

PROPERTIES MEAN
VALUEFIELD Field 명
OPENFIELD Low값 Field 명
TYPE Field Type("column", "step", "line", "smoothedline")
TITLE Field Desc
BALLOONTEXT 말풍선 Text
FILLCOLORS 막대 내부 색상
FILLALPHAS 막대 내부 색상 투명도 (0~1 소숫점 허용가능)
LINEALPHA 막대 테두리 색상 투명도 (0~1 소숫점 허용가능)
LINECOLOR 막대 테두리 색상
LINETHICKNESS 라인 두께
BULLET 표시점 type("none", "round", "square", "triangleUp", "triangleDown", "bubble", "custom")
BULLETSIZE 표시점 크기
BULLETCOLOR 표시점 색상
BULLETBORDERCOLOR 표시점 테두리 색상
BULLETBORDERALPHA 표시점 테두리 투명도
BULLETBORDERTHICKNESS 표시점 테두리 두께
DASHLENGTH 라인 점선(숫자가 클수록 점선 간격이 길어짐)
DASHLENGTHFIELD 라인 점건 바인딩 필드
COLOR 라벨 색상
LABELCOLORFIELD 라벨 색상 바인딩 필드
LABELPOSITION 라벨 위치.("bottom", "top", "right", "left", "inside", "middle)
LABELTEXT 라벨 Text(폐기처리됨 -> ShowValueText 필드 사용)
FONTSIZE Text Font크기 (숫자)
AXISVALUEFIELD Axis를 사용할 다른 ValueField명
LINECOLORFIELD 막대 테두리 색상 바인딩 필드
ALPHAFIELD 색상 투명도 바인딩 필드
CORNERRADIUSTOP 라운드 설정값(숫자)
TOPRADIUS 막대 원통으로 처리 값 - Chart의 Angle, Depth3D Property를 설정해야 적용 됨
SHOWVALUETEXT 막대의 값 Text 보일지 여부('X' = 값을 표현함)
HIDEBALLOON 말풍선 표시여부 ('X' = 말풍선 비활성)
DISCONNERCT Category에 Graph 값이 없는 경우 표현 안함 여부('X' = 표현안함)
LABELTEXTFIELD 라벨 바인딩 필드
BULLETFIELD 표시점 Type 바인딩 필드
BULLETSIZEFIELD 표시점 크기 바인딩 필드
COLORFIELD 색상 바인딩 필드
FIXEDCOLUMNWIDTH 막대 두께 값(숫자)
HIDEBULLETSCOUNT 비활성처리 표시점 숫자(차트에 보여지는 표시점이 입력 숫자를 초과하면 비활성 처리됨)
LABELOFFSET 라벨 여백
LABELROTATION 라벨 기울기
LEGENDCOLOR 범례 색상
LEGENDALPHA 범례 색상 투명도
MARKERTYPE 범례 타입(square, circle, diamond, triangleUp, triangleDown, triangleLeft, triangleRight, bubble, line, none)
SHOWHANDONHOVER 막대(선에) 마우스를 갖다 대는 경우 마우스 아이콘이 손모양으로 변경할지 여부('X' = 손모양)
DESWITCHABLE 범례 아이콘 선택 가능 ('X' = 선택 불가능 처리)
INVISIBLEINLEGEND 범례 아이콘 비활성 여부 ('X' = 비활성 )
XFIELD x 차트 전용 X축 바인딩 필드
YFIELD x 차트 전용 Y축 바인딩 필드

1. AmSerialChartComposite FieldCat - Type.

이미지


이미지


이미지


이미지


이미지


이미지


이미지


이미지


이미지


2. AmSerialChartComposite FieldCat - Bullet.

이미지


이미지


이미지


이미지


이미지


이미지


3. AmSerialChartComposite FieldCat - Legend

3.1 Marker Type 옵션

다음과 같은 Marker Type을 설정할 수 있다.

< square, circle, diamond, triangleUp, triangleDown >

이미지
이미지
이미지
이미지
이미지

<사진 1> square, circle, diamond, triangleUp, triangleDown Marker 예시


다음과 같은 추가 Marker Type도 설정할 수 있다.

< triangleLeft, triangleRight, bubble, line, none >

이미지
이미지
이미지
이미지
이미지

<사진 2> triangleLeft, triangleRight, bubble, line, none Marker 예시


3.2 Legend 설정 가능 속성

범례(Icon)에 대해 다음 항목을 설정할 수 있다.

  • LegendColor : Icon 색상
  • MarkerType : Icon 모양
  • LegendAlpha : Icon 투명도
  • Deswitchable : 선택 가능 여부
  • InvisibleInLegend : 범례 표시 여부
  • Title(Text) : 범례 텍스트 설정

4. AmSerialChartComposite FieldCat - Label.

이미지


이미지


5. AmSerialChartComposite FieldCat - Fill.

이미지


이미지


6. AmSerialChartComposite FieldCat - Ballon.

이미지


7. AmSerialChartComposite FieldCat - TopRadius.

이미지


8. AmSerialChartComposite FieldCat - Binding Field.

이미지


이미지



[ 첨부 ABAP SOURCE ( SET_CHART_DATA ) ]**


METHOD /U4A/IF_SERVER~HANDL_ON_INIT. 

    DATA : LO_CHART TYPE REF TO /U4A/CL_UO99988,
           LT_FCAT  TYPE /U4A/CL_UO99988=>TT_FCAT,
           LS_FCAT  LIKE LINE OF LT_FCAT,
           LT_DATA  TYPE /U4A/Y0071,
           LS_DATA  TYPE /U4A/S0071,
           LS_GRAPH TYPE /U4A/S0072.

    --------------------------------------------------------------------

    LO_CHART ?= ME->/U4A/IF_SERVER~AR_VIEW->GET_UI_INSTANCE( I_ID = 'AMSERIALCHARTCOMPOSITE1' ).

    CHECK LO_CHART IS BOUND.

    *  Chart FieldCat 구성 .
    LS_FCAT-VALUEFIELD      = 'A01'.
    LS_FCAT-TYPE            = 'column'.
    LS_FCAT-FILLCOLORS      = 'blue'.
    LS_FCAT-FILLALPHAS      = '0.5'.
    LS_FCAT-TITLE           = 'test001'.
    LS_FCAT-LABELTEXT       = 'value'.
    LS_FCAT-LABELPOSITION   = 'middle'.
    LS_FCAT-COLOR           = 'pink'.
    LS_FCAT-SHOWVALUETEXT   = 'X'.
    LS_FCAT-FontSize        = '50'.
    LS_FCAT-LABELCOLORFIELD = 'A02'.
    LS_FCAT-DASHLENGTH    = 3.
    LS_FCAT-LINEALPHA     = 1.
    LS_FCAT-LINETHICKNESS = 5.
    APPEND LS_FCAT TO LT_FCAT.
    CLEAR LS_FCAT.

    *  Binding Field  구성 .
    LS_GRAPH-VALUEFIELD = 'A01'.             " ValueField Field명.
    LS_GRAPH-GRAPHVALUE = '50'.              " Value.
    APPEND LS_GRAPH TO LS_DATA-GRAPHVALUE.
    CLEAR LS_GRAPH.

    LS_GRAPH-VALUEFIELD = 'A02'.             " Label Color Field명.
    LS_GRAPH-GRAPHVALUE = 'red'.             " Color.
    APPEND LS_GRAPH TO LS_DATA-GRAPHVALUE.
    CLEAR LS_GRAPH.

    LS_DATA-CATEGORYVALUE = '2006'.          " 연도

    APPEND LS_DATA TO LT_DATA.
    CLEAR LS_DATA.

    LS_GRAPH-VALUEFIELD = 'A01'.            " ValueField Field명.
    LS_GRAPH-GRAPHVALUE = '60'.             " Value.
    APPEND LS_GRAPH TO LS_DATA-GRAPHVALUE.
    CLEAR LS_GRAPH.

    LS_GRAPH-VALUEFIELD = 'A02'.            " Label Color Field명.
    LS_GRAPH-GRAPHVALUE = 'blue'.           " Color.
    APPEND LS_GRAPH TO LS_DATA-GRAPHVALUE.
    CLEAR LS_GRAPH.

    LS_DATA-CATEGORYVALUE = '2007'.         " 연도.

    APPEND LS_DATA TO LT_DATA.
    CLEAR LS_DATA.

    LS_GRAPH-VALUEFIELD = 'A01'.            " ValueField Field명.
    LS_GRAPH-GRAPHVALUE = '70'.             " Value.
    APPEND LS_GRAPH TO LS_DATA-GRAPHVALUE.
    CLEAR LS_GRAPH.

    LS_GRAPH-VALUEFIELD = 'A02'.             " Label Color Field명.
    LS_GRAPH-GRAPHVALUE = 'green'.           " Color.
    APPEND LS_GRAPH TO LS_DATA-GRAPHVALUE.
    CLEAR LS_GRAPH.

    LS_DATA-CATEGORYVALUE = '2008'.          " 연도.

    APPEND LS_DATA TO LT_DATA.
    CLEAR LS_DATA. 

    *  차트 Display .
    CALL METHOD LO_CHART->SHOW
      EXPORTING
        IT_FCAT = LT_FCAT    " 차트 필드 정보
        IT_DATA = LT_DATA    " 차트 데이터
*       IT_AXIS = IT_AXIS
*       IS_CATEGORY = IS_CATEGORY    " [U4A] AmChart.Category 구조
      .

ENDMETHOD. 

이미지

VlaueField 값을 'A01'이라는 Field명으로 설정한 후 값을 구성하고 LabelColor 값을 'A02'라는 Field명으로 설정한 후 값을 구성. 위 Image에서 각 연도에 해당하는 Value값과 Label Color가 각각 설정된 것을 확인.