Q&A

  • 질문] Quick Report 에서 다음 페이지 넘길때..
아래는 다른 사이트 게시판에 올라와 있는 글인데요..



--------------------------------------------------------------------

[답장] 리포트에 12라인만 출력하는 방법

델 초보 wrote:

> * 사용환경 : 델파이5 / Windows 98

> * 에러 메시지 :

> 델 초보 입니다.

> QuickReport에서 한 페이지에 12라인 만 출력하는 방법을

> 아시는 고수님의 협조 부탁드립니다.

> 좋은 하루 되세요.

>

>

안녕하세요? 허준 입니다.



간단한 방법은 Detail Band의 사이즈를 임의로 늘려서 맞추면 됩니다.



그렇지 않고 코딩으로 구현 하려면 OnNeedData 이벤트에서 레코드 카운트가



12 이면 NewPage(); 하시면 됩니다.

---------------------------------------------------------------------------



레코드 카운트가 어느 객체의 속성이져?

QuickRep 인가요.. 아님 detailband 인가요.. ^^;;



그리구 제가 질문드리는 거는요..

지금 제가 짜고 있는 프로그램에서 퀵레포트로 보이는 부분에서 한페이지 넘어가는

내용이 나오는곳에서 계속 에러가 나는데..

(한 페이지 이내에 모든 레코드가 보이는 곳에서는 에러가 안남)



이문제를 해결하는데 위에 내용이 도움이 될까 해서입니다.

제가 전에 C++ Builder 5 로 퀵레포트 사용할때는 잘 되던 내용인데

델파이4 에서 하려니깐 잘 안되네요..ㅠㅠ



퀵레포트에서 한페이지에 원하는 만큼의 레코드만 보여줄수 있게 (코딩으로)

하고 나머지 내용은 다음 페이지로 넘기는 방법 아시는분 자세히좀 알켜주세요.. ^^



그럼 즐푸하세요.

