FastReport 4 介绍(Dephi)

TfrxDBDataset  

TfrxUserDataset 数据存取元件。

FastReport 使用这些元件读取及参考数据库的字段,这两个元件都源于 “TfrxDataSet” 并继承其大部分的功能。 TfrxUserDataSet 元件允许构建未连接到数据库的报表,而由其它来源接收数(据如:数列、文件等)。在此同时,程序员仅需提供浏览此数据集的功能,资料接收并非由此元件执行,而是用其它的方法(例如,经由“TfrxReport.OnGetValue”事件)。

 TfrxUserDataSet 元件有下列的属性: 

   (1) property RecNo: Integer readonly;目前记录编号,首笔的记录编号是“0”

   (2) property Enabled: Boolean default True;定义此 件是否可在designer 里面使用。

  (3) property RangeBegin: TfrxRangeBegin default rbFirst;数据导航(navigation)的起点。

    下列的值可以使用: rbFirst – 从数据的第一笔记录开始。rbCurrent – 从当前的记录开始

   (4)property RangeEnd: TfrxRangeEnd default reLast;数据导航(navigation)的起点。

    下列的值可以使用: reLast – 直到数据结束。ReCurrent – 直到目前的记录。reCount – “RangeEndCount” 属性而                  定。

   (5)   property RangeEndCount: Integer;数据集中的数据个数,此功能只在“RangeEnd”属性等于reCount 有效。

    (6)   property UserName: String;符号名称。在报表设计环境(Designer)下,将被显示于DataSet 的下方。

    (7)   property OnCheckEOF: TfrxCheckEOFEvent; TfrxCheckEOFEvent = procedure(Sender: TObject; var Eof: Boolean)of                   object; 此事件在数据集的尾端时,Eof 参数将返回True

    (8)   property OnFirst: TNotifyEvent;数据集移至第一笔的位置时,会触发此事件。

      (9)   property OnNext: TNotifyEvent;数据集移至下一笔的位置时,会触发此事件。

     (10) property OnPrior: TNotifyEvent;数据集移至上一笔的位置时,会触发此事件。

2.   TfrxDBDataSet 元件用来连接以TDataSet, TTable TQuery 为基类的数据库元件,有关数据的导航及字段的参考都是自动的,程序员不需特殊的设定。

除上述属性外,该元件有下列的属性:

 (1)   property CloseDataSource: Boolean default False;报表创建完成后,关闭数据库。

 (2)   property OpenDataSource: Boolean default True;在报表创建之前打开数据库。

   (3)   property FieldAliases: TStrings;数据集字段的符号名称(别名)

  (4)    property DataSet: TDataSet;

  (5)    property DataSource: TDataSource;连结至TDataSet TDataSource 类型的元件。

  (6)    property OnClose: TNotifyEvent;当关闭数据集时触发此事件。

 (7)    property OnOpen: TNotifyEvent;当打开数据集时触发此事件

3.    TfrxDesigner TfrxDesigner 元件是报表设计器,当使用此元件,你的工程文件就可以使用报表设计器,此元件它只包含一些报表设计器的设定,当加入”frxDesign” 单元到uses 清单中,就表明与报表设计器连接上了。

        此元件包含下列的属性:

        (1)   property CloseQuery: Boolean default True;定义结束设计报表是否询问储存报表之用。

property OpenDir: String;打开报表的预置数据目录

        ( 3)   property SaveDir: String;储存报表的预置数据目录。

         (4)   property Restrictions: TfrxDesignerRestrictions;报表设计环境下,限制不同的报表操作标识(flag),此标识包含单一或混合数据值: drDontInsertObject – 禁止插入物件drDontDeletePage – 禁止刪除页面drDontCreatePage – 禁止建立新的页面 drDontChangePageOptions – 禁止修改页面属性drDontCreateReport – 禁止建立新报表 drDontLoadReport – 禁止载入报表drDontSaveReport – 禁止储存报表 drDontPreviewReport – 禁止预览报表drDontEditVariables – 禁止编辑变量 drDontChangeReportOptions – 禁止修改报表属性

       (5)    property OnLoadReport: TfrxLoadReportEvent; TfrxLoadReportEvent = function(Report: TfrxReport): Boolean of object; 此事件发生在载入报表之时。利用此事件,你可以从数据库载入报表。

       (6)    property OnSaveReport: TfrxSaveReportEvent; TfrxSaveReportEvent = function(Report: TfrxReport;SaveAs:Boolean): Boolean of object; 此事件发生在储存报表之时。利用此事件,你可以将报表储存于数据库中。

      (7)   property OnShow: TNotifyEvent;此事件发生在启动报表设计环境时。

