Q&A

  • QuickReport - band의 출력(T.T; 고수님들 부탁드려요)
QuickReport를 이용해서 출력을 하려고 합니다.



책을 찾아봐도 없고, 혹시 이런 문제를 겪었던 고수님들이 있을까해서,

조언을 구하고자 이렇게 ...... 부탁드려요.



Grouping을 해서 출력물을 얻으려구여.

Detail 밴드를 Table와 연결하구요, SubDetail을 Query와 연결해서

결과를 얻었거든요. 참고로 DetailBand의 ForceNewPage(페이지 강제바꿈)를 true로

했더니 일단은 원하는 출력물이 나오더군요.

그런데 문제는,

Query의 레코드 수 만큼만 SubDetailBand가 출력이 되잖아요(원래는요).

만약 레코드가 적으면 너무 많은 공간이 여백으로 남아서 보기 않좋아서요.

초보인 제가 궁리를 해봤거든요. 그래서 아래와 같이 코딩을 했는데,

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

If (EstItemQry.RecordCount/20)=0 then begin

exit;

end else begin

While ((QrbqTotEulFm.estitemqry.RecordCount mod 20) + 1) <> 20 do begin

QrbqTotEulFm.QRSubDetail1.Show;

end;

end;

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

그러니까 이말은 레코드 개수가 20배수 이면( 참고로 가로출력일 경우 한페이지당

20개 정도가 출력이 되서, 최고 한도를 20으로 잡았어요.).

그렇지 않을경우 20으로 남은 나머지가 20이 될때까지 Band를 더 출력이

되게 하려구 해본건데요.

이 코딩이 맞는지요.

또, 틀리다면 어떻게 해결해야 할지요.



고수님들의 답변부탁드립니다.



























