실습 예제 |Olap-Grid를 활용한 사업부별 실적 현황 분석 화면 | |
---|---|
|
i-META와 SQL을 이용하여 데이터를 가져오고 Control에 연결합니다.
UI Bot의 Label을 선택하여 컨트롤을 생성하고 속성을 변경합니다.
이와 같은 방법으로 각 컨트롤의 제목 라벨 컨트롤을 생성합니다.
보고서 화면에서 컨트롤을 설정한 Margin값에 따라 고정하는 기능인 Docking을 설정하여보고서 창의 크기가 달라져도 해당 컨트롤이 설정한 위치로 고정되도록 합니다. 라벨 컨트롤 중 단위 표기 텍스트 컨트롤에 Docking 기능을 설정합니다. Right 고정 후 Margin은 0,0,30,0 설정 (Margin 설정은 Left,Top, Rigth, Bottom) |
Label Text | Name | Control Type | DataSource Name | InitDate | i-META 조건 연결 필드 명 |
---|---|---|---|---|---|
기준년월 | VS_FROM VS_TO | Calendar - M FromTo | - | DATE(-1,F,0);DATE(0,0,0) | 년월 |
매장지역 | VS_AREA | ComboBox - ComboBox | 매장지역 | 전체 | 매장지역 |
매장구군 | VS_GUGUN | ComboBox - ComboBox | 매장구군 | 전체 | 매장구군 |
1. 기준년월 캘린더
기준년월 캘린더 컨트롤의 속성을 설정합니다.
InitDate를 설정하여 캘린더 컨트롤의 초기값을 세팅합니다.
20230101 또는 2023-01-01 등의 숫자 형식으로 입력합니다.
NOW()를 입력하면 현재 날짜로 설정됩니다.
DATE(0,0,0) = NOW() 함수 안의 인자가 각각 DATE(년, 월, 일)을 뜻하며, 현재 날짜 기준으로 증감이 가능합니다. Ex) 현재 날짜보다 1년 전 날짜를 입력하고 싶을 때 : DATE(-1,0,0)
F(First) : 1900년, 1월, 1일 L(Last) : 2999년, 12월, 해당 월의 마지막 날짜(28일~31일) Ex) 현재 년도의 1월 1일을 입력하고 싶을 때 : DATE(0,F,F) 현재 년월의 말일을 입력하고 싶을 때 : DATE(0,0,L)
From Date와 To Date를 ;(세미콜론)으로 구분하여 작성합니다. Ex) DATE(-1,0,0);NOW() |
2. 사업부 및 지역 콤보박스
3. 지역 콤보박스 컨트롤의 속성을 설정합니다.
4. 매장지역을 선택하면, 선택된 지역에 속한 매장구군 목록만 나타나도록 설정합니다.
i-META File 정보
- 경로 : 공용 폴더 > 교육 > i-META
- 파일 명 : [i-AUD] Sales Meta
필드를 Drag&Drop으로 배치한 후 조회조건 필드와 보고서에 생성한 컨트롤들을 연결합니다.
|
OLAP 수식을 이용하여 계산 필드를 추가할 수 있습니다.
사업부內 제품별 매출실적 비율 , 계획대비 실적 달성율 , 누적실적 , 전체 실적의 누적실적 비율 구하기
캡션 | 2차계산 | 서식 | 수식 | 기타 |
---|---|---|---|---|
매출실적(%) | Type - SubTotalPercentOfRow | 숫자 - {0:N1}% | Sum([매출실적]) | |
달성율(%) | 백분율 - {0:P1} | Sum([매출실적]) / Sum([매출계획]) | ||
누적실적 | Type - RunningSum Field - 년월 | Sum([매출실적]) | 단위 - 1,000,000(백만) | |
누적실적(%) | 백분율 - {0:P1} | GetVariationValue("[누적실적]", false) / ForAll("[년월]", "[매출실적]", true) |
아래와 같이 그리드에서 우 클릭 후 디자인 > 필드에서 계산필드를 생성합니다.
수식의 버튼을 클릭하여 수식 편집기 창을 실행한 후 입력 창에 Sum 함수와 [매출실적] 필드를 선택하여 입력합니다.
|
2차계산의 버튼을 클릭하여 2차계산을 설정합니다.
수식의 버튼을 클릭하여 수식 편집기 창을 실행한 후 입력 창에 Sum 함수와 [매출실적], [매출계획] 필드를 선택하여 입력합니다.
|
서식의 버튼을 클릭하여 서식 편집기 창을 실행하고 서식을 지정합니다.
달성율(%) 필드의 설정 완료된 화면입니다.
수식의 버튼을 클릭하여 수식 편집기 창을 실행한 후 검색 창에 getvariationvalue, forall 함수를 검색하여 입력하고,
필드 목록에서 [누적실적], [년월], [매출실적] 필드를 선택하여 입력합니다.
|
목록에 있는 함수를 클릭하면 설명을 볼 수 있습니다. -GetVariationValue 해당 셀의 특정 메져 값으로 2차계산의 값을 반환합니다. * object GetVariationValue("[FIELD]") -ForAll 배치에 대해 제어하는 함수로 현재 배치를 기준으로 Dimensions에 정의된 항목을 제거하여 상위 합에 대한 접근이 가능하게 합니다. * object ForAll("[Dimension 1];[Dimension 2]", "[Measure]", NoFilter) |
Data영역의 필드 설정을 완료한 후 [확인] 버튼을 눌러 그리드 컨트롤에 적용합니다.
설정한 항목들이 정상적으로 적용되었는지 확인합니다.
“사용자 정의 항목” 기능을 이용하여 분석 항목을 추가할 수 있습니다.
수식 입력 창에 수식을 작성합니다.
|
목록에 있는 함수를 클릭하면 설명을 볼 수 있습니다. -AND 넘겨진 파라미터 n개의 논리곱을 반환합니다. * bool AND(bool condition1, bool condition2, ...) -InList 대상 필드의 값이 비교 값 목록내에 존재하는지 여부를 반환합니다. * bool InList([FIELD_NAME], "value1","value2", ...) |
"사업부명"이 [서울사업부]인 "제품대분류명"에 [계절가전+대형가전] 항목이 정상적으로 추가되었는지 확인합니다.
"조건부 서식” 기능을 이용하여 조건에 따라 서식을 지정할 수 있습니다.
※ 조건 기준
- 달성율 100% 미만, 95% 이상이면, “Olap_달성율1” Style로 표현
- 달성율 95% 미만이면, “Olap_달성율2” Style로 표현
- 나머지는 기본 스타일로 표현
조건에 맞도록 수식을 작성한 후 [적용] 버튼을 눌러 조건부 서식을 적용합니다.
|
목록에 있는 함수를 클릭하면 설명을 볼 수 있습니다. -CASE(SWITCH로 검색) 조건 n 개에 대해 순차적으로 검사하여 가장 처음으로 참인 조건의 값을 반환합니다. * object Switch(bool condition1, object value1 , bool condition2, object value2 , bool conditionX, object valueX , object elseValue) -AND 넘겨진 파라미터 n개의 논리곱을 반환합니다. * bool AND(bool condition1, bool condition2, ...) |
|
변수편집기와 프로세스 봇을 설정하여 Olap-Grid의 데이터 셀을 더블 클릭하면, 클릭한 셀의 세부 데이터를 조회할 수 있는 팝업을 띄우도록 설정합니다.
보고서에서 사용할 변수들을 변수 편집기에서 관리할 수 있습니다.
(템플릿 보고서에는 변수가 이미 등록되어 있는 상태입니다.)
편집 그룹 > Variables(변수 편집기)
프로세스 봇을 활용하여 OlapGrid 셀 더블 클릭시 POPUP폼이 상세보기창으로 보여지도록 설정합니다.
Process Bot 아이콘()을 클릭하여 프로세스 봇 창을 실행하고, OlapGrid 컨트롤을 더블 클릭합니다.
Activities 탭에서 '상세보기' 로 검색하여 'OlapGrid 클릭셀의 행,열 값 변수 편집기 입력 후 상세보기창 나타내기' 모듈을 더블 클릭합니다.
OlapGrid > OnDataCellDoubleClick 이벤트와 모듈을 연결 후 저장합니다.
2. List Grid 컨트롤을 우 클릭하여 데이터소스 항목을 선택합니다.
i-META File 정보
- 경로 : 공용 폴더 > 교육 > i-META
- 파일 명 : [i-AUD] Sales Meta
3. i-META File을 선택하여 필드를 배치한 후 조회조건 필드와 변수 편집기에 등록된 변수를 연결합니다.
4. [확인] 버튼을 눌러 데이터소스 선택 창을 닫은 후, Form1으로 이동하여 보고서가 정상적으로 작동하는지 확인합니다.