9.export 기능

Edit

export 처리 과정과 실행 샘플을 설명합니다.

9.1Export 처리

  1. 애플리케이션은 export를 위한 data(command, export data, style)를 일정 크기로 분할하고, 분할된 data(chunked data)를 nexacro-xeni 서버에 순차적으로 전송합니다.

  2. nexacro-xeni 서버는 전송 받은 데이터를 command 에 따라 저장될 파일 stream으로 구성합니다.

  3. 지정된 경로에 임의의 폴더를 생성하고 stream을 지정된 이름의 파일로 생성합니다.

  4. 생성된 파일의 url을 애플리케이션에 전송해 파일을 내려받을 수 있도록 합니다.

  5. url을 요청합니다.

  6. Excel 파일을 전송합니다.

  7. 생성된 파일은 설정에 따라 관리/삭제됩니다.

그림 9-1nexacro-xeni에서의 Excel Export 실행 단계

9.2실행 샘플

nexacro platform grid component 의 data 를 Excel 파일로 export 하는 방법을 설명 합니다.

9.2.1nexacro platform 화면

1

아래 샘플 그림에서 export 버튼을 클릭하면 grid 의 내용이 nexacro-xeni 로 분할 전송 됩니다.

2

nexacro-xeni 에서 작업이 완료되면 아래와 같은 대화 상자가 표시 됩니다.

3

다운로드 된 파일을 확인 합니다.

9.2.2nexacro 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(); 
}

9.2.3ExcelExportObject Event

export 처리 과정과 결과를 이벤트를 통해 확인 할 수 있습니다.

Event Name

Description

onerror

Export 수행 중 오류가 발생 되었을 때 발생 되는 이벤트

onprogress

Export 수행 중 진행 상태 별로 발생하는 이벤트

onsuccess

Export 작업이 완료 되었을 때 발생 되는 이벤트

9.3오류 대응

9.3.1파일 대화 상자가 열리지 않거나 파일이 깨져서 표시되는 경우

Export 작업 완료 후 파일 대화 상자가 열리지 않고 브라우저 상에 파일 내용이 깨진 상태로 표시 될 경우 web.xml 에 mime-mapping 을 추가한 후 WAS 를 재 시작 합니다.