Delphi 报表生成器打印文件类型

Delphi 报表生成器打印文件类型,delphi,delphi-xe3,reportbuilder,Delphi,Delphi Xe3,Reportbuilder,我有一个关于报表生成器的问题,因为我们将其用于报表目的 在打印预览屏幕的左上角有一个打印机图标。点击它打开打印对话框,其中有“打印到文件”选项。在该选项中,您可以选择类型(PDF文件、XLS报告文件等)。我的问题是:“是否有可能在运行时知道用户选择了哪种类型?”。换句话说,我需要知道他是选择了“PDF文件”还是“XLS报告文件”或其他什么 我试图在ppReportBeforePrint事件中捕获ppReport.DeviceType属性,但对于所有类型的导出,它都显示“Printer” 为了更好

我有一个关于报表生成器的问题,因为我们将其用于报表目的

在打印预览屏幕的左上角有一个打印机图标。点击它打开打印对话框,其中有“打印到文件”选项。在该选项中,您可以选择类型(PDF文件、XLS报告文件等)。我的问题是:“是否有可能在运行时知道用户选择了哪种类型?”。换句话说,我需要知道他是选择了“PDF文件”还是“XLS报告文件”或其他什么

我试图在ppReportBeforePrint事件中捕获ppReport.DeviceType属性,但对于所有类型的导出,它都显示“Printer”

为了更好地理解,我附上了打印对话框的屏幕截图

我们在Windows 8.1下使用Delphi XE3+报表生成器15.03


要分离导出类型,可以使用以下代码:

procedure TForm1.ppReport1BeforePrint(Sender: TObject);
begin
  if ppReport1.DeviceType = 'Screen' then
    // Preview Report on the Screen
  else if ppReport1.DeviceType = 'Printer' then
  begin
    if (ppReport1.FileDevice is TppXLSReportDevice) then
      // Export to Excel
    else if (ppReport1.FileDevice is TppPDFDevice) then
      // Export to PDF
  end;
end;
要在预览屏幕上启用打印机按钮,请使用:

ppReport1.AllowPrintToFile := True;

要分离导出类型,可以使用以下代码:

procedure TForm1.ppReport1BeforePrint(Sender: TObject);
begin
  if ppReport1.DeviceType = 'Screen' then
    // Preview Report on the Screen
  else if ppReport1.DeviceType = 'Printer' then
  begin
    if (ppReport1.FileDevice is TppXLSReportDevice) then
      // Export to Excel
    else if (ppReport1.FileDevice is TppPDFDevice) then
      // Export to PDF
  end;
end;
要在预览屏幕上启用打印机按钮,请使用:

ppReport1.AllowPrintToFile := True;