저는 Delphi XE3을 사용하여 Windows 서비스를 작성하고 있습니다. 이 서비스는 데이터베이스에서 읽으며 quickreport 5.05.1을 사용하여 pdf를 생성합니다. TQRPDFDocumentFilter를 사용하여 pdf를 생성 할 계획입니다.Delphi의 Windows 서비스에서 QuickReport를 사용하여 PDF를 생성하십시오.
모든 것이 정상적인 VCL 응용 프로그램에서 정상적으로 작동하지만 Windows 서비스에서 구현할 때 QuickRep.Prepare를 수행하면 서비스가 중단됩니다 (예외없이).
나는 Windows 서비스에서 QuickReport를 사용할 수 있다는 것을 읽었지만 어떻게해야할지 모르겠다. 어떤 제안?
는 어디 코드입니다 :procedure foo
var
pdfFilter: TQRPDFDocumentFilter;
begin
with TForm2.Create(Self) do
begin
ClientDataSet1.Open;
QuickRep1.Prepare;
pdfFilter := TQRPDFDocumentFilter.Create(GetApplicationFolder() + 'test.pdf');
try
QuickRep1.QRPrinter.ExportToFilter(pdfFilter);
finally
pdfFilter.Free;
ClientDataSet1.Close;
end;
end;
end;
편집 : 다른 스레드에서 제안 나는 또한 퀵 리포트에 "쇼의 진행 상황을"해제 시도 . 예외를 잡기 위해 일부 코드를 작성하면 실제로 예외가 있음을 알 수 있습니다. 메시지는 "현재 선택된 기본 프린터가 없습니다"입니다. 그러면 서비스가 실행중인 로컬 시스템 사용자에게 프린터가 설치되어 있지 않고 이것이 문제가된다고 생각됩니다.
[델파이 웹 서버의 빠른 보고서로 PDF 생성하기] (http://stackoverflow.com/questions/401743/generating-pdf-with-quick-reports-behind-a-delphi-web-server) – bummi
Do 당신은 파일에 쓸 수 있도록 corect 권한으로 서비스를 시작합니까? Windows XP에서는 문제가 아니지만 Windows Vista 이상에서는 서비스가 시작되는 여러 권한 프로필이 있습니다. 각 서비스에서 수행 할 수있는 작업을 제한하여 보안을 강화하기 위해 구현되었습니다. – SilverWarior
Bummi : 나는 이미 그 스레드를 읽었습니다. 그가 해결할 수 있었던 것처럼 보이지만 제공되는 정보는 방법에 대한 단서를 제공하지 않습니다. –