Q&A

  • Qreport에서 출력하는데
아래 질문을 올렸는데 제가 수준이 낮아서 인지 문제를 잘 설명 못해서 인지 도움이 안되어서

다시한번 글을 올림니다. 도사님들의 많은 도움 부탁드립니다.



퀵리포트에 테이블이 연결되어 있음.



우리가 보통 데이터을 디비에 추가할때 사용자가 만든 입력폼을 쓰게 됩니다.

그폼에 서 수정도 하고 추가도하고...

대충 어떤 폼인지 아시겠죠?



그런 폼에서 그러니깐 레코드를 선택해서 수정버튼을 클릭하면 디비에디트에 데이터를 보여주자나요 그상태에서 출력버튼을 클릭하면 선택된 현재보고 있는 레코드만 퀵리포트에서

출력하려고 하는데



퀵리포트.print 하면 퀵리포트에 연결된 테이블에 있는 모든 레코드가 다 프린트 된다는

이야기이죠.



제가 원하는건 선택된 레코드만 출력하게 하는건데.



제가 퀵리포트에 대해서 아는거 없어서 어떻게 해야 할지 모르겠는데

저보다 조금이라도 더 많이 아시는 분이라면 저좀 도와주세요.-.-;







2  COMMENTS
  • Profile
    이재식 2000.11.23 05:51
    안녕하세요?



    흠~~. 현재 선택된 한개의 레코드만 출력하려고 하는군요.

    처음부터 그렇게 말씀하시지... ^^



    맞습니다. 퀵레포트는 레코드커서가 처음으로 이동하여 처음부터 시작하기때문에

    현재 선택한 레코드 1개만 출력하려면 약간의 기교를 부려야 합니다.



    이렇게 하세요

    여러 방법이 있지만, 그중 한 방법을 말씀드리겠습니다.

    퀵레포트의 DataSet속성에 아무것도 연결시키지 마세요.

    물론 DetailBand에 QRDBText를 올려놓으시고, 해당 필드를 연결시켰겠죠?...



    DetailBand의 BeforePrint이벤트에 다음처럼 코딩하세요

    table1.locate('name', table1.fieldbyname('name').asString, []) ;

    -> 즉, 출력하기전에 현재 사용자가 선택한 레코드로 이동합니다.



    DetailBand의 AfterPrint이벤트에 다음처럼 코딩하세요.

    table1.last ;



    끝입니다.

    그럼...



  • Profile
    홍병주 2000.11.27 18:26
    이재식 wrote:

    > 안녕하세요?

    >

    > 흠~~. 현재 선택된 한개의 레코드만 출력하려고 하는군요.

    > 처음부터 그렇게 말씀하시지... ^^

    >

    > 맞습니다. 퀵레포트는 레코드커서가 처음으로 이동하여 처음부터 시작하기때문에

    > 현재 선택한 레코드 1개만 출력하려면 약간의 기교를 부려야 합니다.

    >

    > 이렇게 하세요

    > 여러 방법이 있지만, 그중 한 방법을 말씀드리겠습니다.

    > 퀵레포트의 DataSet속성에 아무것도 연결시키지 마세요.

    > 물론 DetailBand에 QRDBText를 올려놓으시고, 해당 필드를 연결시켰겠죠?...

    >

    > DetailBand의 BeforePrint이벤트에 다음처럼 코딩하세요

    > table1.locate('name', table1.fieldbyname('name').asString, []) ;

    > -> 즉, 출력하기전에 현재 사용자가 선택한 레코드로 이동합니다.

    >

    > DetailBand의 AfterPrint이벤트에 다음처럼 코딩하세요.

    > table1.last ;

    >

    > 끝입니다.

    > 그럼...

    >



    답변 감사합니다.

    정말 설명해주신대로 1장만 출력이 되는데 또한가지 문제가 있어요.

    그게말이죠 이 문제를 해결하기 전부터 그러니까 퀵리포트가 모든 레코드를

    좌악 출력할때부터 있던 문제인데 꼭 첫페이지는 출력이 안되고 빈종이만 나와여.

    그러니까 큐밴드디테일에 설정한 내용은 안나오고 큐밴드타이틀에 설정한 예를 들어

    프린트되는 날짜와 제목만 나오고 디테일이 안나오는 빈페이지가 한장 나온다음에

    그다음부터 테이블의 처음 레코드 부터 출력이 되거든요.

    이제 한장씩 뽑을수 있게되는 길이 열였는데 문제의 그 빈 첫페이지만 나오니 어떻게하죠?