실습 예제 |MX-GRID를 이용한 영업 실적 분석 화면 |
---|
|
영업 실적 분석 Template 실습 Template 다운로드 위 실습 예제를 학습하기 위한 실습 Template과 SQL은 아래의 파일을 다운받아 사용합니다.
|
Step 1. 조회 조건 설정하기
i-AUD 디자이너에서 조회 조건 컨트롤을 생성하여 데이터의 조회 조건을 설정합니다.
1.1 제목 만들기
- 상단 메뉴 영역에서 [UI Bot] > [Label]을 클릭해 Label 컨트롤을 생성합니다.
- 우측의 컨트롤 속성 편집 영역에서 제목을 입력한 후, Font 속성을 설정합니다.
- Label 컨트롤을 선택한 상태에서 마우스를 Drag & Drop하여 원하는 크기로 조절 후 예제 화면과 같은 위치에 배치합니다.
1.2 Calendar 컨트롤 생성
- 상단 메뉴 영역에서 [UI Bot] > [Calendar] > [Daily]를 클릭해 Calendar 컨트롤을 생성합니다.
- 생성된 Calendar 컨트롤을 원하는 위치로 배치한 후, 화면 우측 컨트롤 속성 편집 영역에서 다음과 같은 속성을 설정합니다.
- 변수명 : VS_DATE
- InitDate : DATE(-1, 0, 0)
- DataFormat : yyyy-MM-dd
참고
DataFormat 설정을 실제 데이터 타입과 동일하게 설정해야 정상적으로 조회가 가능합니다.
1.3 조회 버튼 컨트롤 생성
- 상단 메뉴 영역에서 [UI Bot] > [Button] > [Button]을 클릭해 Button 컨트롤을 생성합니다.
- 생성된 Button 컨트롤을 원하는 위치로 배치한 후, 화면 우측 컨트롤 속성 편집 영역에서 다음과 같은 속성을 설정합니다.
- Name : BTN_Refresh
- Text : 조회
1.4 상단 컨트롤 그룹 설정
- 상단 메뉴 영역에서 [UI Bot] > [Group]을 클릭해 Group 컨트롤을 생성합니다.
- 화면 우측 컨트롤 속성 편집 영역에서 다음과 같은 속성을 설정합니다.
- Group 컨트롤에서 마우스 오른쪽 버튼을 클릭한 후 [맨 뒤로 보내기] 항목을 클릭합니다.
- 그룹 컨트롤을 제외한 모든 컨트롤을 그룹에 넣기 위해 Ctrl 키를 누른 상태에서 컨트롤들을 클릭하여 선택합니다.
- 선택한 컨트롤에서 마우스 오른쪽 버튼을 클릭한 후 [그룹에 넣기] > [Group] 메뉴를 클릭하여 그룹에 넣어줍니다.
그룹 내에 컨트롤의 위치를 재 배치해줍니다.
맞춤 정렬
컨트롤을 맞춤 정렬 시
Step 2. 정형 보고서 양식 만들기
MX-Grid 컨트롤을 활용해 기존에 사용했던 엑셀 양식을 불러와 정형 보고서 양식을 제작합니다.
2.1 MX-Grid 생성 및 실행
MX-Grid 디자이너를 실행하려면 보고서를 저장해야 하기 때문에 MX-Grid 컨트롤 생성하기 전에 보고서를 저장합니다.
상단 메뉴 영역에서 [저장]을 클릭하여 원하는 위치와 이름으로 저장합니다.참고 | MX-Grid 디자이너 실행 시
MX-Grid의 디자이너를 실행하려면 화면을 저장해야 하므로 제작 전 저장 후 시작합니다.
상단 메뉴 영역에서 [UI Bot] > [MX-Grid]를 클릭해 MX-Grid 컨트롤을 생성합니다.
- 생성한 MX-Grid 컨트롤에서 마우스 오른쪽 버튼을 클릭하여 [디자인] 메뉴를 클릭해 MX-Grid 디자이너를 실행합니다.
- 엑셀로 화면을 만들 수 있는 디자이너 창이 실행됩니다.
2.2 보고서 양식 불러오기
- MX-Grid 디자이너 창이 실행되면 보고서 양식 파일을 불러오기 위해 상단 리본 메뉴에서 [i-MATRIX] > [Open]을 클릭합니다.
- [열기] 팝업 창이 나타나면 보고서 양식 파일이 있는 위치로 이동하고 파일 확장자 목록을 [All files(*.*)]로 변경합니다.
- 보고서 양식으로 사용할 파일을 선택 후 [열기] 버튼을 클릭하여 엑셀 파일을 불러옵니다.
- 불러온 '영업 실적 분석_Template'을 '새문서1'로 이동하기 위해 시트탭에서 마우스 오른쪽 클릭 후 [이동/복사] 메뉴를 클릭합니다.
- 이동할 대상 문서로 [새문서1]을 선택 후 [확인] 버튼을 클릭합니다.
- [새문서1]의 [V1]탭에서 마우스 오른쪽 클릭 후, [삭제] 메뉴를 클릭하여 삭제합니다.
복사한 [Sheet1] 탭의 이름을 더블 클릭하여 [V1]으로 변경한 후, 상단 리본 메뉴에서 [i-MATRIX] > [Save] 버튼을 클릭해 MX-Grid 컨트롤에 적용합니다.
참고 : 시트명 규칙
MX-Grid 디자이너는 저장 시 Excel의 시트명을 예약어로 사용하고 있습니다.
시트명
역할
비고
V1 MX-Grid 컨트롤의 최종 출력할 대상 시트 MX-Grid는 V1 시트를 화면에 출력합니다. (엑셀과 같이 시트탭을 지원하진 않지만 시트 이동 동작을 설정할 수 있습니다.) D + Number 데이터 시트 SQL 실행 결과를 출력할 시트로 계산을 위한 임시 데이터 저장소로 사용합니다. 이름이 알파벳 "D"로 시작하는 모든 시트를 지칭합니다.
해당 시트는 서버에서 쿼리 실행 시점에 동적으로 시트가 생성되므로 수식 및 서식 등은 유지되지 않습니다.P1 파라미터 정의 시트 SQL 실행 시 쿼리의 필터 조건으로 사용할 변수 값들을 관리하는 시트로, 실제 엑셀의 이름 정의를 설정한 경우만 파라미터 값으로 인식합니다. T + Number 템플릿 시트 데이터 출력 시 출력 디자인 및 필드 매핑을 위해 사용하며,
현재는 서버 스크립트를 통해 템플릿 바인딩 규칙을 지정해야 합니다.V + Number V_ + * 출력 대상 시트 eg. V2, V3, V4, V_메인, V_상세 다중 시트 지원 기능을 사용하거나 ActiveSheet를 지정 한 경우 해당 이름 규칙을 사용하여 적용됩니다. 불러온 보고서 양식을 사용하기 위해 [새문서1] 창은 종료합니다. i-AUD 디자이너에서 [데이터 갱신] 버튼을 클릭하여 MX-Grid 컨트롤에 양식이 정상적으로 적용되었는지 확인합니다.
참고 : MX-Grid 엑셀 파일 저장 위치
MX-Grid의 디자이너 창인 엑셀 파일은 서버 내의 해당 보고서 폴더에 저장됩니다.
엑셀 파일을 서버에서 찾기 위해선 해당 보고서의 코드값을 통해 검색 가능합니다.
보고서 관련 코드는 파일 디렉토리 창 또는 관리자 페이지에서 확인 가능합니다.
i-AUD 보고서 저장 > 서버에 해당 보고서 폴더 생성 > MX-Grid 디자이너 저장 > 해당 폴더 내에 엑셀 파일 저장
- [편집 모드]를 실행하고 MX-Grid 컨트롤을 원하는 크기와 위치로 배치한 후, 화면 우측 컨트롤 속성 편집 영역에서 다음과 같은 속성을 설정합니다.
- Border - Line Type : none
- Docking : Left 10, Top 75, Right 0, Bottom 0
Step 3. 데이터 연결하기
SQL을 이용하여 테이블의 데이터를 가져와 양식과 연결합니다.
제공한 SQL문을 복사하여 사용합니다.
3.1 엑셀 이름 정의 기능으로 변수 정의
- MX-Grid 컨트롤에서 마우스 오른쪽 버튼을 클릭하여 [디자인] 메뉴를 클릭해 MX-Grid 디자이너를 실행합니다.
- Calendar에서 선택한 날짜를 기준으로 실적 현황을 조회하기 위해 조회 후 보고서의 수식에 적용되는 변수를 [P1] 시트에 이름 정의해야 합니다.
변수 정의를 위해 MX-Grid 디자이너의 [P1] 시트로 이동합니다. 이름 항목에 정의할 변수명을 입력하고, 이름정의 항목 [C8] 셀을 클릭한 후 [이름 상자]에 'VS_DATE'라고 입력한 후 Enter 키를 누릅니다.
참고 : 엑셀 이름 정의
이름 상자에 직접 정의하는 방법 외에 엑셀의 수식 리본 메뉴에서 정의된 이름 영역에서 별도의 창 수식 등으로 이름 정의하실 수 있습니다.
3.2 데이터셋 생성 및 출력
- 상단 리본 메뉴에서 [i-MATRIX] > [DB Bot] > [Dataset Manager]를 클릭하여 [데이터셋 관리자] 팝업 창을 실행합니다.
- 화면 좌측 데이터 셋 목록에서 마우스 오른쪽 클릭한 후, [신규] 메뉴를 클릭합니다.
- [데이터베이스 연결] 창에서 [EDU] 항목을 선택한 후 [연결] 버튼을 클릭하여 선택한 데이터베이스를 연결합니다.
- 쿼리 입력 창에 복사한 쿼리를 붙여 넣은 후 [데이터 미리 보기] 버튼을 클릭하여 데이터가 정상적으로 출력 되는지 확인합니다.
- 변수 설정 창이 나타나면 변수값을 설정하고 [확인] 버튼을 클릭하여 데이터 미리 보기를 실행합니다.
- 데이터를 보고서에 출력하기 위해 출력 유형과 출력 위치를 설정합니다.
- 출력 유형 : 표
- 출력 위치 설정 아이콘() 클릭
- [D1]시트에서 데이터를 출력할 첫 번째 셀을 선택합니다.
- 출력 위치가 설정된 것을 확인한 후 [닫기] 버튼을 눌러 데이터 셋 관리자를 저장하고 닫습니다.
일별/월별/주별/ 기준 정보로 데이터를 조회하기 위한 수식을 통해 파생 항목을 작성합니다.
항목 수식 일 별 = B2 & TEXT(A2, "YYYY-MM-DD") 월 별 = B2 & TEXT(A2, "YYYY-MM") 주 별 = B2 & WEEKNUM(A2) [D1] 시트의 시트명을 [T1]시트로 변경합니다.
참고 : 시트명 변경
D1 시트는 쿼리 실행 시점에 동적으로 시트가 생성되어 수식 및 서식 등이 유지되지 않기 때문에 시트명을 변경해야 합니다.
시트명
역할
비고
D + Number 데이터 시트 SQL 실행 결과를 출력할 시트로 계산을 위한 임시 데이터 저장소로 사용합니다. 이름이 알파벳 "D"로 시작하는 모든 시트를 지칭합니다.
해당 시트는 서버에서 쿼리 실행 시점에 동적으로 시트가 생성되므로 수식 및 서식 등은 유지되지 않습니다.T + Number 템플릿 시트 데이터 출력 시 출력 디자인 및 필드 매핑을 위해 사용하며,
현재는 서버 스크립트를 통해 템플릿 바인딩 규칙을 지정해야 합니다.
3.3 기준 정보 설정
[V1] 시트로 이동한 후 일별/주별/월별로 데이터를 가져오기 위해 수식에 참조할 값을 아래와 같이 작성합니다.
항목 수식 기준날짜 = VS_DATE Day Current Day = TEXT(VS_DATE, "YYYY-MM-DD") Last Day = TEXT(VS_DATE - 1, "YYYY-MM-DD") Week Cumulative Current Week = WEEKNUM(VS_DATE) Last Week = F2 - 1 Month Cumulative Current Month = TEXT(VS_DATE, "YYYY-MM") Last Month = TEXT(EDATE(VS_DATE, -1), "YYYY-MM") Sales by Recent Week Last Week = WEEKNUM(VS_DATE - 7) 2 Week = L2 - 1 3 Week = M2 - 1 [T1] 시트에 출력한 데이터를 [V1] 시트의 양식과 연결하기 위한 집계 수식을 작성합니다. [SUMIF] 함수를 이용해 아래와 같이 수식을 작성합니다.
항목 수식 비고 = SUMIF(조건을 검색할 범위, 조건, 합계범위) Day Current Day = SUMIF('T1'!$D:$D, 'V1'!$B6 & 'V1'!C$2, 'T1'!$C:$C) = SUMIF(일별, 상품명 & 기준날짜, 매출액) Last Day = SUMIF('T1'!$D:$D, 'V1'!$B6 & 'V1'!D$2, 'T1'!$C:$C) Compared to Last Day = C6-D6 = Current Day - Last Day Week Cumulative Current Week = SUMIF('T1'!$F:$F, 'V1'!$B6 & 'V1'!F$2, 'T1'!$C:$C) = SUMIF(주별, 상품명 & 기준날짜, 매출액) Last Week = SUMIF('T1'!$F:$F, 'V1'!$B6 & 'V1'!G$2, 'T1'!$C:$C) Compared to Last Week = F6-G6 = Current Week - Last Week Month Cumulative Current Month = SUMIF('T1'!$E:$E, 'V1'!$B6 & 'V1'!I$2, 'T1'!$C:$C) = SUMIF(월별, 상품명 & 기준날짜, 매출액) Last Month = SUMIF('T1'!$E:$E, 'V1'!$B6 & 'V1'!J$2, 'T1'!$C:$C) Compared to Last Month = I6-J6 = Current Month - Last Month Sales by Recent Week Last Week = SUMIF('T1'!$F:$F, 'V1'!$B6 & 'V1'!L$2, 'T1'!$C:$C) = SUMIF(주별, 상품명 & 기준날짜, 매출액) 2 Week = SUMIF('T1'!$F:$F, 'V1'!$B6 & 'V1'!M$2, 'T1'!$C:$C) 3 Week = SUMIF('T1'!$F:$F, 'V1'!$B6 & 'V1'!N$2, 'T1'!$C:$C) 참고 : 엑셀 셀 참조
엑셀에서 특정 셀 값을 가져오기 위해 셀 주소를 참조하게 되는데 참조한 값을 복사 붙여넣기 할 때 Default는 상대 참조 형태입니다.
기준 셀의 위치를 고정해서 참조하기 위해서는 셀 주소 입력 시 셀 주소(열, 행) 앞에 '$' 기호(단축키 F4)를 추가합니다.
'F4' 키 입력 시 절대 참조 > 혼합참조(행 고정) > 혼합참조(열 고정) 순으로 설정됩니다.
- 작성한 수식은 파생 항목 별로 복사/붙여 넣기합니다.
- 화면에 숨길 행/열을 선택한 후 숨기고, 상단 리본 메뉴에서 [i-MATRIX] > [Svae] 버튼을 클릭하여 보고서를 저장한 후 i-AUD 디자이너에서 실행합니다.
- 참고 MX-GRID를 통해 보여주고자 하는 화면의 시트 명은 반드시 ‘V1’으로 설정해야 합니다.
Step 4. 조회 버튼 이벤트 설정하기
4.1 MX-Grid 데이터 실행 건수 제약 해제
우측의 컨트롤 속성 편집 영역에서 [Data] > [LimitOfBinding] 옵션 값을 '0'로 설정합니다.
MX-Grid 데이터 실행 건수 제약 기능
MX-Grid에 테이블 형태로 데이터를 출력 할 경우 대량 데이터 실행에 따른 성능 저하 문제를 방지하기 위해 컨트롤별로 LimitOfBinding이라는 옵션이 추가 되었습니다.
실제 쿼리 결과가 해당 옵션 사이즈를 넘더라도 화면에는 해당 갯수 만큼의 데이터만 출력되게 됩니다.
- 기본값은 1000으로 값이 0보다 작거나 같으면 제약이 해제 됩니다.
- 기존에 작성된 보고서는 해당 값이 0으로 설정됩니다.
4.2 Process Bot을 이용한 조회 이벤트 설정
- 상단 메뉴 영역에서 [Process Bot]을 클릭합니다.
- [프로세스 봇] 팝업 창이 나타나면 왼쪽 [Objects] 목록 중에서 [BTN_Refresh]을 더블클릭합니다.
- 조회 동작을 설정하기 위해 상단 [Activities] 목록 중 [Refresh] 동작을 더블클릭하여 Diagram에 배치합니다.
- BTN_Refresh 버튼을 OnClick시 MXGrid컨트롤이 Refresh동작을 실행 되도록 아래와 같이 드래그앤 드롭으로 노드를 연결합니다 .
- Refresh할 컨트롤을 설정하기 위해 목록 아이콘을 클릭합니다.
- [컨트롤 선택] 팝업 창이 나타나면 [MX-Grid]를 선택한 후 [확인] 버튼을 클릭합니다.
- 아래와 같이 설정이 완료 되었는지 확인 후 저장버튼을 클릭합니다.
- 보고서를 저장한 후 제작한 보고서가 정상적으로 작동되는지 확인하기 위해 i-AUD 디자이너를 종료하고 포털에서 확인해 봅니다.