Come la riproduzione in streaming Rapporti ReportBuilder i PDF su Intraweb utilizzando ExtraDevices?

StackOverflow https://stackoverflow.com/questions/1595803

  •  22-09-2019
  •  | 
  •  

Domanda

Usiamo Intraweb per le nostre applicazioni web ed anche sono state utilizzando ReportBuilder per la segnalazione per le nostre applicazioni di Windows interne. Abbiamo anche ExtraDevices che abbiamo utilizzato per consentire di risparmiare i nostri rapporti ReportBuilder come file Excel.

Ora, sto voglio produrre una relazione sulle nostre applicazioni web come file PDF. Ho un esempio di come questo è fatto con ExtraDevices. Tuttavia, come fa il seguente esempio cambiarsi con 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;
È stato utile?

Soluzione

Credo di aver trovato la risposta alla mia domanda. Ho semplicemente bisogno di usare TIWApplication.SendStream.

Il codice dovrebbe essere modificato in questo modo:

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;

Altri suggerimenti

Hai visto la RaveDemo fornito con Intraweb? Credo che fa quello che stai cercando, ma con Rave Reports. L'ho usato per costruire una versione Intraweb ReportBuilder PDF un po 'indietro.

Non sono sicuro se i flussi il rapporto però. E 'stato un po' che ho guardato, ma penso che potrebbe salvarlo su disco, piuttosto che inviare la risposta dalla memoria come il vostro esempio.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top