彩票走势图

FastReport VCL程序员手册:使用TfrxReport组件

翻译|使用教程|编辑:杨鹏连|2021-04-12 11:10:25.210|阅读 249 次

概述:本文介绍了FastReport VCL如何加载、保存、设计、运行、预览、打印、汇出报告,以及创建一个自定义预览窗口。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

FastReport VCL是用于Delphi,C ++ Builder,RAD Studio和Lazarus的报告和文档创建VCL库。它提供了可视化模板设计器,可以访问最受欢迎的数据源,报告引擎,预览,将过滤器导出为30多种格式,并可以部署到云,Web,电子邮件和打印中。

近日,FastReport VCL更新至v6.9,在新版本中,在PDF导出中增加了对以下对象的交互式表单支持:文本,复选框和图片。能够通过InteractiveFormsFontSubset属性将所需的字形仅包含在交互式形式中。同时修复了多个Bug问题。欢迎下载体验。(点击下方按钮下载)

立即点击下载FastReport VCL v6.9最新版

加载和保存报告

默认情况下,报告表单与项目表单一起存储,即存储在DFM文件中。在大多数情况下,不需要任何其他操作,因此您无需采取特殊措施即可加载报告。如果您决定将报告表单存储在文件中或DB BLOb字段中(这提供了极大的灵活性,即您可以在不重新编译程序的情况下修改报告),则必须使用以下TfrxReport方法来加载和保存报告:

function LoadFromFile(const FileName: String; ExceptionIfNotFound: Boolean = False): Boolean;
从文件中加载具有给定名称的报告。如果第二个参数等于“ True”,但找不到该文件,则它将生成异常。如果文件加载成功,则返回“ True”。
procedure LoadFromStream(Stream: TStream);
从流中加载报告
procedure SaveToFile(const FileName: String);
将报告保存到具有指定名称的文件中
procedure SaveToStream(Stream: TStream);
将报告保存到流中

带有报告表单的文件默认情况下具有“ FR3”扩展名。

例子:
Pascal:

frxReport1.LoadFromFile('c:\1.fr3');
frxReport1.SaveToFile('c:\2.fr3');
C ++:
frxReport1->LoadFromFile("c:\\1.fr3");
frxReport1->SaveToFile("c:\\2.fr3");
设计报告

调用报表设计器是通过TfrxReport.DesignReport方法执行的。设计人员必须包含在您的项目中(使用TfrxDesigner组件或将“ frxDesgn”单元添加到使用列表中就足够了)。

该DesignReport方法采用两个默认参数:

procedure DesignReport(Modal: Boolean = True; MDIChild: Boolean = False);
Modal参数确定设计者是否应该是模态的。MDIChild参数允许使设计器窗口成为MDI子窗口。

例子:

frxReport1.DesignReport;
运行报告

应用以下两种TfrxReport方法之一将启动报告:

procedure ShowReport(ClearLastReport: Boolean = True);
启动报告并在预览窗口中显示结果。如果“ ClearLastReport”参数等于“ False”,则该报告将添加到先前构建的报告中,否则将清除先前构建的报告(默认情况下)。
function PrepareReport(ClearLastReport: Boolean = True): Boolean;
在不打开预览窗口的情况下启动报告。参数分配与“ ShowReport”方法中的相同。如果成功构建了报告,则返回“ True”。

在大多数情况下,使用第一种方法更为方便。它会立即显示预览窗口,同时继续构建报告。

如果需要在先前构造的报表中添加另一个报表(此技术用于批量报表打印),则可以方便地使用“ ClearLastReport”参数。
例子:

frxReport1.ShowReport;
预览报告

可以通过两种方式在预览窗口中显示报告:通过调用TfrxReport.ShowReport 方法(如上所述)或借助该TfrxReport.ShowPreparedReport方法。在第二种情况下,不执行报告构造,但显示完成的报告。这意味着,您应该在PrepareReport方法的帮助下预先构建它,或者从文件中加载以前构建的报告(请参阅加载和保存完成的报告)。

例子:
Pascal:

if frxReport1.PrepareReport then
  frxReport1.ShowPreparedReport;
C ++:
if(frxReport1->PrepareReport(true))
  frxReport1->ShowPreparedReport();
在这种情况下,报告构建首先完成,然后显示在预览窗口中。构造大型报告可能要花费很多时间,因此使用ShowReport异步方法比PrepareReport/更好ShowPreparedReport。默认情况下,可以通过TfrxReport.PreviewOptions属性分配预览设置。

打印报告

在大多数情况下,您将从预览窗口中打印报告。要手动打印报告,应使用以下TfrxReport.Print方法,例如:

frxReport1.LoadFromFile(...);
frxReport1.PrepareReport;
frxReport1.Print;
同时,将出现可以设置打印参数的对话框。您可以默认分配设置,并在该TfrxReport.PrintOptions属性的帮助下禁用打印对话框。

加载并保存完成的报告

可以从预览窗口执行。这也可以在TfrxReport.PreviewPages方法的帮助下手动执行:

    function LoadFromFile(const FileName: String; ExceptionIfNotFound: Boolean = False): Boolean;
    procedure SaveToFile(const FileName: String);
    procedure LoadFromStream(Stream: TStream);
    procedure SaveToStream(Stream: TStream);
分配和参数类似于相应的TfrxReport方法。默认情况下,包含完成的报告的文件的扩展名为“ FP3”。

例子:
帕斯卡:

frxReport1.PreviewPages.LoadFromFile('c:\1.fp3');
frxReport1.ShowPreparedReport;
C ++:
frxReport1->PreviewPages->LoadFromFile("c:\\1.fp3");
frxReport1->ShowPreparedReport();
注意:完成报表加载后,将通过ShowPreparedReport方法执行其预览!

汇出报告

可以从预览窗口执行。也可以通过TfrxReport.Export方法手动执行该操作。在此方法的参数中,应指定要使用的导出过滤器:

frxReport1.Export(frxHTMLExport1);
导出过滤器组件必须可用(您必须将其放在项目的窗体上)并已正确调整。

创建一个自定义预览窗口

FastReport在标准预览窗口中显示报告。如果由于某种原因它不适合您,则可能会创建一个自定义预览表单。为此,TfrxPreview设计了FastReport组件面板中的组件。要显示报告,应将此TfrxReport.Preview属性的链接分配给该属性。

使用TfrxPreview组件时有两个典型的问题。它不处理键(箭头,PgUp,PgDown等)和鼠标滚轮(如果有)。要TfrxPreview使用键,请将焦点传递给它(例如,可以在OnShow表单的事件处理程序中完成):

frxPreview.SetFocus;
要TfrxPreview使用鼠标滚动,必须创建OnMouseWheel表单的事件处理程序并TfrxPreview.MouseWheelScroll在此处理程序中调用方法:
procedure TForm1.FormMouseWheel(Sender: TObject; Shift: TShiftState; 
  WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
begin
  frxPreview1.MouseWheelScroll(WheelDelta);
end;

如果您对FastReport感兴趣,欢迎加入FastReport QQ交流群:702295239

还想要更多吗?您可以点击阅读【FastReport 报表2020最新资源盘点】查找需要的教程资源。让人兴奋的是FastReport .NET正在慧都网火热销售中!在线订购惠享超低折扣。>>查看价格详情


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn

文章转载自:

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP