¿Cómo reproduzco Informes ReportBuilder como archivos PDF en Intraweb usando ExtraDevices?

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

  •  22-09-2019
  •  | 
  •  

Pregunta

Utilizamos Intraweb para nuestras aplicaciones web y también han estado utilizando ReportBuilder para informar a nuestros usos de las ventanas internas. También tenemos ExtraDevices la que hemos usado para permitir que salvemos nuestros informes ReportBuilder como archivos de Excel.

Ahora, me quieren producir un informe sobre nuestras aplicaciones web como un archivo PDF. Tengo un ejemplo de cómo se hace eso con ExtraDevices. Sin embargo, ¿cómo el siguiente ejemplo se ve modificado 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;
¿Fue útil?

Solución

creo que he encontrado la respuesta a mi pregunta. Simplemente necesito utilizar TIWApplication.SendStream.

El código sería modificado de esta manera:

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;

Otros consejos

¿Ha visto el RaveDemo que se incluye con Intraweb? Creo que hace lo que usted está buscando, pero con Rave Reports. Lo utilicé para construir una versión PDF Intraweb ReportBuilder un tiempo atrás.

No estoy seguro de si se transmite el informe de embargo. Ha sido un tiempo desde que la miraba, pero creo que puede guardarlo en el disco en lugar de enviar la respuesta de la memoria como su ejemplo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top