3  COMMENTS
  • Profile
    太郞 2001.08.04 00:49
    안녕하세요...

    저도 님과 비슷한 문제가 생겨서요...

    검색해도 무신 말인지 모르겠구....

    (OnNeedData에서 하라고 하는데..잘몰르겠더라구요)

    저도 DetailBand를 사용하구 싶거든요...

    혹시 문제 해결 하셨다면 저도 가르쳐 주세요...

    더운 날씨에 수고하세요....



  • Profile
    김한 2001.05.29 07:45
    제가 보기에는 님의 group의 개념이 아직 부족한 것 같은데요..

    테이블과 쿼리를 같이 쓴 이유는 모르겠지만.

    실제 테이블이 두개 이상을 썼다면, 제가 아는 한도에서 리포트의 그룹핑은

    안되요. 저도 여러 가지 생각을 해 보았지만.

    한 테이블에 있는 컬럼들이 쭉쭉해서 계속 나오기 때문에 그 얘들을 나누기는

    무척 힘들어요.

    compositereport를 한 번 써 보세요.....

    한 페이지에 그룹 헤더를 주고 다른 페이지에 컬럼들을 주어서

    거냥 붙여 쓰는 거죠...





    김송희 wrote:

    > QuickReport를 이용해서 출력을 하려고 합니다.

    >

    > 책을 찾아봐도 없고, 혹시 이런 문제를 겪었던 고수님들이 있을까해서,

    > 조언을 구하고자 이렇게 ...... 부탁드려요.

    >

    > Grouping을 해서 출력물을 얻으려구여.

    > Detail 밴드를 Table와 연결하구요, SubDetail을 Query와 연결해서

    > 결과를 얻었거든요. 참고로 DetailBand의 ForceNewPage(페이지 강제바꿈)를 true로

    > 했더니 일단은 원하는 출력물이 나오더군요.

    > 그런데 문제는,

    > Query의 레코드 수 만큼만 SubDetailBand가 출력이 되잖아요(원래는요).

    > 만약 레코드가 적으면 너무 많은 공간이 여백으로 남아서 보기 않좋아서요.

    > 초보인 제가 궁리를 해봤거든요. 그래서 아래와 같이 코딩을 했는데,

    > =================================

    > If (EstItemQry.RecordCount/20)=0 then begin

    > exit;

    > end else begin

    > While ((QrbqTotEulFm.estitemqry.RecordCount mod 20) + 1) <> 20 do begin

    > QrbqTotEulFm.QRSubDetail1.Show;

    > end;

    > end;

    > ==================================

    > 그러니까 이말은 레코드 개수가 20배수 이면( 참고로 가로출력일 경우 한페이지당

    > 20개 정도가 출력이 되서, 최고 한도를 20으로 잡았어요.).

    > 그렇지 않을경우 20으로 남은 나머지가 20이 될때까지 Band를 더 출력이

    > 되게 하려구 해본건데요.

    > 이 코딩이 맞는지요.

    > 또, 틀리다면 어떻게 해결해야 할지요.

    >

    > 고수님들의 답변부탁드립니다.

    > 꼭

    >

    >

    >

    >

    >

    >

    >

    >

    >

    >

    >

    >

  • Profile
    김송희 2001.05.29 19:23
    제 질문에 답변이 없어서 넘 걱정했는데요.

    먼저 고마워요.

    근데 제가 초보라서 Demos의 QReport에 나와있는 예제를 보고 나름대로

    구현했거덩요.

    그룹핑은 제가 원하는 결과대로 돼었구요.

    문제는요.

    원래 DetailBand는 Query든 Table든 거기있는 Record수 만큼만 출력이 돼구

    나머지는 여백으로 남아서 레포트라고 보기에 너무 미흡해 보여서 말이죠.

    남은공간도 레코드가 있는 공간처럼 QrShape나 Frame속성을 이용해서

    선을 그려놓고 싶거덩요.

    Detailband에 QrShape로 구분선을 그려놓으면 그 밴드가 출력이 될 때마다

    그선이 이어져서 마치 한 선으로 그려놓은 것 처럼 보이거든요.

    그러니까 DetailBand가 출력이 않돼면 나머지는 그냥 여백으로 남게 된다는 거죠.

    제 설명이 너무 부족한것 같네요.

    --- 혹시 레코드가 없더라도 DetailBand를 강제로 출력할 수 있는 방법을

    알 수 없을까요.

    부탁드려요. ^^;





    김한 wrote:

    > 제가 보기에는 님의 group의 개념이 아직 부족한 것 같은데요..

    > 테이블과 쿼리를 같이 쓴 이유는 모르겠지만.

    > 실제 테이블이 두개 이상을 썼다면, 제가 아는 한도에서 리포트의 그룹핑은

    > 안되요. 저도 여러 가지 생각을 해 보았지만.

    > 한 테이블에 있는 컬럼들이 쭉쭉해서 계속 나오기 때문에 그 얘들을 나누기는

    > 무척 힘들어요.

    > compositereport를 한 번 써 보세요.....

    > 한 페이지에 그룹 헤더를 주고 다른 페이지에 컬럼들을 주어서

    > 거냥 붙여 쓰는 거죠...

    >

    >

    > 김송희 wrote:

    > > QuickReport를 이용해서 출력을 하려고 합니다.

    > >

    > > 책을 찾아봐도 없고, 혹시 이런 문제를 겪었던 고수님들이 있을까해서,

    > > 조언을 구하고자 이렇게 ...... 부탁드려요.

    > >

    > > Grouping을 해서 출력물을 얻으려구여.

    > > Detail 밴드를 Table와 연결하구요, SubDetail을 Query와 연결해서

    > > 결과를 얻었거든요. 참고로 DetailBand의 ForceNewPage(페이지 강제바꿈)를 true로

    > > 했더니 일단은 원하는 출력물이 나오더군요.

    > > 그런데 문제는,

    > > Query의 레코드 수 만큼만 SubDetailBand가 출력이 되잖아요(원래는요).

    > > 만약 레코드가 적으면 너무 많은 공간이 여백으로 남아서 보기 않좋아서요.

    > > 초보인 제가 궁리를 해봤거든요. 그래서 아래와 같이 코딩을 했는데,

    > > =================================

    > > If (EstItemQry.RecordCount/20)=0 then begin

    > > exit;

    > > end else begin

    > > While ((QrbqTotEulFm.estitemqry.RecordCount mod 20) + 1) <> 20 do begin

    > > QrbqTotEulFm.QRSubDetail1.Show;

    > > end;

    > > end;

    > > ==================================

    > > 그러니까 이말은 레코드 개수가 20배수 이면( 참고로 가로출력일 경우 한페이지당

    > > 20개 정도가 출력이 되서, 최고 한도를 20으로 잡았어요.).

    > > 그렇지 않을경우 20으로 남은 나머지가 20이 될때까지 Band를 더 출력이

    > > 되게 하려구 해본건데요.

    > > 이 코딩이 맞는지요.

    > > 또, 틀리다면 어떻게 해결해야 할지요.

    > >

    > > 고수님들의 답변부탁드립니다.

    > > 꼭