* 개요
마스터 디테일 구조의 보고서를 만드는 방법을 설명합니다.
* 상세 설명
마스터-디테일 구조의 보고서는 depth의 제한이 없습니다. northwind의 제품분류별 제품 목록을 보여주는 데이터를 예로 들어 설명하겠습니다.
1. OZ QueryDesigner를 실행한 후 northwind db에 연결합니다.
2. 마스터-디테일 셋을 각각 생성합니다.
마스터 셋 쿼리문 select * from categories order by categoryid desc |
디테일 셋 쿼리문 select * from products where categoryid = #SQL_master.CategoryID# |
디테일 셋에서는 마스터의 제품분류를 조건으로 하는 데이터만 조회합니다. 패러미터는 오른쪽 마우스를 누르고 "패러미터 마법사"를 띄워 설정합니다.
3. 디테일 셋의 속성창에 "마스터셋"을 지정합니다.
4. 쿼리문을 실행(F5)합니다. 이 때 마스터셋 파라미터 값에 임의의 값을 넣습니다.
ODI를 저장합니다.
5. OZ Report Designer를 실행한 후 작업폴더를 설정합니다. 작업폴더는 odi가 저장된 위치 혹은 상위 폴더로 합니다.
6. 데이터밴드를 마스터-디테일 셋 개수만큼 추가합니다. 각 밴드에 디자인을 합니다. 마스터셋을 설정한 데이터밴드에 테이블을 사용하시면 마스터-디테일 구조로 보고서를 만들 수 없습니다. 마스터 데이터밴드에는 고정테이블이나 일반 라벨을 사용하시기 바랍니다.
(데이터_밴드1 속성) 속성명 | 속성값 | 설명 | 풋터밴드 소유 | 예 | 전체 합계를 보여줄 밴드 | ODI 이름 | masterdetail | | 데이터셋 | SQL_master | |
(데이터_밴드2 속성) 속성명 | 속성값 | 설명 | 풋터밴드 소유 | 예 | 제품 분류별 합계를 보여줄 밴드 | 마스터밴드 이름 | 데이터_밴드1 | | ODI 이름 | masterdetail | | 데이터셋 | SQL_detail | | 마스터 고정 | 예 | 매 페이지 마스터밴드가 보여짐 | 반복 횟수 | 1 | 데이터 0건일 때 1회 보여짐 |
(데이터_밴드_풋터_밴드1 속성) 속성명 | 속성값 | 설명 | 스크립트 | if (currentRowIndex("masterdetail.SQL_master") == totalRowCount("masterdetail.SQL_master") ) { setattr("forcenewpage", "false"); } | 마지막 페이지는 페이지 넘김 안함 | 페이지 넘기기 | 예 | |
7. 미리보기(Ctrl+P) 한 결과입니다.
* 참고 사항
- GroupDataStore로 Master-Detail 구조 구현할 때 주의사항 : http://www.oztn.net/kb/article/kbrpt/119242937901523 - MDB 파일을 ODBC로 등록하기 : http://www.oztn.net/kb/article/kbserver/119131529447200 - 이 샘플은 OZ ReportDesigner3.5에서 작성되었습니다.
* 첨부자료 설명
- 1106_masterdetail.zip : 샘플 oza, odi, 데이터파일 Northwind.mdb
|