2009-10-20 4 views
1

웹 응용 프로그램에 Intraweb을 사용하고 내부 Windows 응용 프로그램에 대한보고를 위해 ReportBuilder를 사용하고 있습니다. 또한 ReportBuilder 보고서를 Excel 파일로 저장하는 데 사용한 ExtraDevices도 있습니다.ExtraDevices를 사용하여 Intraweb에서 ReportBuilder 보고서를 PDF로 스트리밍하려면 어떻게해야합니까?

이제 웹 응용 프로그램에 대한 보고서를 PDF 파일로 생성하려고합니다. ExtraDevices로 어떻게 수행되는지에 대한 예가 있습니다. 그러나 Intraweb을 사용하여 다음 예제를 어떻게 변경합니까?

procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject; Request: 
    TWebRequest; Response: TWebResponse; var Handled: Boolean); 
var 
    HD: TPDFDevice; 
    MS: TMemoryStream; 
begin 
    MS := TMemoryStream.Create; 
    HD := TPDFDevice.Create(Self); 
    HD.PrintToStream := True; 
    HD.ReportStream := MS; 
    HD.Publisher := Rpt.Publisher; 
    Rpt.PrintToDevices; 
    Response.ContentType := HD.ContentType; 
    Response.ContentStream := MS; 
    Response.SendResponse; 
    HD.Free; 
end; 

답변

1

내 질문에 대한 답을 찾은 것 같습니다. TIWApplication.SendStream을 사용하기 만하면됩니다.

procedure TfrmSomeIWForm.SomeBtnClick(Sender: TObject); 
var 
    HD: TPDFDevice; 
    MS: TMemoryStream; 
begin 
    MS := TMemoryStream.Create; 
    HD := TPDFDevice.Create(Self); 
    HD.PrintToStream := True; 
    HD.ReportStream := MS; 
    HD.Publisher := Rpt.Publisher; 
    Rpt.PrintToDevices; 
    WebApplication.SendStream(MS,false,HD.ContentType); 
    HD.Free; 
end; 
0

Intraweb과 함께 제공되는 RaveDemo를 보았습니까? 나는 그것이 당신이 찾고있는 것을하지만 Rave Reports와는 믿습니다. 나는 그것을 사용하여 Intraweb ReportBuilder PDF 버전을 제작했다.

보고서를 스트리밍하는 경우 잘 모르겠습니다. 내가 그것을 보았 기 때문에 오랜 시간이 지났지 만, 나는 당신의 예제와 같이 메모리에서 응답을 보내기보다는 디스크에 저장할 것이라고 생각한다.

+0

내가 그것을 살펴됩니다

코드는 이런 식으로 수정 될 것이다. 하지만 당분간은 ReportBuilder를 계속 사용하고 있기 때문에 ReportBuilder를 계속 사용하고 싶습니다. – dmillam

+0

Rave로 변경할 필요가 없습니다. 나는 직접 Reportbuilder를 사용합니다. 이 코드는 Rave에서 Reportbuilder에 비교적 쉽게 적용 할 수 있습니다. – LachlanG

관련 문제