퀵레포트 Preview 실행 후에 퀵레포트를 Close 시키고
다시 퀵레포트 Preview 실행하면
QuickRep1.Query1.Active := False; 부분에서
아래와 같은 에러가 납니다.
Access violation at address 004FA287 in module 'AAA.exe'.Read of address 00000000
소스입니다.
if form1= nil then
begin
form1:= Tform1.Create(Application);
end;
try
with form1.Query1 do //==>퀵레포트가 있는 Form
begin
try
Active := False; //======> 두번째 실행시 에러나는 부분
SQL.Text := QueryString; //==> 해당 쿼리문을 넣었습니다
Active := True;
except
on E : Exception do
begin
ShowMessage('출력 오류 : ' + Chr(13) + Chr(13) + E.Message);
form1.Free;
Exit;
end;
end;
end;
quickRep1.Preview;
Application.ProcessMessages;
finally
form1.Free;
end;
퀵레포트가 있는 form1을 닫을 때 Free 시키지 않고
form1:= nil; 로 하면 다시 열 경우 위와 같은 에러는 발생하지 않지만
퀵레포트가 있는 form1에서 Preview만 닫히고 form1은 그대로 화면에 보여지게 됩니다.
정말 이러지도 저러지도 못하는 상황에 있습니다.
어떻게 해야 해결할 수 있는지 꼭 좀 알려 주십시오
컨트롤 탭 페이지에서 퀵레포트 컨트롤을 배치시켜서 만들었나 보군요.
에구..내가 말하고도 뭔 말인지 모르겠넹...
암튼...일케 하시면..qrp001.gif와 같은 형태가 되고..
두번째 방법(qrp002.gif)을 사용하시면..
//레포트를 사용할 폼..(미리보기나 출력버튼이 있는 폼)
implementation
uses
unit2; // qrp002.gif의 방법으로 만든 유닛이름..
:
:
begin
QuickReport2 := TQuickReport2.Create(nil);
QuickReport2.PreviewModal;
QuickReport2.free;
end;
이렇게 사용하시는게...
그럼 즐프~