늘 자신을 설레게 하는 쪽으로

크리스탈 리포트(Crystal Reports) 그룹 / 페이지 넘기기(나누기) 본문

아는 것이 힘!

크리스탈 리포트(Crystal Reports) 그룹 / 페이지 넘기기(나누기)

킴토끼 2021. 6. 4. 16:38

회사일을 한지 1년이 넘었지만, 프린트 관련 작업은 몇 번 한 적도 없고, 작업하더라도 거의 단순작업이라 쉬웠다.
근데 이번에 맡은 작업은 분류별로 그룹을 줘야했고, 소계도 필요했고, 합계도 필요했으며, 그룹이 넘어갈 때마다 페이지도 새로 넘겨줘야 했다. 한번도 해본 적 없는 작업이었다.
이걸 해내기 위해 하루 종일 뒤져서 찾아낸게 포스팅이 하나 있는데, 가장 아래 링크를 걸어두었다. 정말 강 같은 글. 감사합니다.

나는 대분류별로 소계를 뽑는 작업은 이미 MSSQL의 프로시저를 통해 뽑아둔 상태였으므로, 여기서는 그룹묶는 것과, 그룹에 따라 페이지를 넘기는 방법만 기록하겠다. 다음에 작업할 때 갑자기 기억이 안날지도 모르니까...

1. 그룹별로 묶기

미리 전제되어야 할 건 그룹별로 묶을 데이터가 저 필드에 있어야 한다는 것이다.
DB에서 데이터를 가져오는건 아래의 사진처럼 오른쪽 마우스를 클릭하여 위치설정을 해서 가져와야한다.
이거까지 다 설명하긴 길어질 것 같아 넘어갈 것이니 필요하면 구글링을 해보도록 하자.

 




이후에는 삽입 - 그룹을 클릭하여 그룹의 기준으로 삼을 필드를 클릭한다.
(여기서의 필드는 이미 위의 과정을 거쳐 크리스탈 레포트로 연결된 필드여야 한다)




그러면 짜잔! 디자인 섹션에 (본문을 기준으로 위 아래에) 그룹 머리글과 그룹 바닥글이 생긴다.
오른쪽처럼 미리보기란에서는 묶인 그룹명들을 확인할 수 있다. 그러니까 조금 더 쓰자면 예시로 캡쳐한 화면에서는 코드를 넣어놨는데, 예를 들어 (대분류 필드를 그룹으로 지정하면) 미리보기 리스트에 대분류명이 나오며, 대분류로 묶인 데이터들를 확인할 수 있다.
클릭하면 해당 데이터가 시작되는 곳으로 이동도 가능하다.


+ ) 만약 그룹을 여러개로 묶어주고 싶으면, 큰 범위순으로 그룹을 묶어주면 된다.





2. 페이지 넘기기(나누기)
작업을 거의 완료하고 인쇄를 하여 테스트를 하려했더니, 그룹이 넘어갈 때마다 새 페이지에 인쇄하는게 필요했다.
그러니까 위에 미리보기 사진을 예로 들자면 0000400017 그룹이 끝나면 새 페이지에 0000700021 데이터를 보여주는 것이다.
이는 디자인에서 오른쪽 마우스 클릭 - 섹션 전문가에서 그룹 머리글에서 설정해야하는데, 가볍게 해당 섹션을 클릭 후 '앞에서 페이지 나누기'에 체크해주면 된다.




주의해야 할 점은 앞에서 페이지를 나누기를 체크하면 맨 앞에 빈페이지가 하나, 뒤에서 페이지를 나누기를 체크하면 맨 뒤에 빈 페이지가 하나 생긴다.
그것을 없애주기 위해 체크한 곳 옆의 수식워크샵에 들어가
전자의 경우 Not OnLastRecord를,
후자의 경우 Not OnLastRecord를 적어준다.

그러면 빈페이지가 제거된 채로 미리보기를 할 수 있다. (인쇄에도 적용 됨)




하고나니 되게 간단한 설정이어서 허무할 정도다.
하지만 모르면 검색하는데 시간을 다 쓰므로 운 좋게 이 글을 발견했다면, 참고해보도록 하자!

내가 참고했던 글도 링크를 걸어두겠다.
* 참고글 https://plogds.tistory.com/332