Q&A

  • 퀵레포트에서 Detail 밴드의 반복?
* 사용환경 : 델파이5 / Windows 2000





퀵레포트에서 Detail 밴드로 주소를 출력하는 프로그램을 짜고 있습니다.

그런데 하나의 data만 출력됩니다.



고객폼에서 dbgrid로 data를 출력하고 있구요..

그 dbgrid의 data를 퀵레포트로 출력하는 프로그램입니다.



1. 고객폼

dbgrid로 고객정보 출력

query는 datamodule에서 수행



2. dataModule

with DataModule1.customerQuery do

begin

Close;

SQL.Clear;

//---------------------------------------------

SQL.Add('select CustomerID as 고객번호 , Name as 이름,BirthDay as 생일, ');

SQL.Add('Telephone as 전화번호, handphone as 핸드폰, sex as 성별,');

SQL.Add('parentsName as 부모이름, Memo as memo, point as point,');

SQL.Add('zipCode as 우편번호, Address as 주소');

SQL.Add('from "customer.db"');

//-----------------------------------------------

Open;

end;



이런 query를 작성 실행했는데 아무런이상없이 결과가 잘 나타납니다.



3. 출력폼

퀵레포트를 폼에 배치하고

band에서 hasDetail 을 true로 설정

퀵레포트위의 detail band위에 TQRDBText를 배치햇습니다

TQRDBText의 dataSet 은 위에 dataModule에 있는 customerQuery를 연결시켜 주었구요

dataField는 이름, 주소.. 이런 것을을 주었습니다.



4. 이렇게 해놓고.... 고객폼에 버튼을 추가하구요

printFrm.QuickRep1.Preview; 이렇게 주었습니다.



결과

-> dbgrid에 선택되어있는 고객 정보 하나만 출력이됩니다..

전체고객이 출력되는것이 아니라.. -_-;

preview뿐만 아니라 실제 출력두요..

-> dbgrid에서 다른 고객을 선택하고 버튼을 눌러보면 그 고객정보만 보이네요..



-> 그래서 dbgrid를 지우고 query를 바로 연결해서 출력해보았습니다.

제일처음의 고객만 출력이 됩니다.





어떻게 하면..... query에 있는 모든 고객을 인쇄 할수 있을까요?

1  COMMENTS
  • Profile
    장지용 2001.12.14 01:16


    "QuickRep1.DataSet"에 "customerQuery"를 연결시키면 됩니다.



    김상수 wrote:

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

    >

    >

    > 퀵레포트에서 Detail 밴드로 주소를 출력하는 프로그램을 짜고 있습니다.

    > 그런데 하나의 data만 출력됩니다.

    >

    > 고객폼에서 dbgrid로 data를 출력하고 있구요..

    > 그 dbgrid의 data를 퀵레포트로 출력하는 프로그램입니다.

    >

    > 1. 고객폼

    > dbgrid로 고객정보 출력

    > query는 datamodule에서 수행

    >

    > 2. dataModule

    > with DataModule1.customerQuery do

    > begin

    > Close;

    > SQL.Clear;

    > //---------------------------------------------

    > SQL.Add('select CustomerID as 고객번호 , Name as 이름,BirthDay as 생일, ');

    > SQL.Add('Telephone as 전화번호, handphone as 핸드폰, sex as 성별,');

    > SQL.Add('parentsName as 부모이름, Memo as memo, point as point,');

    > SQL.Add('zipCode as 우편번호, Address as 주소');

    > SQL.Add('from "customer.db"');

    > //-----------------------------------------------

    > Open;

    > end;

    >

    > 이런 query를 작성 실행했는데 아무런이상없이 결과가 잘 나타납니다.

    >

    > 3. 출력폼

    > 퀵레포트를 폼에 배치하고

    > band에서 hasDetail 을 true로 설정

    > 퀵레포트위의 detail band위에 TQRDBText를 배치햇습니다

    > TQRDBText의 dataSet 은 위에 dataModule에 있는 customerQuery를 연결시켜 주었구요

    > dataField는 이름, 주소.. 이런 것을을 주었습니다.

    >

    > 4. 이렇게 해놓고.... 고객폼에 버튼을 추가하구요

    > printFrm.QuickRep1.Preview; 이렇게 주었습니다.

    >

    > 결과

    > -> dbgrid에 선택되어있는 고객 정보 하나만 출력이됩니다..

    > 전체고객이 출력되는것이 아니라.. -_-;

    > preview뿐만 아니라 실제 출력두요..

    > -> dbgrid에서 다른 고객을 선택하고 버튼을 눌러보면 그 고객정보만 보이네요..

    >

    > -> 그래서 dbgrid를 지우고 query를 바로 연결해서 출력해보았습니다.

    > 제일처음의 고객만 출력이 됩니다.

    >

    >

    > 어떻게 하면..... query에 있는 모든 고객을 인쇄 할수 있을까요?