Q&A

  • 퀵리포트 질문?
정형화된 틀이 원래 2장이상인 레포트를 작성하고 있는데요

최소 2장은 나와야 합니다.

님 말씀대로 detail band에 데이타들을 넣어 두고.. 있는데요

내용이 많아지니 preview를 하니 첫장에는 타이틀만 덜렁 찍히고

2장째에 내용이 더덕 더덕. 그나마두 밑에는 잘려서..대신 페이지번호는 또 나오고.. ㅠㅠ...

이러네요. 해결 방법좀.. 알려주세요..

또 한가지 질문은 QRLabel에 데이타를 찍고 있는데요.(dbgrid에서 선택된 데이타 넘겨받아서요)

COLB 데이타를 가져와서 출력하는 부분이 있는데

이게 레코드별로 양이 다 다르게 표현하고 싶습니다. 딱 박스를 만들어서 거기안에만 넣는게 아니고

홍길동은 한줄, 김길동은 10줄.. 이런식으로요.

일단 WORDWRAP을 TRUE로 해놓긴 했는데. AUTOSIZE를 TRUE로 해도 내용이 다 안나옵니다

크기를 정해놓기도 애매하고..

마지막으로 위의 QRLABEL의 프레임을 TRUE로 해놓으면 박스안에 데이타가 들어간것처럼 할 수 있는데

상자안에 여백조정이 가능한지요

지금은 여백이 전혀없어서.. 답답한 느낌이어서요.
2  COMMENTS
  • Profile
    김병윤 2008.03.29 00:14




    답변이 늦었네요...

    1. 정형화된 틀이 원래 두장인 출력물...
    퀵레포트에선 지양하셔야 할...출력물 형식이네요...두장이 서로다른 형식의 서식이라면
    덜렁 한장의 형식만 표현하는 퀵레포트에는 맞지 않습니다.
    다행이 두장이 유사하나 조금 다른 부분이 있는 것이라면 모르지만 그렇지 않을경우
    출력버튼을 두개를 만들어 각각의 레포트를 만드시는 것이 더 편하실꺼에요...
    뭐 사용자가 보기에는 좀 이상한 작동일지라도..;;

    그래도 두장의 출력물을 한 퀵레포트에 출력하시려고 한다면
    레포트에 첫장과 둘째장을 다 그리고 그 장에 관련사항만 보여줬다 숨겼다 하는 수 밖에 없습니다.
    (QRLabel의 Enable속성을 사용하거나
    QRShape의 BringToFront, SendToBack 을 이용해서 덮어씌우는 방법등을 이용해서...)


    2. Detail Band 내용이 많아지니 Preview하면 첫장에 Title만 덜렁 두장째에 내용이 더덕더덕 그것도 잘려서..
    디테일 밴드는 최대한 높이를 줄이셔야 합니다.
    (뭐 무척 긴 내용을 적어 넣는다고 하더라도 한줄한줄 끊어서 넣는 방식이라던지..)

    그렇지 않으면 출력될 수 있는 영역을 벗어나 다음 페이지에 출력이 되죠
    디테일 밴드 하나에 너무 광범위한 내용이 많이 들어가면 말씀하신 현상이 발생할 수 있죠
    그래서 가급적이면 읽어올 값(필드)이 있다면 그 것이 한줄에 구현되고 그 내역이
    아래로 쭉 연결되서 나올 수 있도록 미리 레포트의 양식을 염두에 두어야 합니다.


    3. 딱 박스를 만들어서 거기안에만 넣는게 아니고 홍길동은 한줄, 김길동은 10줄.. 이런식으로요.
    박스를 만들어 그 곳에 데이터를 넣는것은 좋은데요...여기도 한줄~열줄~무한정... 이거 안됩니다.
    그럼 아예 한줄한줄 별로 데이터를 찍거나..어느정도의 한도가 있어야 합니다.
    그렇지 않으면 또..퀵레포트의 출력 영역을 벗어나는 거대한 디테일 밴드가 만들어지겠죠...

    뭐 10줄정도 까지만 표기해주는 제약을 준다던지
    ...꼭 다 표기가 되어야 한다면 한줄 한줄을 각각 디테일 밴드에 표기해주셔야 합니다.

    일단은 표기는 QRLABEL의 AutoSize를 False로 하시고
    퀵레포트의 QuickRepNeedData 이벤트를 사용하여 각각의 글자 길이에 따라 적절하게 QRLABEL의
    Height와 DetailBand의 Height를 조정해주는 코딩이 필요할 듯 합니다.


    4. QRLABEL의 프레임을 TRUE로 하면 박스안에 데이타가 들어간것처럼 할 수 있는데 상자안에 여백조정이 가능한지요?
    ^^;; 불가능 합니다.
    여백을 주시려면 QRShape를 이용해 선이나 박스를 이용해서 테두리가 들어간 것처럼 깔아두고 사용하는 수밖에 없습니다.


    ※ 퀵레포트가 단순한 형태의 보고서를 만들때는 유용하지만 좀 복잡한 형태의 보고서를 만들때는 좀 쓸데없는
    작업까지 해야하는 경우가 있죠...
    질문하신 내용과 관련해서 조금이나 참고하시라고 예제소스 올려둡니다.
    [QReport에서 DataSet을 지정하지 않고 QuickRepNeedData 이벤트를 이용해서 NewPage와 글자 길이에 따라 QRLabel의 높이(Height)와 DetailBand의 높이를 조정해주는 예제 입니다.]

    소스는 Delphi5에서 작업한 내용입니다.
  • Profile
    델델 2008.03.29 00:34



    너무나 상세한 답변 감사드립니다. ^^
    며칠동안 답변도 없고. 고민 고민 하다가 TQRCompositeReport를 사용해보란 얘기를 듣고 응용해서 겨우 출력 완성 했습니다. 물론 100% 만족은 못하지만 안된느건 안되니까요..
    다시한번 감사드려요