Q&A

  • quickreport에서 데이타베이스를 사용하지 않고 값출력 어떻게 해요
안녕하세요 . 아직 델파이의 델도 모르는 왕초보 입니다.

제가 c/s를 공부하다가  

quickreport를 이용하여 보고서를 만들려고 하는데, 쉽지가 않네요 좀 도와주세요..

내용은

server에서 넘어온 데이타를 배열에 저장하고 그 배열에 있는 값을
quickreport에 뿌리는 겁니다.

근데 dataset을 사용하는것이 아니라 배열을 사용하여 뿌릴려니까.

배열에 내용은
type
EmpTable = record
     Ename :string;
     Ephone : string;
end;

var
  EmpData : array [0..3] of EmpTable

begin
      EmpData[0].Ename := '홍당무';
      EmpData[0].Ephone := '011-100-1114';

                    .
                    .
                    .

      EmpData[2].Ename := '홍길동';
      EmpData[2].Ephone := '011-100-1004';


      for i := 0 to 3 do begin
           tqrlable1.caption := EmpData[i].Ename;
           tqrlable2.caption := EmpData[i].Ephone;
     end;
            
이렇게 하였을 경우 데이타는 3개가 들어있찌만 정작 나오는것은 마지막 부분만 나오거든여..
어떻게 라벨을 계속 뿌리는 방법이 없을까요
------------------------------------------------------------
|       이        름          |                    전화 번호                      |
------------------------------------------------------------
|       홍길동 (tqrlable1)|                     011-100-1004(tqrlable2)  |
------------------------------------------------------------


고수님들 답변 부탁 드립니다....
3  COMMENTS
  • Profile
    gudwhrla 2002.02.27 19:28
    QuickRep의 NeedData를 이용하세요

    procedure TForm2.QuickRep1NeedData(Sender: TObject; var MoreData: Boolean);
    begin

    end;



  • Profile
    박상용 2002.02.27 20:07
    제가 NeedData를 잘몰라서 그러는데 간단한 예제를 들어주시면 안될까요?

    아직 델파이에는 문외한이라서..쩝

    그럼 부탁드립니다.


  • Profile
    gudwhrla 2002.02.27 20:34
    var
    <QuickRep의  DetailBand1의 QRLabel1에 1부터 10 까지 찍는예제>
    아래예제를 응용하시면 됩니다.



    i:Integer;

    procedure TForm1.QuickRep1NeedData(Sender: TObject; var MoreData: Boolean);
    begin
       Inc(i);

       if i <> 11 then MoreData := True  //계속 인쇄할 데이터가 있는지 체크
       else exit;

       QRLabel1.Caption := IntToStr(i);  
    end;

    procedure TForm1.QuickRep1BeforePrint(Sender: TCustomQuickRep;
      var PrintReport: Boolean);
    begin
       i:=0;  //Print시작 전에 초기화
    end;