Q&A

  • ActiveForm에서 퀵레포트사용하기...ㅡㅡ^


얼마전에도 질문을 올렸습니다만.... 퀵레포트에 관한 주질문은 아니었기에 다시 올려봅니다...

AcriveForm에서 퀵레포트 사용을 하려합니다.
Preview를 한다음에 프린트 버튼을 눌러 출력을 하려 하는데요..
뇬석이 뭐가 틀렸는지..
no Parent Window란 에러만 나네요..
첨부 파일에 첨부는 했습니다만...
도움 주실분 없으신가요? ㅜㅜ

죽갔네요...
4  COMMENTS
  • Profile
    이희진 2003.11.18 04:05
    Preview 부분의 소스코딩을 보여주셔야 답변을 받으실 수 있지 않을까요? ^^
    전 ActiveX에서 퀵레포트 잘 썼거든요.. ^^;
  • Profile
    델초보 2003.11.18 18:29


    아..잘쓰셨다니... 제 코딩 부분에 문제가 있는거 같네요..

    소스 부분은..
    procedure ..
    var
       ImageRpt : TImageRpt;
    begin
        ImageRpt := TImageRpt.Create(Self);
        with ImageRpt do
        begin
            Preview;
            Free;
        end;
    end;

    이렇게 했습니다. 뭐가 잘못되었는지요...
    답변감사합니다.^^;
  • Profile
    이희진 2003.11.18 19:31

    코딩 형태를 보니, TImageRpt는 퀵레포트 컴포넌트를 상속 받은거 같은데요.
    저같은 경우에는 일반폼에 퀵레포트 컴포넌트를 얹고 사용하기 때문에,
    말씀하신 에러는 볼 수가 없었던거 같습니다.
    저도 마찬가지로

    var
       ImageRpt : TQuickRep;
    begin
        ImageRpt := TQuickRep.Create(Self);
        with ImageRpt do
        begin
          Preview;
          Free;
        end;
    end;

    이런 식으로 코딩해보았는데, 같은 에러를 볼 수 있었습니다.
    Create에 들어가는 Self 는 해당 컴포넌트의 Owner 인 것은 아시죠?
    에러를 막기 위해선 Parent 를 지정해줘야 할거 같습니다.
    다음과 같이 한 줄 추가하니까 에러가 안나는군요. ^^

    var
       ImageRpt : TQuickRep;
    begin
        ImageRpt := TQuickRep.Create(Self);
        ImageRpt.Parent := Panel1;
        with ImageRpt do
        begin
          Preview;
          Free;
        end;
    end;

    Visible 속성이 False인 패널 하나를 얹고, 퀵레포트 컴포넌트의 Parent 로 지정하시면 될거 같습니다.
  • Profile
    델초보 2003.11.18 19:45
    덕분에 잘 해결된거 같네요.^^
    감사합니다.^________^