好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

FastReport4.6程序员手册.doc

32页
  • 卖家[上传人]:pu****.1
  • 文档编号:445906103
  • 上传时间:2023-05-06
  • 文档格式:DOC
  • 文档大小:89.50KB
  • / 32 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 一、使用TfrxReport 组件工作1、加载并存储报表默认情况下,报表窗体同项目窗体构存储在同一个DFM文件中多数情况下,无须再操作,因而你就不必采用特殊方法加载报表如果你决定在文件中存储报表窗体或者是数据库的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);把报表存在流中例如:Pascal:frxReport1.LoadFromFile('c:\1.fr3');frxReport1.SaveToFile('c:\2.fr3');C++:frxReport1->LoadFromFile("c:\\1.fr3");frxReport1->SaveToFile("c:\\2.fr3");2.设计报表通过“TfrxReport.DesignReport”方法调用报表设计器。

      你必须在你的项目中包含报表设计器(必要条件是:要么使用“TfrxDesigner”组件,要么增加“frxDesgn”单元到uses列表)“DesigReport”方法接受两个默认参数:procedure DesignReport(Modal: Boolean = True; MDIChild: Boolean = False);Modal参数决定设计器是否被模态,MDIChild参数允许把设计器窗体作为一个MDI子窗体例如:frxReport1.DesignReport;3.运行报表应用下面两个“TfrxReport”方法中的一个启动报表:procedure ShowReport(ClearLastReport: Boolean = True);启动报表并在预览窗体中显示如果“ClearLastReport”参数等于“False”,报表将会增加先前的一个报表结果,否则清除前一个报表结构function PrepareReport(ClearLastReport: Boolean = True): Boolean;启动报表,没有打开预览窗体,参数赋值与“ShowReport”方法同名如果报表构造成功,他返回“True”。

      多数情况下,使用第一种方法更为方便一些在报表被构造的同时,他会立刻显示一个预览窗体当需要增加另一个报表到前一个报表中的时候,“ClearLastReport”参数显得方便些此类技术用于批量报表打印)例如:frxReport1.ShowReport; 4.预览报表使用两种途径显示一个报表是可能的:两者都是调用“TfrxReport.ShowReport”方法(先前描述过了),或者使用“TfrxReport.ShowPreparedReport”方法来帮助实现在第二种情况下,报表构造没有被执行,但显示了一个完成的报表也就是说,你要么在“PreparedReport”方法帮助下构造他,要么在构造前从文件中加载报表(查看“加载/存储完成的报表”)例如:Pascal:if frxReport1.PrepareReport then frxReport1.ShowPreparedReport;C++:if(frxReport1->PrepareReport(true)) frxReport1->ShowPreparedReport(); 在这种情况下,报表构造器先被完成了,并显示在预览窗体中构造一个庞大的报表可能要花费很多时间,那就是为什么使用“ShowReport”非等时同步方法会好于“PrepareReport/ShowPreparedReport”方法。

      你可以通过“TfrxReport.PreviewOptions”属的缺省值设定预览参数值这句翻译的不够好,请参考原文)原文参考:In this case, report construction is finished first, and after that it is displayed in the preview window. Construction of a large report can take a lot of time, and that is why it is better to use the “ShowReport anisochronous” method, than the “PrepareReport/ShowPreparedReport” one. One can assign preview settings by default via the “TfrxReport.PreviewOptions” property.5、打印报表大多数情况下,你可以从预览窗体打印报表要人工打印报表,你应该使用“TfrxReport.Print”方法,例如:frxReport1.LoadFromFile(...);frxReport1.PrepareReport;frxReport1.Print;同时,你可以在显示的打印对话框中设置打印参数,你也可以使用默认设定值。

      取消打印对话框,请参考“TfrxReport.PrintOptions”属性帮助6.载入并存储报表这个功能可以在预览窗口中执行也可以使用手工方法执行,帮助参考“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”为扩展名例如:Pascal:frxReport1.PreviewPages.LoadFromFile('c:\1.fp3');frxReport1.ShowPreparedReport;C++:frxReport1->PreviewPages->LoadFromFile("c:\\1.fp3");frxReport1->ShowPreparedReport();注意,完成的报表加载完毕后,预览方法是通过“ShowPreparedReport” 方法执行的。

      7.导出报表他可以从预览窗口中执行也可以手动操作,通过“FfrxReport.Export”方法,及这个方法中的参数,你可以导出你想要导出的文件类型:frxReport1.Export(frxHTMLExport1);导出过滤组件必须是有效的(你必须把他们放到你项目中的窗体上)并调整正确The export filter component must be available (you must put it on the form of your project) and be adjusted correctly.8.创建自定义预览窗体FastReport在标准的预览窗口中显示报表如果因为某些原因而不适合你,你可以创建一个自定义预览窗体为了这个目的,需要设计FastReport组件面板中的“TfrxReport”组件要显示报表,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;9.建立复合报表(批量打印) 在某些情况下,需要立刻组织几个报表打印,或者在一个打印预览窗体中封装并呈现几个报表要执行这些,在FastReport中有些工具能够允许建立一个新的报表附加在一个已经存在的报表上TfrxReport.PrepareReport”方法中有一个选项“ClearLasReport”布尔类型参数,默认情况下他等于True,这个参数定义了是否有必要在建立报表时清除前一个报表下面的方法展示了如何从两个报表中建立一个批量报表:Pascal:frxReport1.LoadFromFile('1.fr3');frxReport1.PrepareReport;frxReport1.LoadFromFile('2.fr3');frxReport1.PrepareReport(False);frxReport1.ShowPreparedReport;C++:frxReport1->LoadFromFile("1.fr3");frxReport1->PrepareReport(true);frxReport1->LoadFromFile("2.fr3");frxReport1->PrepareReport(false);frxReport1->ShowPreparedReport(); 我们加载并建立第一个报表,但并没有显示他。

      然后我们加载第二个报表到同一个TfrxReport对象,并使用“ClearLastReport”参数,让他等于False这就允许第二个报表附加在先前建立的报表之后接下来,我们在预览窗口中显示一个完成的报表9.1 复合报表中的页数 你可以使用“Page”,“Page#”,“TotalPages”和“TotalPages#”系统变量显示页数或总页数,在复合报表中,这些变量以下面的方式工作:Page - 当前报表页数Page# - 批量报表页数TotalPa。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.