كيف يمكنني دفق التقارير التقارير كـ PDFs على intraweb باستخدام عمليات الاستخراج؟

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

  •  22-09-2019
  •  | 
  •  

سؤال

نحن نستخدم intraweb لتطبيقات الويب الخاصة بنا ونستخدم أيضًا ReportBuilder للإبلاغ عن تطبيقات Windows الداخلية الخاصة بنا. لدينا أيضًا عمليات استخراجية استخدمناها للسماح لنا بحفظ تقارير ReportBuilder الخاصة بنا كملفات Excel.

الآن ، أريد تقديم تقرير عن تطبيقات الويب الخاصة بنا كملف PDF. لدي مثال على كيفية القيام بذلك باستخدام عمليات الاستخراج. ومع ذلك ، كيف يتم تغيير المثال التالي مع 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;
هل كانت مفيدة؟

المحلول

أعتقد أنني وجدت الإجابة على سؤالي. أنا ببساطة بحاجة إلى استخدام 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;

نصائح أخرى

هل رأيت ravedemo الذي يشحن مع intraweb؟ أعتقد أنه يفعل ما تبحث عنه ولكن مع تقارير الهذيان. لقد استخدمته لإنشاء إصدار PDF intraweb reportbuilder منذ فترة.

لست متأكدًا مما إذا كان يتدفق التقرير رغم ذلك. لقد مر وقت منذ أن نظرت إليه ، لكنني أعتقد أنه قد ينقذها على القرص بدلاً من إرسال الاستجابة من الذاكرة مثل مثالك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top