我设置了多个 RVSystems,每个 RVSystems 都有自己的单元来打印一份报告。我有一个程序,用户可以在其中从他们想要查看的列表中进行选择。
我要解决的问题是如何组合用户选择的那些,这样他们就不必为他们选择的每一个进行预览/打印。我不想使用 RVProject,因为它们都是基于代码的,而且我根本没有使用 .rav 文件。谢谢!!!
我查看了 Nevrona 提示 #41,它应该可以解决,但它使用带有 .rav 文件的 RVProject 来访问单独的报告。
缺口
我设置了多个 RVSystems,每个 RVSystems 都有自己的单元来打印一份报告。我有一个程序,用户可以在其中从他们想要查看的列表中进行选择。
我要解决的问题是如何组合用户选择的那些,这样他们就不必为他们选择的每一个进行预览/打印。我不想使用 RVProject,因为它们都是基于代码的,而且我根本没有使用 .rav 文件。谢谢!!!
我查看了 Nevrona 提示 #41,它应该可以解决,但它使用带有 .rav 文件的 RVProject 来访问单独的报告。
缺口
WPCubed wPDF 可以将多个 RAVE 报告打印到一个 PDF 文件中:
http://www.wpcubed.com/manuals/wpdf/index.html?ravereport.htm
示例 2:将多个 NDR 文件直接渲染到 PDF 文件“c:\rave.pdf”。它使用一个打开的对话框让您选择文件。
procedure TForm1.Button1Click(Sender: TObject);
var
OpenDialog: TOpenDialog;
RvRenderWPDF: TRvRenderWPDF;
WPPDFPrinter: TWPPDFPrinter;
FileStream: TFileStream;
output: string;
i: Integer;
begin
OpenDialog := TOpenDialog.Create(Self);
OpenDialog.Options := [ofAllowMultiSelect];
RvRenderWPDF := TRvRenderWPDF.Create(Self);
WPPDFPrinter := TWPPDFPrinter.Create(Self);
try
OpenDialog.Filter := 'NDF Files|*.NDR';
RvRenderWPDF.PDFPrinter := WPPDFPrinter;
RvRenderWPDF.Active := TRUE;
WPPDFPrinter.AutoLaunch := TRUE;
WPPDFPrinter.CompressStreamMethod := wpCompressFastFlate;
if OpenDialog.Execute then
begin
output := 'dummy';
WPPDFPrinter.Filename := 'c:\rave.pdf';
WPPDFPrinter.BeginDoc;
try
for i := 0 to OpenDialog.Files.Count - 1 do
begin
FileStream := TFileStream.Create(OpenDialog.Files[i], fmOpenRead);
try
RvRenderWPDF.PrintRender(FileStream, output);
finally
FileStream.Free;
end;
end;
finally
WPPDFPrinter.EndDoc;
end;
end;
finally
OpenDialog.Free;
RvRenderWPDF.Free;
WPPDFPrinter.Free;
end;
end;
您也可以使用 Gnostice eDocEngine 来合并 Rave Reports:
http://www.gnostice.com/nl_article.asp?id=247&t=Export_From_Rave_Reports_To_PDF_And_Other_Formats
从 Rave 报告快照文件以编程方式导出 在此示例中,eDocEngine 将用于从 NDR(Rave 报告快照)文件导出 Rave 报告报告。
打开 IDE 并创建一个 VCL 表单应用程序。将三个 Rave Reports 导出接口组件 (TgtRaveExportInterface) 拖放到表单上。在表单上放置一个 PDF 引擎 (TgtPDFEngine)、RTF 引擎 (TgtRTFEngine) 和 XHTML 引擎 (TgtXHTMLEngine) 组件。向表单添加一个按钮并为其单击事件处理程序设置此过程
procedure TForm5.Button2Click(Sender: TObject);
begin
// Set output engines for the report export components
gtRaveExportInterface1.Engine := gtPDFEngine1;
gtRaveExportInterface2.Engine := gtRTFEngine1;
gtRaveExportInterface3.Engine := gtXHTMLEngine1;
// Disable output preferences dialog boxes
gtPDFEngine1.Preferences.ShowSetupDialog := false;
gtRTFEngine1.Preferences.ShowSetupDialog := false;
gtXHTMLEngine1.Preferences.ShowSetupDialog := false;
// Set output file name of the engines
gtPDFEngine1.FileName := 'eDoc_Rave_Demo.pdf';
gtRTFEngine1.FileName := 'eDoc_Rave_Demo.rtf';
gtXHTMLEngine1.FileName := 'eDoc_Rave_Demo.html';
// Export a Rave Reports snapshot file to PDF, RTF and XHTML
gtRaveExportInterface1.RenderDocument('eDoc_Rave.ndr');
gtRaveExportInterface2.RenderDocument('eDoc_Rave.ndr');
gtRaveExportInterface3.RenderDocument('eDoc_Rave.ndr');
end;