Q&A

  • query한 값을 배열에 넣고 그 값을 퀵리포트로 출력 하고싶은데..
배열의 값을 퀵리포트로 찍고 싶은데요... 잘 안돼내요....
예를 들어서요


with query1 do
    begin
         Close;
         Sql.Clear;
         Sql.Add('Select * from account');
         Open;
         First;
         if RecordCount > 0 then
         begin
             i := 0;                
             setlength(wert,RecordCount,3);  
             while not Eof do
              begin
                        xQRLabel[i,0]:= TQRLabel.Create(Self);
                        //xQRLabel[i,0].Parent :=self;

                        wert[i, 0] := FieldByName('ym').AsString;
                        wert[i, 1] := FieldByName('k0').AsString;
                        wert[i, 2] := FieldByName('k9').AsString;}
                        inc(i);
                        Next;

               end;
               try
               //QuickReport2.stringGrid:= wert;
               //QuickReport2.QRLabel1.Caption[i]:= wert[i,0];
               //QuickReport2.QRLabel2.Caption[i]:= wert[i,1];
               //QuickReport2.QRLabel3.Caption[i]:= wert[i,2];
               QuickReport2.Preview;
               finally
               xQRLabel[i,0].Free;
               QuickReport2:= nil;
               end;


         end;
    end;


위을 보기처럼요 ....query로 select한 값을요.. 배열에 집어넣고 ,,, 그 값을 퀵레포드의 라벨에 찍고 싶은 데요,, 제대로 되지 않습니다... 초보여서요..... 도와 주세요...
1  COMMENTS
  • Profile
    열심히 2002.12.13 21:53
    왜 배열에 집어넣어서 찍어주는지는 모르겠지만요..

    일단은 아래와 같은 작업은 디테일부부분에 넣으면 될텐데..

    그부분이 아닌곳에 찍고 싶으시다면....

    찍으려시는 밴드에 beforeprint 이벤트에서 아래를 처리해주시면 될것같습니다.

    약간의 수정은 필요하겠죠..여러 레코드를 찍으시려면 적당한 크기의

    QRMEMO 컴퍼넌트를 세개 올려주시고 줄바꾸면서 넣어주시면 될듯

    for i := 0 to Query1.RecordCount do
      begin
      QRMemo1.Lines.Add(Query1.FieldByName('ym').AsString + #13#10;
      QRMemo2.Lines.Add(Query1.FieldByName('k0').AsString + #13#10;
      QRMemo3.Lines.Add(Query1.FieldByName('k9').AsString + #13#10;
      end;
      
    이렇게 넣어주면 뒤지 않을까요?? 이걸원하신지 모르겠네요..