Easy Heading Macro | ||||||
---|---|---|---|---|---|---|
|
정보 | ||
---|---|---|
| ||
Release No : 7.0.500.20240516 |
실습 예제 |Olap-Grid를 활용한 사업부별 실적 현황 분석 화면 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
|
Step 1. 데이터 연결하기
i-META와 SQL을 이용하여 데이터를 가져오고 Control에 연결합니다.
1.1 조회 조건 컨트롤 라벨
UI Bot의 Label을 선택하여 컨트롤을 생성하고 속성을 변경합니다.
이와 같은 방법으로 각 컨트롤의 제목 라벨 컨트롤을 생성합니다.
참고사항 | ||||
---|---|---|---|---|
| ||||
Docking 기능 사용하기 보고서 화면에서 컨트롤을 설정한 Margin값에 따라 고정하는 기능인 Docking을 설정하여 보고서 창의 크기가 달라져도 해당 컨트롤이 설정한 위치로 고정되도록 합니다. 라벨 컨트롤 중 단위 표기 텍스트 컨트롤에 Docking 기능을 설정합니다. 오른쪽 고정 후 Margin은 20 설정 Margin 설정은 왼쪽, 위쪽, 오른쪽, 아래쪽 순 |
1.2 조회 조건 컨트롤 생성
Label Text | Name | Control Type | DataSource Name | InitDate | i-META 조건 연결 필드 명 |
---|---|---|---|---|---|
기준년월 | VS_YM_FROM VS_YM_TO | Calendar - M FromTo | - | DATE(-1,F,0);DATE(0,0,0) | 년월 |
사업부 | VS_DIV | ComboBox - ComboBox | 사업부 | 전체 | 사업부코드 |
지역 | VS_AREA | ComboBox - ComboBox | 지역 | 전체 | 영업지역코드 |
1. 기준년월 캘린더
- UI Bot의 Calender > M From To 를 선택하여 컨트롤을 생성합니다.
기준년월 캘린더 컨트롤의 속성을 설정합니다.
- Name : VS_YM_FROM
- Name2 : VS_YM_TO
- InitDate : DATE(-1,F,0);DATE(0,0,0)
참고사항 icon false title Discription InitDate 작성법
InitDate를 설정하여 캘린더 컨트롤의 초기값을 세팅합니다.
숫자
20230101 또는 2023-01-01 등의 숫자 형식으로 입력합니다.
NOW 함수
NOW()를 입력하면 현재 날짜로 설정됩니다.
DATE 함수
DATE(0,0,0) = NOW()
함수 안의 인자가 각각 DATE(년, 월, 일)을 뜻하며, 현재 날짜 기준으로 증감이 가능합니다.
Ex) 현재 날짜보다 1년 전 날짜를 입력하고 싶을 때
: DATE(-1,0,0)
DATE 함수에 사용할 수 있는 예약어 : F, L
F(First) : 1900년, 1월, 1일
L(Last) : 2999년, 12월, 해당 월의 마지막 날짜(28일~31일)
Ex) 현재 년도의 1월 1일을 입력하고 싶을 때
: DATE(0,F,F)
현재 년월의 말일을 입력하고 싶을 때
: DATE(0,0,L)
FromTo 캘린더의 InitDate 설정 방법
From Date와 To Date를 ;(세미콜론)으로 구분하여 작성합니다.
Ex) DATE(-1,0,0);NOW()
2. 사업부 및 지역 콤보박스
- UI Bot의 ComboBox > Combo를 선택하여 컨트롤을 생성합니다.
- 사업부 콤보박스 컨트롤의 속성을 설정합니다.
- Name : VS_DIV
- DataSource : 사업부
- UseAllItems 활성화
- AutoRefresh 활성화
- 지역 콤보박스 컨트롤의 속성을 설정합니다.
- Name : VS_AREA
- DataSource : 지역
- UseAllItems 활성화
- 사업부의 값을 변경하면 지역의 목록이 변경되도록 사업부 콤보박스의 속성을 변경합니다.
- AfterRefresh : VS_AREA
- 사업부 콤보박스의 값을 변경하면 그에 따라 지역 콤보박스의 목록이 변경되는지 확인합니다.
1.3 Olap-Grid 데이터 연결
- Olap-Grid에 출력할 데이터소스를 i-META File로 연결하기 위해 그리드 컨트롤을 마우스 우 클릭하여 데이터소스 선택 창을 실행합니다.
- i-META File을 선택합니다.
i-META File 정보
- 경로 : 공용 폴더 > 교육 > i-META
- 파일 명 : [i-AUD] Sales Meta
필드를 Drag&Drop으로 배치한 후 조회조건 필드와 보고서에 생성한 컨트롤들을 연결합니다.
- 년월 BETWEEN :VS_YM_FROM ~ :VS_YM_TO
- 사업부코드 = @:VS_DIV
- 영업지역코드 = @:VS_AREA
참고사항 icon false title Discription SQL 변수 바인딩 규칙
- [확인] 버튼을 눌러 데이터를 그리드에 연결하고 데이터가 정상적으로 조회되는지 확인합니다.
- 필드의 표시 단위를 변경하기 위해 그리드를 우 클릭하여 디자인 창을 실행합니다.
- [필드] 메뉴에서 매출계획과 매출실적 필드의 단위를 백만으로 설정합니다.
- 단위 : 1,000,000(백만)
Step 2. 계산필드 추가하기
OLAP 수식을 이용하여 계산 필드를 추가할 수 있습니다.
사업부內 제품별 매출실적 비율 , 계획대비 실적 달성율 , 누적실적 , 전체 실적의 누적실적 비율 구하기
캡션 | 2차계산 | 서식 | 수식 | 기타 |
---|---|---|---|---|
매출실적(%) | Type - SubTotalPercentOfRow | 숫자 - {0:N0}% | Sum([매출실적]) | |
달성율(%) | 백분율 - {0:P1} | Sum([매출실적]) / Sum([매출계획]) | ||
누적실적 | Type - RunningSum Field - 년월 | Sum([매출실적]) | 단위 - 1,000,000(백만) | |
누적실적(%) | 백분율 - {0:P1} | GetVariationValue([누적실적]) / ForAll("[년월]", "[매출실적]", true) |
아래와 같이 그리드에서 우 클릭 후 디자인 > 필드에서 계산필드를 생성합니다.
2.1 매출실적(%)
- 버튼을 눌러 필드를 추가합니다.
- 추가된 필드를 Data 영역으로 이동하고, 캡션(화면 표시명)을 변경합니다.
- 캡션 : 매출실적(%)
수식의 버튼을 클릭하여 수식 편집기 창을 실행한 후 입력 창에 Sum 함수와 [매출실적] 필드를 선택하여 입력합니다.
참고사항 icon false title Discription 수식 편집기는 대소문자, 띄어쓰기 등을 구분하므로 좌측 목록에서 체크박스 클릭으로 선택하여 작성하는 것이 편리합니다.
2차계산의 버튼을 클릭하여 2차계산을 설정합니다.
- Type : SubTotalPercentOfRow
- 서식의 버튼을 클릭하여 서식을 설정합니다.
- 소수 자릿수 : 1
- 형식 : {0:N1}%
2.2 달성율(%)
- 추가된 필드를 Data 영역으로 이동하고, 캡션(화면 표시명)을 변경합니다.
- 캡션 : 달성율(%)
수식의 버튼을 클릭하여 수식 편집기 창을 실행한 후 입력 창에 Sum 함수와 [매출실적], [매출계획] 필드를 선택하여 입력합니다.
패널 펼치기 title 사용한 수식 펼치기 Sum([매출실적]) / Sum([매출계획])
서식의 버튼을 클릭하여 서식 편집기 창을 실행하고 서식을 지정합니다.
- 백분율, 소수 자릿수 1
- 형식 : {0:P1}
달성율(%) 필드의 설정 완료된 화면입니다.
2.3 누적실적
- 추가된 필드를 Data 영역으로 이동하고, 캡션(화면 표시명)을 설정합니다.
- 캡션 : 누적실적
- 캡션 : 누적실적
- 수식의 버튼을 클릭하여 수식 편집기 창을 실행한 후 입력 창에 Sum 함수와 [매출실적] 필드를 선택하여 입력합니다.
- 2차계산의 버튼을 클릭하여 2차계산을 설정합니다.
- Type : RunningSum
- Field : 년월
- 단위에 1,000,000(백만)을 입력합니다.
2.4 누적실적(%)
- 추가된 필드를 Data 영역으로 이동하고, 캡션(화면 표시명)을 설정합니다.
- 캡션 : 누적실적(%)
- 캡션 : 누적실적(%)
수식의 버튼을 클릭하여 수식 편집기 창을 실행한 후 검색 창에 getvariationvalue, forall 함수를 검색하여 입력하고,
필드 목록에서 [누적실적], [년월], [매출실적] 필드를 선택하여 입력합니다.패널 펼치기 title 사용한 수식 펼치기 GetVariationValue("[누적실적]", false) / ForAll("[년월]", "[매출실적]", true)
참고사항 icon false title Discription 사용한 함수 설명
목록에 있는 함수를 클릭하면 설명을 볼 수 있습니다.
-GetVariationValue
해당 셀의 특정 메져 값으로 2차계산의 값을 반환합니다.
* object GetVariationValue("[FIELD]")
-ForAll
배치에 대해 제어하는 함수로 현재 배치를 기준으로 Dimensions에 정의된 항목을 제거하여 상위 합에 대한 접근이 가능하게 합니다.
비율을 계산할때 많이 사용됩니다.
NoFilter 인자는 기본값이 false 이며, 모든 필드의 필터 정보를 반영한 계산을 할지 여부를 판단하게 됩니다.
SQL의 그룹핑 기능과 유사하게 동작합니다.* object ForAll("[Dimension 1];[Dimension 2]", "[Measure]", NoFilter)
- 서식의 버튼을 클릭하여 서식 편집기 창을 실행하고 서식을 지정합니다.
- 백분율, 소수 자릿수 1
- 형식 : {0:P1}
Data영역의 필드 설정을 완료한 후 [확인] 버튼을 눌러 그리드 컨트롤에 적용합니다.
설정한 항목들이 정상적으로 적용되었는지 확인합니다.
Step 3. 사용자 정의 항목 추가하기
“사용자 정의 항목” 기능을 이용하여 분석 항목을 추가할 수 있습니다.
- [제품대분류명] 필드에서 마우스 우 클릭 후 [사용자 정의 항목]을 클릭하여 사용자 정의 항목 설정 창을 실행합니다.
- 버튼을 클릭하여 신규 항목을 추가합니다.
- 추가된 항목의 캡션을 설정합니다.
- 캡션 : 대형가전 + 계절가전
- 캡션 : 대형가전 + 계절가전
- 필터 수식의 [수정] 버튼을 클릭하여 수식 편집기 창을 실행합니다.
수식 입력 창에 수식을 작성합니다.
패널 펼치기 title 사용한 수식 펼치기 AND([사업부명] = "서울사업부", InList([제품대분류명], "대형가전", "계절가전"))
참고사항 icon false title Discription 사용한 함수 설명
목록에 있는 함수를 클릭하면 설명을 볼 수 있습니다.
-AND
넘겨진 파라미터 n개의 논리곱을 반환합니다.
* bool AND(bool condition1, bool condition2, ...)
-InList
대상 필드의 값이 비교 값 목록내에 존재하는지 여부를 반환합니다.
* bool InList([FIELD_NAME], "value1","value2", ...)
- [확인] 버튼을 클릭하여 추가한 항목을 그리드에 적용합니다.
"사업부명"이 [서울사업부]인 "제품대분류명"에 [계절가전+대형가전] 항목이 정상적으로 추가되었는지 확인합니다.
Step 4. 조건부 서식 설정하기
"조건부 서식” 기능을 이용하여 조건에 따라 서식을 지정할 수 있습니다.
※ 조건 기준
- 달성율 100% 미만, 95% 이상이면, “Olap_달성율1” Style로 표현
- 달성율 95% 미만이면, “Olap_달성율2” Style로 표현
- 나머지는 기본 스타일로 표현
- 아래와 같이 그리드를 우 클릭 후 디자인 > 스타일에서 조건부 서식을 적용합니다.
- [스타일] 탭에서 조건부 서식의 버튼을 눌러 수식 편집기 창을 실행합니다.
조건에 맞도록 수식을 작성한 후 [적용] 버튼을 눌러 조건부 서식을 적용합니다.
패널 펼치기 title 사용한 수식 펼치기 CASE(
AND(FIELD_KEY == "RATE", CELL_VALUE < 1.0, CELL_VALUE >= 0.95),
"Olap_달성율1_클릭해서_수정",
AND(FIELD_KEY == "RATE", CELL_VALUE < 0.95),
"Olap_달성율2_클릭해서_수정",
"")참고사항 icon false title Discription 사용한 함수 설명
목록에 있는 함수를 클릭하면 설명을 볼 수 있습니다.
-CASE(SWITCH로 검색)
조건 n 개에 대해 순차적으로 검사하여 가장 처음으로 참인 조건의 값을 반환합니다.
모든 조건이 거짓 일 경우 마지막 default 값이 반환됩니다.* object Switch(bool condition1, object value1 , bool condition2, object value2 , bool conditionX, object valueX , object elseValue)
-AND
넘겨진 파라미터 n개의 논리곱을 반환합니다.
* bool AND(bool condition1, bool condition2, ...)
참고사항 icon false 스타일의 코드값은 해당 스타일명을 검색하여 입력합니다.
- 수식을 적용할 필드의 필드 명을 수식에 작성한 RATE로 변경합니다.
- 필드 - 달성율(%) - 필드 명 : RATE
- 조건부 서식이 정상적으로 적용되었는지 확인합니다.
Step 5. Drill To Detail 동작 설정하기
변수편집기와 프로세스 봇을 설정하여 Olap-Grid의 데이터 셀을 더블 클릭하면, 클릭한 셀의 세부 데이터를 조회할 수 있는 팝업을 띄우도록 설정합니다.
5.1 변수 편집기
보고서에서 사용할 변수들을 변수 편집기에서 관리할 수 있습니다.
(템플릿 보고서에는 변수가 이미 등록되어 있는 상태입니다.)
편집 그룹 > Variables(변수 편집기)
5.2 Process Bot 활용 저장 동작 설정
프로세스 봇을 활용하여 OlapGrid 셀 더블 클릭시 POPUP폼이 상세보기창으로 보여지도록 설정합니다.
- Process Bot 아이콘()을 클릭하여 프로세스 봇 창을 실행하고, OlapGrid 컨트롤을 OlapGrid 컨트롤을 더블 클릭합니다.
프로세스 봇 창의 좌측 목록에서 OlapGrid를 선택합니다
- 상단 Event에 OnDataCellDoubleClick로 변경합니다.
우측 동작 목록에서 Module동작을 Drag&Drop으로 추가합니다.
4. Module에 더보기 버튼을 클릭합니다.
5. 모듈 목록 탭에서 [OlapGrid 클릭셀의 행, 열 값 변수 편집기 입력 후 상세보기 창 나타내기] 모듈을 검색하여 선택합니다.
( 모듈명 검색시 일부 텍스트 입력 후 검색 가능)
6. Olap 그리드의 클릭한 셀의 사업부코드, 제품대분류명, 년월이 변수 편집기에 입력되도록 아래와 같이 옵션 설정 값을 입력합니다.
VS_POP_DIV_CD
VS_POP_PROD_L_NM
VS_POP_YM
7. [저장] 버튼을 클릭합니다.
8. 아래와 같이 입력되었는지 확인합니다.
5.3 popup 화면 설정
- Olap-Grid의 데이터 셀을 더블 클릭하면, 실행되는 Chart & DataGrid 팝업 창의 화면을 설정합니다.
- [popup]시트를 선택한 후 Chart 컨트롤에 데이터 셋을 연결합니다.
- DataSource : Chart
2. List Grid 컨트롤을 우 클릭하여 데이터소스 항목을 선택합니다.
i-META File 정보
- 경로 : 공용 폴더 > 교육 > i-META
- 파일 명 : [i-AUD] Sales Meta
3. i-META File을 선택하여 필드를 배치한 후 조회조건 필드와 변수 편집기에 등록된 변수를 연결합니다.
- 년월 = :VS_POP_YM
- 사업부코드 = :VS_POP_DIV_CD
- 제품대분류명 = :VS_POP_PROD_L_NM
4. [확인] 버튼을 눌러 데이터소스 선택 창을 닫은 후, Form1으로 이동하여 보고서가 정상적으로 작동하는지 확인합니다.