كيف يمكنني دفق التقارير التقارير كـ PDFs على intraweb باستخدام عمليات الاستخراج؟
-
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 منذ فترة.
لست متأكدًا مما إذا كان يتدفق التقرير رغم ذلك. لقد مر وقت منذ أن نظرت إليه ، لكنني أعتقد أنه قد ينقذها على القرص بدلاً من إرسال الاستجابة من الذاكرة مثل مثالك.