1

Web アプリケーションには Intraweb を使用し、内部 Windows アプリケーションのレポートには ReportBuilder を使用しています。また、ReportBuilder レポートを Excel ファイルとして保存できるようにするために使用した ExtraDevices もあります。

今、Web アプリケーションに関するレポートを 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;
4

2 に答える 2

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;
于 2009-10-20T18:06:09.860 に答える
0

Intraweb に同梱されている RaveDemo を見たことがありますか? 私はそれがあなたが探していることをすると信じていますが、Rave Reports を使用しています。しばらく前に、Intraweb ReportBuilder PDF バージョンを作成するために使用しました。

ただし、レポートをストリーミングするかどうかはわかりません。見てからしばらく経ちましたが、例のようにメモリから応答を送信するのではなく、ディスクに保存する可能性があると思います。

于 2009-10-20T17:53:20.307 に答える