3  COMMENTS
  • Profile
    블랙봉 2001.07.06 01:47
    이렇게 하면 되지 않을까요?

    detail band의 afterprint 이벤트에서..



    procedure TForm1.QRBand1AfterPrint(Sender: TQRCustomBand;

    BandPrinted: Boolean);

    begin

    Inc(iRecordCount);

    if iRecordCount = iMaxRecord then

    begin

    iRecordCount := 0;

    QuickRep1.NewPage;

    end;

    end;





    김종화 wrote:

    > 아래는 다른 사이트 게시판에 올라와 있는 글인데요..

    >

    > --------------------------------------------------------------------

    > [답장] 리포트에 12라인만 출력하는 방법

    > 델 초보 wrote:

    > > * 사용환경 : 델파이5 / Windows 98

    > > * 에러 메시지 :

    > > 델 초보 입니다.

    > > QuickReport에서 한 페이지에 12라인 만 출력하는 방법을

    > > 아시는 고수님의 협조 부탁드립니다.

    > > 좋은 하루 되세요.

    > >

    > >

    > 안녕하세요? 허준 입니다.

    >

    > 간단한 방법은 Detail Band의 사이즈를 임의로 늘려서 맞추면 됩니다.

    >

    > 그렇지 않고 코딩으로 구현 하려면 OnNeedData 이벤트에서 레코드 카운트가

    >

    > 12 이면 NewPage(); 하시면 됩니다.

    > ---------------------------------------------------------------------------

    >

    > 레코드 카운트가 어느 객체의 속성이져?

    > QuickRep 인가요.. 아님 detailband 인가요.. ^^;;

    >

    > 그리구 제가 질문드리는 거는요..

    > 지금 제가 짜고 있는 프로그램에서 퀵레포트로 보이는 부분에서 한페이지 넘어가는

    > 내용이 나오는곳에서 계속 에러가 나는데..

    > (한 페이지 이내에 모든 레코드가 보이는 곳에서는 에러가 안남)

    >

    > 이문제를 해결하는데 위에 내용이 도움이 될까 해서입니다.

    > 제가 전에 C++ Builder 5 로 퀵레포트 사용할때는 잘 되던 내용인데

    > 델파이4 에서 하려니깐 잘 안되네요..ㅠㅠ

    >

    > 퀵레포트에서 한페이지에 원하는 만큼의 레코드만 보여줄수 있게 (코딩으로)

    > 하고 나머지 내용은 다음 페이지로 넘기는 방법 아시는분 자세히좀 알켜주세요.. ^^

    >

    > 그럼 즐푸하세요.

  • Profile
    김종화 2001.07.06 02:16
    우선 답변 감사드리구요.. 근데. 님이 알켜주신 방법으로 해도. 에러나네요.ㅠㅠ

    에러 메시지는 다음과 같구요.



    Project Projec1.exe raised exception class EFCreateError with message 'Cannot

    create file !!'. Process stopped. Use Step or Reun to continue.



    Exception EAccessViolation in module Vcl40.bpl at 2000354D.

    Access violation at address 2000454D. Read of address 2000454D.



    제 프로그램에서 현재 퀵레포트로 출력시 한페이지를 넘어가는 분량을 보일경우

    위와 같은 에러가 나서 그걸 페이지를 나눠서 해결해 보려구 한것인데.

    안되네요..ㅠㅠ

    다른 방법이 없을까요? 한번더 부탁드리겠습니다. 꾸벅..





    블랙봉 wrote:

    > 이렇게 하면 되지 않을까요?

    > detail band의 afterprint 이벤트에서..

    >

    > procedure TForm1.QRBand1AfterPrint(Sender: TQRCustomBand;

    > BandPrinted: Boolean);

    > begin

    > Inc(iRecordCount);

    > if iRecordCount = iMaxRecord then

    > begin

    > iRecordCount := 0;

    > QuickRep1.NewPage;

    > end;

    > end;



  • Profile
    블랙봉 2001.07.06 02:28
    전 단지 몇 개의 레코드를 찍고 다음 페이지로 넘기는 방법을 이야기 하시는 줄알았는데..

    그게 아니고 에러를 피하기 위해 그런 방법을 물어보신 듯하네요.

    솔직히 무슨 이유 때문인지는 잘 모르겠네요.



    EFCreateError is raised when an application unsuccessfully attempts to create a file. This can occur, for example, if a user specifies an invalid file name, or specifies the name of an existing file that cannot be overwritten because the user lacks appropriate access permission.



    델파이 헬프에서는 위와 같이 나와있는데.. 퀵레포트하고 file creation하고 무슨 상관이 있는지...

    혹시 퀵레포트나 밴드들에 이벤트가 걸려있으면 그 부분을 한번 살펴보시죠.

    도움을 못 드려서 정말 죄송...



    김종화 wrote:

    > 우선 답변 감사드리구요.. 근데. 님이 알켜주신 방법으로 해도. 에러나네요.ㅠㅠ

    > 에러 메시지는 다음과 같구요.

    >

    > Project Projec1.exe raised exception class EFCreateError with message 'Cannot

    > create file !!'. Process stopped. Use Step or Reun to continue.

    >

    > Exception EAccessViolation in module Vcl40.bpl at 2000354D.

    > Access violation at address 2000454D. Read of address 2000454D.

    >

    > 제 프로그램에서 현재 퀵레포트로 출력시 한페이지를 넘어가는 분량을 보일경우

    > 위와 같은 에러가 나서 그걸 페이지를 나눠서 해결해 보려구 한것인데.

    > 안되네요..ㅠㅠ

    > 다른 방법이 없을까요? 한번더 부탁드리겠습니다. 꾸벅..

    >

    >

    > 블랙봉 wrote:

    > > 이렇게 하면 되지 않을까요?

    > > detail band의 afterprint 이벤트에서..

    > >

    > > procedure TForm1.QRBand1AfterPrint(Sender: TQRCustomBand;

    > > BandPrinted: Boolean);

    > > begin

    > > Inc(iRecordCount);

    > > if iRecordCount = iMaxRecord then

    > > begin

    > > iRecordCount := 0;

    > > QuickRep1.NewPage;

    > > end;

    > > end;

    >