fastreport4程序员手册Word格式.docx
《fastreport4程序员手册Word格式.docx》由会员分享,可在线阅读,更多相关《fastreport4程序员手册Word格式.docx(16页珍藏版)》请在冰豆网上搜索。
如果第二个参数等于“True”并且文件没找到,那么他会触发一个异常。
如果文件加载成功,他返回“True”。
procedureLoadFromStream(Stream:
TStream);
从流中加载报表。
procedureSaveToFile(constFileName:
String);
用特殊名称文件存储报表。
procedureSaveToStream(Stream:
把报表存在流中。
例如:
Pascal:
frxReport1.LoadFromFile('
c:
\1.fr3'
);
frxReport1.SaveToFile('
\2.fr3'
C++:
frxReport1->
LoadFromFile("
\\1.fr3"
SaveToFile("
\\2.fr3"
2.设计报表
通过“TfrxReport.DesignReport”方法调用报表设计器。
你必须在你的项目中包含报表设计器(必要条件是:
要么使用“TfrxDesigner”组件,要么增加“frxDesgn”单元到uses列表)
“DesigReport”方法接受两个默认参数:
procedureDesignReport(Modal:
Boolean=True;
MDIChild:
Boolean=False);
Modal参数决定设计器是否被模态,MDIChild参数允许把设计器窗体作为一个MDI子窗体。
frxReport1.DesignReport;
3.运行报表
应用下面两个“TfrxReport”方法中的一个启动报表:
procedureShowReport(ClearLastReport:
Boolean=True);
启动报表并在预览窗体中显示。
如果“ClearLastReport”参数等于“False”,报表将会增加先前的一个报表结果,否则清除前一个报表结构。
functionPrepareReport(ClearLastReport:
Boolean=True):
启动报表,没有打开预览窗体,参数赋值与“ShowReport”方法同名。
如果报表构造成功,他返回“True”。
多数情况下,使用第一种方法更为方便一些。
在报表被构造的同时,他会立刻显示一个预览窗体。
当需要增加另一个报表到前一个报表中的时候,“ClearLastReport”参数显得方便些。
(此类技术用于批量报表打印)。
frxReport1.ShowReport;
4.预览报表
使用两种途径显示一个报表是可能的:
两者都是调用“TfrxReport.ShowReport”方法(先前描述过了),或者使用“TfrxReport.ShowPreparedReport”方法来帮助实现。
在第二种情况下,报表构造没有被执行,但显示了一个完成的报表。
也就是说,你要么在“PreparedReport”方法帮助下构造他,要么在构造前从文件中加载报表(查看“加载/存储完成的报表”)
iffrxReport1.PrepareReportthen
frxReport1.ShowPreparedReport;
if(frxReport1->
PrepareReport(true))
frxReport1->
ShowPreparedReport();
在这种情况下,报表构造器先被完成了,并显示在预览窗体中。
构造一个庞大的报表可能要花费很多时间,那就是为什么使用“ShowReport”非等时同步方法会好于
“PrepareReport/ShowPreparedReport”方法。
你可以通过“TfrxReport.PreviewOptions”属的缺省值设定预览参数值。
(这句翻译的不够好,请参考原文)
原文参考:
Inthiscase,reportconstructionisfinishedfirst,andafterthatitisdisplayedinthepreviewwindow.Constructionofalargereportcantake
alotoftime,andthatiswhyitisbettertousethe“ShowReportanisochronous”method,thanthe“PrepareReport/ShowPreparedReport”one.Onecanassign
previewsettingsbydefaultviathe“TfrxReport.PreviewOptions”property.[SPAN]5、打印报表大多数情况下,你可以从预览窗体打印报表。
要人工打印报表,你应该使用“TfrxReport.Print”方法,例如:
frxReport1.LoadFromFile(...);
frxReport1.PrepareReport;
frxReport1.Print;
同时,你可以在显示的打印对话框中设置打印参数,你也可以使用默认设定值。
取消打印对话框,请参考“TfrxReport.PrintOptions”属性帮助
6.载入并存储报表
这个功能可以在预览窗口中执行。
也可以使用手工方法执行,帮助参考“TfrxReport.PreviewPages”方法:
functionLoadFromFile(constFileName:
procedureSaveToFile(constFileName:
procedureLoadFromStream(Stream:
procedureSaveToStream(Stream:
赋值和参数化类似与TfrxReport相应的方法。
文件包含了完成的报表,默认情况下以“FP3”为扩展名。
frxReport1.PreviewPages.LoadFromFile('
\1.fp3'
frxReport1.ShowPreparedReport;
PreviewPages->
\\1.fp3"
注意,完成的报表加载完毕后,预览方法是通过“ShowPreparedReport”方法执行的。
7.导出报表
他可以从预览窗口中执行。
也可以手动操作,通过“FfrxReport.Export”方法,及这个方法中的参数,你可以导出你想要导出的文件类型:
frxReport1.Export(frxHTMLExport1);
导出过滤组件必须是有效的(你必须把他们放到你项目中的窗体上)并调整正确。
Theexportfiltercomponentmustbeavailable(youmustputitontheformofyourproject)andbeadjustedcorrectly.
8.创建自定义预览窗体
FastReport在标准的预览窗口中显示报表。
如果因为某些原因而不适合你,你可以创建一个自定义预览窗体。
为了这个目的,需要设计FastReport组件面板中的“TfrxReport”组件。
要显示报表,TfrxReport.Preview方法应该连接到这个组件。
在使用TfrxPreview组件的时候,有两个典型的问题。
他不会处理按键(箭头,PgUp,PgDown等等)和鼠标滚轮(如果有的话)。
要让TfrxPreview同按键工作,设置焦点给他(他是可以做到的,例如,在窗体的OnShow事件句柄中)
frxPreview.SetFocus;
要让TfrxPreview同鼠标滚轮工作,你必须创建OnMouseWheel事件句柄,并且调用TfrxPreview.MouseWheelScroll方法。
procedureTForm1.FormMouseWheel(Sender:
TObject;
Shift:
TShiftState;
WheelDelta:
Integer;
MousePos:
TPoint;
varHandled:
Boolean);
begin
frxPreview1.MouseWheelScroll(WheelDelta);
end;
9.建立复合报表(批量打印)
在某些情况下,需要立刻组织几个报表打印,或者在一个打印预览窗体中封装并呈现几个报表。
要执行这些,在FastReport中有些工具能够允许建立一个新的报表附加在一个已经存在的报表上。
“TfrxReport.PrepareReport”方法中有一个选项“ClearLasReport”布尔类型参数,默认情况下他等于True,这个参数定义了是否有必要在建立报表时清除前一个报表。
下面的方法展示了如何从两个报表中建立一个批量报表:
1.fr3'
2.fr3'
frxReport1.PrepareReport(False);
1.fr3"
PrepareReport(true);
2.fr3"
PrepareReport(false);
我们加载并建立第一个报表,但并没有显示他。
然后我们加载第二个报表到同一个TfrxReport对象,并使用“ClearLastReport”参数,让他等于False。
这就允许第二个报表附加在先前建立的报表之后。
接下来,我们在预览窗口中显示一个完成的报表。
9.1复合报表中的页数
你可以使用“Page”,“Page#”,“TotalPages”和“TotalPages#”系统变量显示页数或总页数,在复合报表中,这些变量以下面的方式工作:
Page-当前报表页数
Page#-批量报表页数
TotalPages-当前报表总页数(报表必须两遍)
Totalpages#-批量报表总页数
9.2合并符合报表页数