학습목표
스크립트를 사용하여 대시보드 객체를 생성한 후, 서버를 경유해서 대시보드를 Export 할 수 있습니다.
스크립트를 사용하여 대시보드 객체를 생성할 수 있습니다.
컨트롤 생성
컨트롤에 클릭 이벤트 연결
변수를 선언하고 Matrix.getObject(Name)을 사용하여 컨트롤을 연결합니다.
AUD플랫폼의 자체 API로 해당 이름을 가진 컨트롤을 반환합니다. [Control]getObject
|
[OnButtonClick] 이벤트를 호출했을 때, 대시보드의 컴포넌트를 받아서 Export 할 객체를 생성합니다.
대시보드로 내보낼 파일을 스크립트로 제작할 때, 주의해야 할 점들이 있습니다. - 모든 컴포넌트가 WORKBOOK에 생성되는 것은 아닙니다(List-Grid, Olap-Grid, Chart, Image 컴포넌트 가능) => 캘린더 값이나 라벨 값 등 컴포넌트 상의 문자 정보가 필요한 경우는 변수로 받거나 직접 타이핑하여 Range 객체 안에 넣어줍니다. => 문자 정보는 Range. 컴포넌트 정보는 Control에 입력합니다. - 컴포넌트에 따라 객체에 넣는 조건이 다릅니다.
- DataGrid, OlapGrid의 페이징 혹은 스크롤 사용 시, Export 된 파일에서는 구현이 불가능하기 때문에 대시보드 상에 뿌려진 모든 데이터가 출력됩니다. => DataGrid, OlapGrid 아래에 다른 컴포넌트가 있을 시, 데이터의 로우를 계산하여 그 범위 아래에 나타내는 식으로 제작하여야 합니다. Ex) |
Export API 연결
생성한 객체를 사용하여 Export를 실행하는 스크립트를 작성하고 [저장] 버튼을 클릭하여 스크립트를 저장합니다.
AUD플랫폼의 자체 API로 Json 형태의 데이터를 이용해 데이터 엑셀 내보내기 서비스를 호출합니다.(처리 완료 후 OnServiceCallBack 이벤트가 발생합니다.) [void]ExcelExportServiceCall : ExcelExportServiceCall([object] json ,[object[{Key,Value}]] params ,[function] callBack)
AUD플랫폼의 자체 API로 서버에 저장된 파일을 다운로드 하는 API입니다. [void]DownloadFile : DownloadFile([string] path ,[string] fileName ,[string] newFileName ,[boolean] isDelete)
- ExcelExportServiceCall API에 생성한 WORKBOOK 객체를 집어넣어 Excel 파일을 생성하고 서버에 저장한 뒤, DownloadFile API를 사용하여 로컬에 파일을 다운로드 합니다. |
Export가 정상적으로 작동하는지 확인합니다.
- 대시보드를 전체 이미지화해서 내보내는 것이 아니기 때문에 로컬용으로 내보낸 대시보드처럼 전체 이미지로 출력되지 않습니다. => WORKBOOK 객체가 만들어지는 시점이 다를시 조회조건에 따라 변경된 차트가 반영이 안될 수 있습니다. |
대시보드를 여러 파일의 유형으로 Export 할 수 있습니다.
Export 파일 유형
API | 파일 확장자 | 설명 |
---|---|---|
ExcelExportServiceCall | xlsx | 데이터 엑셀 내보내기 서비스를 호출합니다. |
WordExportServiceCall | docx | Word 형식으로 다운로드합니다. |
HMLExportServiceCall | hml | 한글(HML) 형식으로 다운로드합니다. |
HTMLExportServiceCall | html | 웹(HTML) 형식으로 다운로드합니다. |
XLSExportServiceCall | xls | Excel 2003 형식으로 다운로드합니다. |
PDFExportServiceCall | PDF3 형식으로 다운로드합니다. |
API를 변경해서 사용 시 새로운 파일명을 부여할 때, 그 API에 맞는 확장자명을 붙여주어야 합니다. Ex)
ExcelExportServiceCall 대신 다른 API를 사용 시, 컴포넌트 위치를 다시 설정해주어야 하는데 셀 주소값을 가지고 있는 Excel과는 다르게 위치를 지정하는 것이 매우 어렵고 많은 수작업이 요구됩니다. |