Wie kann ich Report Reports als PDFs auf Intraweb mit ExtraDevices streamen?
-
22-09-2019 - |
Frage
Wir verwenden Intraweb für unsere Web-Anwendungen und auch für die Berichterstattung für unsere internen Windows-Anwendungen unter Verwendung von Reportbuilder worden. Wir haben auch ExtraDevices, die wir uns schon verwendet, damit unsere Reportbuilder Berichte als Excel-Dateien speichern.
Nun, ich möchte einen Bericht über unsere Web-Anwendungen als PDF-Datei zu erzeugen. Ich habe ein Beispiel dafür, wie das mit ExtraDevices erfolgt. Doch wie funktioniert das folgende Beispiel mit Intraweb geändert werden?
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;
Lösung
Ich denke, dass ich die Antwort auf meine Frage gefunden. Ich brauche einfach TIWApplication.SendStream zu verwenden.
Der Code würde auf diese Weise geändert werden:
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;
Andere Tipps
Haben Sie die RaveDemo, dass Schiffe mit Intraweb gesehen? Ich glaube, es tut, was Sie suchen, aber mit Rave Reports. Ich benutzte es, eine Intraweb Reportbuilder PDF-Version eine Weile zurück zu bauen.
Ich bin mir nicht sicher, ob es den Bericht Ströme though. Es ist schon eine Weile her, seit ich es aussehen, aber ich denke, es ist auf der Festplatte speichern kann, anstatt Senden Sie die Antwort aus dem Speicher wie Ihr Beispiel.