본문 바로가기
Delphi Tip/출력

퀵레포트 밴드에 빈데이터 추가하기

by MonoSoft 2022. 1. 14.
728x90
반응형

퀵레포트 밴드에 빈데이터 추가하기

 

퀵레포트로 레포트를 만들 경우

데이타가 적게는 1개에서 몇백개까지 나올 경우가 있다...

문제는 이게 아니다

양식에 맞게 레포트를 만들게 되면

밴드 같은 경우 데이터 수만큼 생기고 바로 Footer가

나와 레포트 형식이 짧거나 아니면 넘어가는 현상이 일어난다

머..다른 방법이 있을 수 있겠지만...나만의 방식으로 위기를 모면(?) 했다

 

===============================================

양식지 데이터 수가 20개일경우...

데이터가 20개 미만일 경우 데이터 수만큼 디테일 밴드에

나온 후 바로 짤리는 요상한 형식이 나와버린다

 

자! 일단 요렇게 해보쟈!!!

일단 나는 밴드를 디비로 보았다

 

15개 데이타가 있을 경우 나는 15개의 데이터에 5개의

빈데이터를 추가해버리고 바로 불러오면 되지 않냥?

생각하고...이리저리 헛질?하면서 연구를 했다

 

아! 맞다!!! 컴포넌트중...임시테이블인 TVirtualTable 있었지!!!!!!

나는 이것을 이용하기로 마음 먹었다!!!

15개의 데이터를 TVirtualTable에 때려 넣고..

나머지를 빈 값으로 넣으면 되지 않겠냥???

 

주의 : 혹시 오라클를 아시는분은 뷰를 쓰면 되지 않겠냥? 안된다...ㅡㅡ; 

뷰는 원본 데이타를 참고 만든 임시 테이블이다

 

까딱하다 데이터를 Delete 할 경우 원본 데이터까지 

싸~~악 날라는 최악의 상황에 이르게 된다

 

자세한 상황은 오라클의 뷰를 검색해 보시랏!!!

암튼 이렇게 15개데이터을 넣고 빈 데이터 5개를 넣었다..!!

 

그리고 퀵레포트는 밴드 속성을 꼭 pageheder와 pagefooter로 하고

중간에 당근 디테일 밴드가 들어가겠죠?

이제 퀵레포트에 밴드에 연결하여 프리뷰를 했다!!!

 

잘 나온다!!!! 오호!!!!

허나!! 데이타 항상 15개만 나오겠는냥?? 아니다....넘는 경우도 있다!!!! 이런 X!!! ㅜㅜ

자 이제 연산식으로 이 위기를 모면해보쟈~!

일단 20개 데이터 양식지이닌깐! 이걸로 예를 들어보겠다...!!!

만약 데이터가 38개의 데이터가 있다...생각한 바 론!

1페이지에 20개를 찍고 다음 페이지에 18개를 찍은 나머지 2개를

빈공간으로 나오게 해야 정상이다!

그럼 공식을 구해볼까낭~~~~~~

 

공식 : 전체데이터수 + 20-(전체데이터수 - ( 20 * (전체데이터수 / 20) ))

요걸 계산하여 루프를 돌린다...

 

for i := 전체데이타수 to 구한값-1 do

begin

//TVirtualTable 에 빈값 넣기

end;

 

그런 다음 프리뷰로 보자!!!

옷! 잘 나온다!!! 20개 미만인 데이터도 잘 나오고....

넘는거....그보다 훨씬 넘는거도 다 잘나온다....

 

제 정신으로 작성한 글이 아니라...나도 무슨말이지 모르겠다..

첨부파일로 부가 설명을 더하겠다...

이상....돈아까워서 FastReport를 안쓰는 요상한데에서 작성한

퀵레포트에서 밴드에 빈데이터 추가하기 였다...

 

728x90
반응형

댓글