[Oz Report] 분기에 따라 특정 Report만 보여주기 Script, 멀티보고서를 분기로 구현하기
OZ Report에서 멀티 보고서를 출력하는 방법도 있지만,
HTML5 뷰어를 사용해야 하기 때문에 여러 Report를 만들고 자바 스크립트로 분기를 통해 편집하는 것이 가장 간단한 방법이다.
만약 위와 같이 Report5와 Report6이 있고 특정 조건에 따라 어떨 때는 Report5, 어떤 경우에는 Report6이 보여져야 한다면 아래와 같이
해당 Report 아래 Javascript로 스크립트를 작성하여 분기할 수 있으며, 중요한 것은 OnBind와 연결시켜주어야 한다는 점이다. Bind 될 때 해당 스크립트를 통해 어느 Report 가 보여지는지 결정된다.
var 변수명 = This.GetDataSetValue("데이터셋.변수명");if (조건문){This.SetEnable(false); //안보이게 할 경우 // 보이고 싶게 할 경우 This.SetEnable(true); 로 적어주면된다}
Oz Report sum, average 등 Script 총정리
OzReport에서는 특히나 여러 칼럼들의 sum값을 구하거나 average를 구하거나 해야 하는 경우가 많다.
요약 타입으로 하여 summary로 데이터 형태를 정하는 것도 가능하지만, if 문 분기를 해야 하거나 경우에 따라 다른 값을 보여주어야 하는 경우에는 script로 제어를 해야 한다.
그럴 때 사용할 수 있는 유용한 oz script 문법을 몇 가지 소개하도록 하겠다.
1 ) 데이터의 SUM값을 보여주어야 할 때: dbsum()
SET0 데이터셋의 TOTAL이라는 칼럼의 sum값을 보여주고 싶다고 가정해보자.
그럴 때는
double val1;
val1= dbsum("SET0.TOTAL");
setattr("caption", formatNumber(val1, "#,###,###,###.#");
위와 같이 작성할 수 있다.
2) 데이터의 평균값을 보여주어야 할 때: dbavg()
double val1;
val1= dbavg("SET0.TOTAL");
setattr("caption", formatNumber(val1, "#,###,###,###.#");
3) 데이터의 max값을 보여주어야 할 때: dbmax()
double val1;
val1= dbmax("SET0.TOTAL");
setattr("caption", formatNumber(val1, "#,###,###,###.#");
4) 데이터의 min값을 보여주어야 할 때: dbmin()
double val1;
val1= dbmin("SET0.TOTAL");
setattr("caption", formatNumber(val1, "#,###,###,###.#");
5) setattr (속성들을 script로 세팅할 경우)
- setattr("caption", val1); //가장 단순하게 특정 숫자를 보여줄 때 사용하는 스크립트
- setattr("visible", "false"); //안보이게 하는 경우. 경우에 따라서 어떨 때는 보이고 어떨 때는 보이지 않게 할 때 유용한 스크립트
- setattr("visible, "true"); //보이게 하기 위함
- setattr("printable", "false"); //저장 시 안나오게 하는 경우
- setattr("printable", "true"); //저장 시 나오게 하는 경우 (안쓰면 기본적으로 나온다)
Oz Report 숫자 표시형식 설정
Oz Report에서 숫자 표시 형식을 설정하는 방식에 대해 알아보도록 하겠다.
방법은 간단한데 oz Report 속성=> 동적 => 표시형식에서 설정해주면 된다.
1) 1,223,345 와 같은 형식으로 나오게 하는 방법
만약 컴마가 찍혀있고, 소수점은 나오게 하기 싫다라고 한다면 아래와 같이 설정해줄 수 있다.
2. 소수점 둘째자리에 %까지 붙여서 나오게 하는 법
ex) 10.25%
OZ Report 데이터밴드 반복 출력, Region 사용법
1. Oz Report 데이터밴드 반복 출력 방법
Oz Report에서 데이터밴드를 반복 출력하고 싶으면 리전을 사용하면 된다.
이런 식으로
DataBand 안 Region 안 다른 DataBand, 필요 시 그 안 FixedTable 이렇게 컴포넌트를 설정해주면 된다.
핵심은 이렇게 Region의 속성을 설정해주는 것이다.
Oz Report 쪽에 Region componenet를 선택하면 출력방향을 지정할 수 있다.
출력할 내용이 Region의 크기를 넘을 경우 리전이 반복 출력될 때 리전이 출력되는 방향을 설정하는 것이다.
2. 리전 출력 방향
- 하나만: 리전을 하나만 출력
- 수평: 수평방향으로 출력 (가로로 길어지는 형식)
- 수직: 수직방향으로 출력 (세로로 길어지는 형식)
- 양방향: 수평/ 수직 양방향으로 출력
- 제한된 수평: 수평방향으로 출력을 하되, 오른쪽 끝에 다다르면 아래로 내려가 다시 수평 방향으로 출력하기 시작. (보통 수평 방향으로 Region을 설정하고 싶다면 수평보다는 제한된 수평을 선택한다)
- 제한된 수직: 수직방향으로 출력을 하되, 용지 끝에 가면 다시 옆으로 이동하여 다시 수직 방향으로 출력하기 시작한다.
- 페이지 높이에 맞춤: 리전의 높이를 페이지 높이에 맞추어 출력한다.
만약 데이터밴드가 반복되어야 하는데, 반복되지 않는다면 Region이 아니라, 데이터밴드에 얽혀있는 데이터셋이 반복 데이터셋으로 잘 설정되어 있는지 확인해보자.
3. 리전 크기 설정
또 설정한 리전의 크기에 따라서도 반복되는 데이터의 크기와 위치가 달라지니 적절하게 크기를 설정하여 원하는 식으로 데이터 반복되는 것을 구현해보면 된다.
리전의 크기는 속성 -> 레이아웃 -> 크기에서 조정할 수 있다.
.png)