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가 각각 설정된 것을 확인.