Axis¶
목적
Graph Axis의 속성을 정의
주요 단계

[ 첨부 ABAP SOURCE ( SET_CHART_AXIS ) ]
method SET_CHART_AXIS.
DATA : LS_AXIS TYPE /U4A/CL_UO99988=>TY_AXIS.
*--------------------------------------------------------------------*
REFRESH ET_AXIS.
LS_AXIS-VALUEFIELD = 'WEK01'. "fcat 필드명.
LS_AXIS-STACKTYPE = 'none'. "STACK유형("none", "regular", "100%", "3d").
LS_AXIS-POSITION = 'left'. "위치("top", "bottom", "left", "right")
LS_AXIS-AXISALPHA = ''. "축 선의 투명도
LS_AXIS-AXISCOLOR = ''. "축 선 색상
LS_AXIS-AXISTHICKNESS = ''. "축 선 두께
LS_AXIS-FONTSIZE = '11'. "TEXT FONT크기
APPEND LS_AXIS TO ET_AXIS.
CLEAR LS_AXIS.
endmethod.
| PROPERTIES | MEAN |
|---|---|
| VALUEFIELD | Fcat Field 명 |
| STACKTYPE | Stack 유형("none", "regular", "100%", "3d") |
| TITLE | 축의 Title |
| TITLEALIGN | Title 위치("top", "center", "bottom", "left", "right") |
| TITLEBOLD | Title Bold 적용 여부('X' 적용, '' 미적용) |
| TITLEROTATION | Title 글자 기울기 |
| POSITION | 위치("top", "bottom", "left", "right") |
| AXISALPHA | 축 선의 투명도 |
| AXISCOLOR | 축 선 색상 |
| AXISTHICKNESS | 축 선 두께 |
| COLOR | 값 Text의 색상 |
| FONTSIZE | Text Font 크기 |
| DASHLENGTH | Graph Border 가로선 점섬(숫자가 클수록 점선 간격이 길어짐, 왼쪽 축 기준만 적용됨) |
| GRIDALPHA | 가로선의 투명도 |
| GRIDCOLOR | 가로선 색상 |
| GRIDTHICKNESS | 가로선 두께 |
| LABELROTATION | 값 기울기(Y축 영역에서는 속성 무시됨) |
| MAXIMUM | Graph 표현의 최대값 |
| MINIMUM | Graph 표현의 최소값 |
| INSIDE | Graph 숫자위치(X = 그래프 안으로 들어감) |
| UNIT | Y축 값 뒤에 표기 할 기호(%, $ 등) |
| AUTOGRIDCOUNT | Y축 값의 눈금 자동 설정('X' = 자동설정 사용안함) |
| GRIDCOUNT | Y축 값의 눈금 갯수(autoGridCount = 'X' 일때만 적용) |
| GUIDE | Graph 평균선 |
| LABELSDISABLED | Label 비활성화 여부('X' = 비활성화 처리) |
| BOLDLABELS | Label Bold 처리 여부('X' = BOLD 처리) |
| INCLUDEALLVALUES | 확대 축소 시 Y축 최소, 최대값 고정 여부('X') |
| LABELOFFSET | Label 여백 |
| OFFSET | Y축 여백 |
| HIDEFIRSTLABEL | Y축 첫번째 값 표시 여부('X' = 표시안함) |
| HIDELASTLABEL | Y축 마지막 값 표시 여부('X' = 표시안함) |
| TITLEFONTSIZE | Title Font 크기 |
| TOTALTEXTFIELD | Total 값 Binding Field(누적 막대 전용) |
| TOTALTEXTCOLOR | Total 값 색상 Field(누적 막대 전용) |
| TOTALTEXTOFFSET | Total 값 여백 Field(누적 막대 전용) |
| UNITPOSITION | Y축 값 뒤에 표기할 기호 위치(left, rigth) |
| TITLECOLOR | Title Font Color |
1. AmSerialChartComposite Axis - StackType.

< none >

< regular >

< 100% >

< 3d >
2. AmSerialChartComposite Axis - Position.

※ 축이 생성되는 위치를 설정 가능.
※ Position을 'left', 'right'로 각각 생성하면 위 Image와 같이 양쪽에 축이 생성 되는 것을 확인.
3. AmSerialChartComposite Axis - Axis.

※ 축 선 색상(AxisColor), 축 선 두께(AxisThickness), 축 선 투명도(AxisAlpha)를 설정 가능.
※ 위 Image에서는 색상 : red 두께 : 5 투명도 : 1 로 설정하였으며 Axis가 존재하는 좌측에 붉은색 축이 생긴 것을 확인.
4. AmSerialChartComposite Axis - X축.

※ 가로선 색상(GridColor), 가로선 두께(GridThickness), 가로선 투명도(GridAlpha), 가로선 점선(DashLength)을 설정 가능.
※ 위 Image에서는 색상 : blue 두께 : 1 투명도 : 1 로 설정하였으며 파란색 가로선이 생긴 것을 확인.
5. AmSerialChartComposite Axis - Y축.

※ Y축 값 뒤에 표기 할 기호(Unit), Y축 값의 눈금 자동 설정(AutoGridCount), Y축 값의 눈금 갯수(GridCount),
※ Y축 여백(Offset), Y축 첫번째 값 표시여부(HideFirstLabel), Y축 마지막 값 표시 여부(HideLastLabel)를 설정 가능.
※ 위 Image에서 좌측 Graph는 GridCount : 8, Unit : kg로 설정하였고 우측 Graph는 GridCount : 15, Unit: $ 로 설정된 것을 확인.
6. AmSerialChartComposite Axis - Title.

