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;
War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top