Q&A

  • //질문// qrlabel 동적생성시 name은???
퀵 리포트위에 qrlabel을 필드 갯수 만큼 생성하고...

쿼리해온 각 값들을 뿌려줄려구 합니다...

for문을 이용해서 qrlabel들을 생성했는데여...

각 label들의 이름을 알아야 쿼리해온 값들을 뿌려줄수있을 텐데여...

name은 어떻게 결정되는지...

코딩상으로 어떻게 적어야 할지 몰라서여...

걍~ name으로 적으니 에러가 나네엽...



procedure TForm2.BitBtn1Click(Sender: TObject);

var

qrl : TQRLabel;

i : integer;

begin



for i := 2 to query1.FieldCount -1 do

begin

qrl := tqrlabel.create(self);



with qrl do

begin

visible := false;

parent := self;

left := 166;

top := I * 60 ;

width := 64;

height := 26;

name := 'qrlabel'+inttostr(i);

'qrlabel'+inttostr(i).caption := //어쩌구 하니까 에러남

//에러내용 : 레코드나 오브젝트,클래스 required

visible := true;

end

end;





form3.QuickRep1.Preview;

end;









항상 도움주시는 분들 감사하구여...

꼭 좋은 답변 부탁드립니다.....

3  COMMENTS
  • Profile
    강경중 2000.06.09 19:59
    young wrote:

    > 퀵 리포트위에 qrlabel을 필드 갯수 만큼 생성하고...

    > 쿼리해온 각 값들을 뿌려줄려구 합니다...

    > for문을 이용해서 qrlabel들을 생성했는데여...

    > 각 label들의 이름을 알아야 쿼리해온 값들을 뿌려줄수있을 텐데여...

    > name은 어떻게 결정되는지...

    > 코딩상으로 어떻게 적어야 할지 몰라서여...

    > 걍~ name으로 적으니 에러가 나네엽...

    >

    > procedure TForm2.BitBtn1Click(Sender: TObject);

    > var

    > qrl : TQRLabel;

    > i : integer;

    > begin

    >

    > for i := 2 to query1.FieldCount -1 do

    > begin

    > qrl := tqrlabel.create(self);

    >

    > with qrl do

    > begin

    > visible := false;

    > parent := self;

    > left := 166;

    > top := I * 60 ;

    > width := 64;

    > height := 26;

    > name := 'qrlabel'+inttostr(i);

    > 'qrlabel'+inttostr(i).caption := //어쩌구 하니까 에러남

    > //에러내용 : 레코드나 오브젝트,클래스 required

    > visible := true;

    > end

    > end;

    >

    >

    > form3.QuickRep1.Preview;

    > end;

    >

    >

    >

    >

    > 항상 도움주시는 분들 감사하구여...

    > 꼭 좋은 답변 부탁드립니다.....

    안녕하십니까 위의 소스를 보니까 틀린 부분이 없는듯 합니다.

    그리고 제가 위의 소스로 테스트 해본바 로는 잘 됩니다.

    다시 한번 해 보십시요

    혹시 같은 이름이 생성되는지 확인 해보시기 바랍니다.

    아래는 제가 추천하는 생성 방법입니다.



    // 밴드에 속한 TQRLabel 추가

    with 밴드.AddPrintable(TQRLabel) do

    begin

    Name := 'QRLabel' + inttostr(숫자);

    end;

    // 추가한 TQRLabel 정의

    with 밴드 do

    begin

    for i := 0 to ControlCount - 1 do

    begin

    if Controls[i] is TQRLabel then

    begin

    with TQRLabel(Controls[i]) do

    begin

    Caption := '켑션'++ inttostr(숫자);

    Top

    Left

    Width

    Height

    end;

    end;

    end;

    end;

  • Profile
    강경중 2000.06.09 19:59
    young wrote:

    > 퀵 리포트위에 qrlabel을 필드 갯수 만큼 생성하고...

    > 쿼리해온 각 값들을 뿌려줄려구 합니다...

    > for문을 이용해서 qrlabel들을 생성했는데여...

    > 각 label들의 이름을 알아야 쿼리해온 값들을 뿌려줄수있을 텐데여...

    > name은 어떻게 결정되는지...

    > 코딩상으로 어떻게 적어야 할지 몰라서여...

    > 걍~ name으로 적으니 에러가 나네엽...

    >

    > procedure TForm2.BitBtn1Click(Sender: TObject);

    > var

    > qrl : TQRLabel;

    > i : integer;

    > begin

    >

    > for i := 2 to query1.FieldCount -1 do

    > begin

    > qrl := tqrlabel.create(self);

    >

    > with qrl do

    > begin

    > visible := false;

    > parent := self;

    > left := 166;

    > top := I * 60 ;

    > width := 64;

    > height := 26;

    > name := 'qrlabel'+inttostr(i);

    > 'qrlabel'+inttostr(i).caption := //어쩌구 하니까 에러남

    > //에러내용 : 레코드나 오브젝트,클래스 required

    > visible := true;

    > end

    > end;

    >

    >

    > form3.QuickRep1.Preview;

    > end;

    >

    >

    >

    >

    > 항상 도움주시는 분들 감사하구여...

    > 꼭 좋은 답변 부탁드립니다.....



    안녕하십니까 위의 소스를 보니까 틀린 부분이 없는듯 합니다.

    그리고 제가 위의 소스로 테스트 해본바 로는 잘 됩니다.

    다시 한번 해 보십시요

    혹시 같은 이름이 생성되는지 확인 해보시기 바랍니다.

    아래는 제가 추천하는 생성 방법입니다.



    // 밴드에 속한 TQRLabel 추가

    with 밴드.AddPrintable(TQRLabel) do

    begin

    Name := 'QRLabel' + inttostr(숫자);

    end;

    // 추가한 TQRLabel 정의

    with 밴드 do

    begin

    for i := 0 to ControlCount - 1 do

    begin

    if Controls[i] is TQRLabel then

    begin

    with TQRLabel(Controls[i]) do

    begin

    Caption := '켑션'++ inttostr(숫자);

    Top

    Left

    Width

    Height

    end;

    end;

    end;

    end;

  • Profile
    cos 2000.05.10 19:37
    young wrote:

    > 퀵 리포트위에 qrlabel을 필드 갯수 만큼 생성하고...

    > 쿼리해온 각 값들을 뿌려줄려구 합니다...

    > for문을 이용해서 qrlabel들을 생성했는데여...

    > 각 label들의 이름을 알아야 쿼리해온 값들을 뿌려줄수있을 텐데여...

    > name은 어떻게 결정되는지...

    > 코딩상으로 어떻게 적어야 할지 몰라서여...

    >

    QRLabel 을 먼저 맹글고.. 후에 필드값을 뿌리지 마시고..

    쿼리 오픈후에 for x:=0 to querytable.FieldCount -1 do

    begin

    MyLabel[x] := TQrLabel.Create;

    MyLabel[x].Caption := QueryTable.Fields[x].asString;

    end;

    이런식으로 하시는건 어때요 ..