본문 바로가기

Framework

[오즈 리포트]HTML5 뷰어 활용(SPRING구조)

0. 들어가기전에

실무에서 처음으로 오즈 리포트라는 리포팅 툴을 써보았다.

이 글은 오즈에서 제공하는 OZReportTrainingBook7.0.pdf의 내용과 기술지원 받은 내용을 기반으로 구현시에 겪었던 어려움과 해결방법을 기록해 놓고자 작성한다. 

프로젝트에서는 뷰어에 보여줄 데이터를 자바 컨트롤러에서 구성한뒤 JSP 페이지로 넘기고 JSP페이지에서 오즈 뷰어를 실행한뒤 미리보기 후 인쇄하는 간단한 기능을 구현하였다.

 

>프로젝트 환경 : Spring, mybatis, jsp

>리포팅 툴 : 오즈 디자이너, 오즈 HTML5 사용

>참고 : OZReportTrainingBook7.0.pdf

 

OZReportTrainingBook7.0.pdf
7.86MB

 

1. 단순한 파라미터를 HTML 뷰어에 넘기기(ppt 171 참고)

LIst 형식의 데이터가 아닌 단순한 파라미터를 뷰어에 넘기기 위해서는 오즈 디자이너의 데이터셋(데이터트리 DataService)은 필요없다.

단지, 오즈 디자이너의 Ozformparam 항목에 파라미터명을 넣어서 오즈 폼에 바인딩 해주면 된다.

 

2. List<Map> 형태의 데이터 뷰어에 넘기기(JSON형식)

- spring controller에서 jsp에 데이터를 넘기기 위해 model.addattribute 할때 값은 jsonArr 형태로 만들어 주었다.

- 먼저, List의 각각의 Map을 반복문으로 꺼내온뒤 json객체로 만든다.

- 이렇게 만들어진 jsonObject를 jsonArr에 추가한다.

model.addattribute("jsondata", jsonArr) 이렇게 jsp로 보낸다.

 

3.  jsp에서 뷰어 실행 및 JSON 파라미터 넘기기

- ppt 157 페이지의 소스를 jsp에 붙여넣으면 오즈 뷰어가 실행된다.

- 이때 json 데이터를 뷰어로 보내서 오즈 디자이너로 만든 폼에 바인딩 시킬수가 있다.

(1) list형태의 json 데이터를 오즈 폼에 바인딩 하기위해서는 우선 오즈 디자이너에 바인딩 시킬 껍데기 JSON 파일이 필요하다. 아무 json 파일을 만든 뒤에 {'jsondata' : [{'NAME':'홍길동', {AGE:20}, {JOB:'학생'}]} 이런 가상의 데이터를 입력해준다. 이때 키는 오즈 폼에서 바인딩할 파라미터의 이름으로 만들어줘야 하며 값은 아무 값이나 넣어준다.(공백X)

(2) ozformparam 항목에 파라미터 이름을 입력해준다. 예) jsondata

(3) 오즈 디자이너에서 DataService 항목에 JSON셋을 추가해준다. 상단 URL에 방금 작성한 가짜 json 파일을 선택해주고, 아래에서 파라미터 버튼을 선택하면 json파일에 입력한 키들이 보인다. 기준 PATH를 정해주고, 각 json 키를 추가해준다.

(4) 만들어 놓은 오즈 폼(ozr)에 파라미터를 바인딩한다.

(5) 오즈디자이너에서 폼을 실행해서 가상json파일에 입력했던 데이터가 잘 나오는지 확인한다.

 

4. JSP 설정 및 주의사항

- connection.pcount 의 숫자를 오즈 디자이너에 입력한 ozformparam의 갯수를 적는다.

- 파라미터를 설정하는 부분의 connection.args1 의 양 옆을 " " 가 아니라 ' ' 로 감싼다.

- 파라미터 값 부분에도 마찬가지로 ' '로 감싸며, json 데이터는 json.stringify로 json문자열로 바꿔준다.

  예) oz.sendToActionScript('connection.args1','jsondata='+JSON.stringify(jsondata));

- 데이터가 뷰어에 정상적으로 보여지지 않을 경우에는

(1) F12를 눌러 크로스브라우징 문제인 경우에는 크롬 바로가기에서 크로스브라우징을 해제한후 테스트한다.

(2) jsp에 설정한 ozr 파일의 이름이 정확한지, 폼을 호출하는 경로에 ozr 파일이 맞게 들어가 있는지 확인한다.

(3) 컨트롤러에서의 키와 jsp에서 자바스크립트로 받는 이름, 그리고 가상json파일에 들어가 있는 키 이름이 모두 동일한지 확인한다. 기존에 동일한 이름을 쓰고 있는 데이터셋이 있다면 이름을 다른것으로 변경해본다.