※ 축의 Title 명(Title), Title 위치(TitleAlign), Title 굵기(TitleBold), Title 기울기(TitleRotation), Title Font 크기(TitleFontSize), Title Font 색상( TitleColor)를 설정 가능.
※ 위 Image에서는 2개의 Title이 설정된 것을 확인.
7. AmSerialChartComposite Axis - 표현 값.

※ Graph 표현의 최대값과 최소값을 설정 가능.
※ 위 Image에서는 좌측 Graph는 최소값 : 1000, 최대값 : 5000 으로 설정햇으며 우측 Graph는 최소값 : 10000, 최대값 : 30000 으로 설정된 것을 확인.
8. AmSerialChartComposite Axis - Total.
[ 첨부 ABAP SOURCE ( SET_CHART_AXIS ) ]
METHOD SET_CHART_AXIS.
DATA : LS_AXIS TYPE /U4A/CL_UO99988=>TY_AXIS.
*--------------------------------------------------------------------*
REFRESH ET_AXIS.
LS_AXIS-VALUEFIELD = 'WEK01'. "fcat 필드명.
LS_AXIS-STACKTYPE = 'regular'. "STACK유형("none", "regular", "100%", "3d").
LS_AXIS-POSITION = 'left'. "위치("top", "bottom", "left", "right")
LS_AXIS-FONTSIZE = '11'. "TEXT FONT크기
LS_AXIS-TOTALTEXTCOLOR = 'red'. "Total값 색상 필드(누적 막대 전용).
LS_AXIS-TOTALTEXTFIELD = 'A01'. "Total값 Binding 필드(누적 막대 전용).
LS_AXIS-TOTALTEXTOFFSET = '10'. "Total값 여백 필드(누적 막대 전용).
APPEND LS_AXIS TO ET_AXIS.
CLEAR LS_AXIS.
LS_AXIS-VALUEFIELD = 'MON01'. "fcat 필드명.
LS_AXIS-STACKTYPE = 'regular'. "STACK유형("none", "regular", "100%", "3d").
LS_AXIS-POSITION = 'right'. "위치("top", "bottom", "left", "right")
LS_AXIS-FONTSIZE = '11'. "TEXT FONT크기
LS_AXIS-TOTALTEXTCOLOR = 'blue'. "Total값 색상 필드(누적 막대 전용).
LS_AXIS-TOTALTEXTFIELD = 'A01'. "Total값 Binding 필드(누적 막대 전용).
LS_AXIS-TOTALTEXTOFFSET = '50'. "Total값 여백 필드(누적 막대 전용).
APPEND LS_AXIS TO ET_AXIS.
CLEAR LS_AXIS.
ENDMETHOD.
FieldCat의 Binding Field를 구성할 때와 동일하게 'A01'이라는 Field명으로 설정한 후 값을 구성.
다음으로 Total과 관련된 TotalTextColor와 TotalTextOffset 값을 설정.
( Total Text에 모두 동일하게 적용되며 개별적으로 적용은 불가능 함.)
[ 첨부 ABAP SOURCE ( SET_CHART ) ]
METHOD SET_CHART.
DATA : LO_CHART TYPE REF TO /U4A/CL_UO99988,
LT_FCAT TYPE /U4A/CL_UO99988=>TT_FCAT,
LT_DATA TYPE /U4A/Y0071,
LT_AXIS TYPE /U4A/CL_UO99988=>TT_AXIS,
LS_GRAPH TYPE /U4A/S0072.
DATA: LV_TOTXT TYPE STRING,
LV_INDEX TYPE I.
FIELD-SYMBOLS: <FS_DATA>TYPE /U4A/S0071.
*--------------------------------------------------------------------*
LO_CHART ?= ME->/U4A/IF_SERVER~AR_VIEW->GET_UI_INSTANCE( I_ID = 'CHART1' ).
CHECK LO_CHART IS BOUND.
"SET CHART FCAT DATA.
CALL METHOD ME->SET_CHART_FCAT
IMPORTING
ET_FCAT = LT_FCAT.
"SET CHART AXIS DATA.
CALL METHOD ME->SET_CHART_AXIS
IMPORTING
ET_AXIS = LT_AXIS.
"SET CHART DATA.
CALL METHOD ME->SET_CHART_DATA
IMPORTING
ET_DATA = LT_DATA.
" TOTAL TEXT 설정 .
LOOP AT LT_DATA ASSIGNING <FS_DATA>.
ADD 1 TO LV_INDEX.
" TOTAL TEXT 생성 .
LV_TOTXT = 'Total Text' && LV_INDEX.
LS_GRAPH-VALUEFIELD = 'A01'.
LS_GRAPH-GRAPHVALUE = LV_TOTXT.
APPEND LS_GRAPH TO <FS_DATA>-GRAPHVALUE.
CLEAR LS_GRAPH.
ENDLOOP.
"SHOW CHART.
CALL METHOD LO_CHART->SHOW
EXPORTING
IT_FCAT = LT_FCAT " 차트 필드 정보
IT_DATA = LT_DATA " 차트 데이터
IT_AXIS = LT_AXIS.
ENDMETHOD.
Total Text Binding Field 값 설정.

Graph의 Total과 관련된 합계 값 Text(ToTalTextField), 합계 값 색상(TotalTextColor), 합계 값 여백(TotalTextOffset)에 대한 설정이 된 것을 확인.