export 처리 과정과 실행 샘플을 설명합니다.
Export 처리
애플리케이션은 export를 위한 data(command, export data, style)를 일정 크기로 분할하고, 분할된 data(chunked data)를 nexacro-xeni 서버에 순차적으로 전송합니다.
nexacro-xeni 서버는 전송 받은 데이터를 command 에 따라 저장될 파일 stream으로 구성합니다.
지정된 경로에 임의의 폴더를 생성하고 stream을 지정된 이름의 파일로 생성합니다.
생성된 파일의 url을 애플리케이션에 전송해 파일을 내려받을 수 있도록 합니다.
url을 요청합니다.
Excel 파일을 전송합니다.
생성된 파일은 설정에 따라 관리/삭제됩니다.
실행 샘플
nexacro platform grid component 의 data 를 Excel 파일로 export 하는 방법을 설명 합니다.
nexacro platform 화면
1
아래 샘플 그림에서 export 버튼을 클릭하면 grid 의 내용이 nexacro-xeni 로 분할 전송 됩니다.
2
nexacro-xeni 에서 작업이 완료되면 아래와 같은 대화 상자가 표시 됩니다.
3
다운로드 된 파일을 확인 합니다.
nexacro platform 소스
this.Button00_onclick = function(obj:Button, e:nexacro.ClickEventInfo) { this.url = “http://127.0.0.1:8080/nexacro-xeni/XExportImport”; this.exportObj = new ExcelExportObject(); this.exportObj.addEventHandler("onprogress", this.ExcelExportObject00_onprogress, this); this.exportObj.addEventHandler("onsuccess", this.ExcelExportObject00_onsuccess, this); this.exportObj.addEventHandler("onerror", this.ExcelExportObject00_onerror, this); var ret = this.exportObj.addExportItem(nexacro.ExportItemTypes.GRID, this.gd_excel, "Sheet1!A1"); this.exportObj.set_exportmessageprocess("%d [ %d / %d ]"); this.exportObj.set_exportuitype("exportprogress"); this.exportObj.set_exporteventtype("itemrecord"); this.exportObj.set_exporttype(nexacro.ExportTypes.EXCEL2007); this.exportObj.set_exportfilename("ExcelExport_Sample"); this.exportObj.set_exporturl(this.url); this.exportObj.exportData(); }
ExcelExportObject Event
export 처리 과정과 결과를 이벤트를 통해 확인 할 수 있습니다.
Event Name | Description |
---|---|
onerror | Export 수행 중 오류가 발생 되었을 때 발생 되는 이벤트 |
onprogress | Export 수행 중 진행 상태 별로 발생하는 이벤트 |
onsuccess | Export 작업이 완료 되었을 때 발생 되는 이벤트 |
오류 대응
파일 대화 상자가 열리지 않거나 파일이 깨져서 표시되는 경우
Export 작업 완료 후 파일 대화 상자가 열리지 않고 브라우저 상에 파일 내용이 깨진 상태로 표시 될 경우 web.xml 에 mime-mapping 을 추가한 후 WAS 를 재 시작 합니다.