4.   TfrxPreview 此元件专供建立自定义报表合预览窗口使用。

      (1)   procedure AddPage;加入空白页面到报表末端。

      (2)   procedure DeletePage;删除当前页。

      (3)   procedure Print;打印报表。

      (4)   procedure LoadFromFile;显示文件载入窗口。

      (5)   procedure LoadFromFile(FileName: String);载入指定的文件。

      (6)   procedure SaveToFile;显示文件储存窗口。

      (7)   procedure SaveToFile(FileName: String);储存文件到指定的文件名称

      (8)   procedure Edit;载入当前页至设计模式供编辑使用。

      (9)   procedure Export(Filter: TfrxCustomExportFilter);使用指定的导出过滤器导出报表。

      (10) procedure First;第一页。

      (11) procedure Next;下一页。

      (12) procedure Prior;上一页

      (13) procedure Last;最后一页。

      (14) procedure PageSetupDlg;显示页面设定窗口。

      (15) procedure Find;显示文字搜寻窗口。

      (16) procedure FindNext;继续找下一个。

      (17) procedure Cancel;取消创建报表。

      (18) procedure Clear;清除报表。

      你可以使用下列属性:

       (1)   property PageCount: Integer readonly;报表页数。

       (2)   property PageNo: Integer;目前报表页码(起始值为1)。要移至其它页面,指定此属性的值即可。

       (3)   property Tool: TfrxPreviewTool;选取工具。

       (4)   property Zoom: Extended;显示比例,“1” 代表100%

       (5)   property ZoomMode: TfrxZoomMode;显示模式,可以的显示模式如下:zmDefault – 预置值,显示比例根据“Zoom” 属性而定zmWholePage – 整页模式zmPageWidth – 与页面宽度相同 zmManyPages – 一屏显示多页

      (6)   property OutlineVisible: Boolean;是否显示报表大纲(树状结构)

      (7)   property OnPageChanged: TfrxPageChangedEvent;目前页面要改变时,此事件将被触发。

----------------------------------------------------

----------------------------------------------------

 

 

1date给字段设置别名:

使用FRXDBDATASET FieldAliases属性,示例如下:
with TfrxDBDataset(Sender) do
begin
 FieldAliases.Clear;
 for f:=0 to Dataset.FieldCount-1 do
 begin
  FieldAliases.Add(dataset.Fields[f].FullName+'='+dataset.Fields[f].DisplayLabel);//
设置FRXDBDATASET的字段别名为对应的数据集字段的DisplayLabel
  end;
end;
注意:FRXDBDATASET的字段别名的格式为"字段名=别名"

2 TfrxUserDataSet 给设置别名: 设置属性UserName

property UserName: String;符号名称。在报表设计环境(Designer)下,将被显示于DataSet 的下方。

3 Running a report 执行报表应用下列两个“TfrxReport”元件的方法启动报表:procedure ShowReport(ClearLastReport: Boolean = True);

4, Designing a report 设计报表通过“TfrxReport.DesignReport”方法调用报表设计器(reportdesigner),要具有设计报表的功能,你必须在工程文件中加入“TfrxDesigner”元件,或在uses 加入“frxDesgn”单元。

5, 加载、储存报表

function LoadFromFile(const FileName: String; ExceptionIfNotFound: Boolean = False): Boolean; 载入指定的报表,假如第二个参数的值等于”True ” 且指定的文件不存在,然后它会产生一个例外。假如文件载入成功,它返回“True”

procedure LoadFromStream(Stream: TStream);从数据流(stream)载入报表。

procedure SaveToFile(const FileName: String);储存报表至指定的文件名。

procedure SaveToStream(Stream: TStream);储存报表至数据流(stream) 。报表预置的后缀名称为“FR3”

范例: frxReport1.LoadFromFile('c:/1.fr3'); frxReport1.SaveToFile('c:/2.fr3');

6 Building a composite report (batch printing) 建立复合报表(批量打引)

在某些情况下,我们必须一次打印数份报表,或封装及实现多份报表于同一个预览窗口。要执行这项工作,在FastReport 中有多个工具,允许建立一份新的报表,置于另一份已存在的报表末端,«TfrxReport.PrepareReport»方法有此«ClearLastReport», «True»,此参数定义是否清除前一份已建立的报表。下列的程序码示范如何从两个报表定义文件,批次建立一份报表: frxReport1.LoadFromFile('1.fr3'); frxReport1.PrepareReport; frxReport1.LoadFromFile('2.fr3'); frxReport1.PrepareReport(False); frxReport1.ShowPreparedReport; 我们载入第一个报表并在后台处理报表(不显示),然后我们载入第二份报表到同一«TfrxReport»物件,并置参数 «ClearLastReport» 的值为假(False)建立报表。此功能允许第二份报表的结果接在第一份报表的后面。最后,我们将两份报表显示在同一个预览窗口中。

7 Numbering of pages in a composite report 复合报表中的页数你可以使用 «Page», «Page#», «TotalPages» «TotalPages#» 系统变量显示页码或总页数。在复合式报表,这些变量代表的意义如下:Page -目前报表的页码Page# -批次报表的页码TotalPages -目前报表的总页数(报表必须设定为two-pass)TotalPages# -批次报表的总页数 Combination of pages in a composite report 复合报表的合并页如上所述,当打印时,报表设计的属性 «PrintOnPreviousPage»可以利用前一页的可用空间打印下一页的内容。在复合报表中,它允许你在前一份报表最后一页的可用空间上建立一份新的报表,要执行此功能,必须在每一份连续报表的第一个设计页面启动属性«PrintOnPreviousPage»

8 Interactive reports 交互式报表在交互式报表中,我们可以在预览窗口定义任何报表物件对鼠标按下的反应。例如,使用者选择数据列,然后做一份新的报表,显示选取列的明细数据。任何报表都可以成为交互式报表,要执行此操作,你只需建立TfrxReport.OnClickObject 事件处理程序。下面是此事件处理的范例:

procedure TForm1.frxReport1ClickObject(Page:TfrxPage;View:TfrxView;Button: TMouseButton; Shift: TShiftState; var Modified: Boolean);

begin

if View.Name = 'Memo1' then

ShowMessage('Memo1 contents:' + #13#10 + TfrxMemoView(View).Text);

if View.Name = 'Memo2' then

begin

TfrxMemoView(View).Text:=InputBox('Edit','Edit.Memo2.text:', TfrxMemoView(View).Text);

Modified := True;

end;

end;

 

你可能感兴趣的:(数据库,String,report,Integer,报表,dataset)