fastreport(A)
TfrxReport
此為最主要的報(bào)表元件,一個(gè) TfrxReport 元件組成一份報(bào)表。在設(shè)計(jì)時(shí)期,雙擊此
元件可打開報(bào)表設(shè)計(jì)器(Report Designer),此元件擁有所有載入、存盤、設(shè)計(jì)及來(lái)看
報(bào)表必須的屬性及方法。
?
TfrxReport 提供的方法:
?
procedure Clear;
??? 清除報(bào)表
?
function LoadFromFile(const FileName: String; ExceptionIfNotFound: Boolean = False): Boolean;
??? 從給予的文件載入報(bào)表。假如第二個(gè)參數(shù)等于 “True”且文件不存在,將產(chǎn)生例外狀況, 假如文件載入成功,返回值為”True ” 。
?
procedure LoadFromStream(Stream: TStream);
??? 從數(shù)據(jù)流(stream)載入報(bào)表。
?
procedure SaveToFile(const FileName: String);
??? 保存報(bào)表至指定的文件。
?
procedure SaveToStream(Stream: TStream);
??? 保存報(bào)表至數(shù)據(jù)流(stream)。
?
procedure DesignReport;
??? 進(jìn)入報(bào)表設(shè)計(jì)環(huán)境。報(bào)表設(shè)計(jì)環(huán)境將嵌入在你的工程文件 要執(zhí)行此功能,只要在 uses 句加入 frxDesign單元或在工程文件中加入“TfrxDesigner” 元件。
?
procedure ShowReport(ClearLastReport: Boolean = True);
??? 開始制作報(bào)表并輸出結(jié)果顯示在預(yù)覽窗口。例如“ClearLastReport”參數(shù)等于“False”,報(bào)表將會(huì)加入至前一個(gè)報(bào)表的后面,否則前一個(gè)建立的報(bào)表會(huì)被清除預(yù)置值。
function PrepareReport(ClearLastReport: Boolean = True): Boolean;
??? 開始制作報(bào)表,但沒有顯示預(yù)覽窗口。參數(shù)指定方式與“ShowReport” 方法(method)相同。假如報(bào)表創(chuàng)建成功,此函數(shù)返回“True” 。
?
procedure ShowPreparedReport;
??? 顯示先前使用“PrepareReport” 所建立的報(bào)表。
?
procedure Print;
??? 打印報(bào)表。
?
procedure Export(Filter: TfrxCustomExportFilter);
??? 使用指定的導(dǎo)出過濾器(exportfilter)導(dǎo)出報(bào)表內(nèi)容。因?yàn)橄铝械姆椒ㄖ惶峁┮环N服務(wù)在大部分的情況之下,你并不須要使用它們。在增強(qiáng) FastReport 的報(bào)表功能方面,他們可能是很有用的。例如,當(dāng)撰寫自定義的報(bào)表元件時(shí)。
?
function Calc(const Expr: String): Variant;
??? 計(jì)算“Expr” 運(yùn)算式并返回結(jié)果。
?
function GetAlias(DataSet: TfrxDataSet): String;
??? 返回指定數(shù)據(jù)集 (dataset)的別名。
?
function GetDataset(const Alias: String): TfrxDataset;
??? 返回指定別名(Alias)的數(shù)據(jù)集。
?
procedure DoNotifyEvent(Obj: TObject; const EventName: String);
??? 執(zhí)行連接至”O(jiān)bj” 物件的“EventName”事件處理程序。
?
procedure DoParamEvent(const EventName: String;var Params:Variant);
??? 以任意的參數(shù)類型執(zhí)行 “EventName”的事件處理程序。
?
procedure GetDatasetAndField(const ComplexName: String; var Dataset: TfrxDataset; var Field: String);
??? 解析“ComplexName”復(fù)合名稱(以DataSet.”Field”表示),并返回參照的數(shù)據(jù)集及字段名稱。
?
procedure GetDataSetList(List: TStrings; OnlyDB: Boolean = False);
??? 從 List參數(shù)返回報(bào)表可用的數(shù)據(jù)集列表,假如第二個(gè)參數(shù)為 True,僅返回連接到數(shù)據(jù)庫(kù)的數(shù)據(jù)集。
?
procedure AddFunction(const FuncName: String; const Category: String = ''; const Description: String = '');
??? 加入使用者自定函數(shù)至報(bào)表的函數(shù)列表。
?
TfrxReport 元件擁有下列屬性:
?
property EngineOptions: TfrxEngineOptions;
??? 與 FastReport引擎相關(guān)的屬性集合。
?
property IniFile: String;
??? 儲(chǔ)存 fastReport 環(huán)境變量設(shè)定的文檔或注冊(cè)碼的名稱。
?
property Preview: TfrxCustomPreview;
??? 連接到“TfrxPreview” 元件,完成的報(bào)表將顯示在此元件上。假如此屬性空白,報(bào)表將 顯示于標(biāo)準(zhǔn)的預(yù)覽窗口。
?
property PreviewOptions: TfrxPreviewOptions;
??? 與報(bào)表預(yù)覽相關(guān)的屬性。
?
property PrintOptions: TfrxPrintOptions;
??? 與報(bào)表打印相關(guān)的屬性。
?
property ReportOptions: TfrxReportOptions;
??? 定義報(bào)表相關(guān)的屬性。
?
property ScriptLanguage: String;
??? 報(bào)表使用的腳本語(yǔ)言 (Script la nguage)。
?
property ScriptText: TStrings;
??? 腳本語(yǔ)言的內(nèi)容。
?
property AllObjects: TList readonly;
??? 報(bào)表內(nèi)所有的物件列表(包括頁(yè)定義元件)。
?
property DataSets: TfrxReportDataSets readonly;
??? 報(bào)表可用的數(shù)據(jù)集列表。
?
property Designer: TfrxCustomDesigner readonly;
??? 連結(jié)到報(bào)表設(shè)計(jì)元件
?
property Engine: TfrxCustomEngine readonly;
? 連結(jié)報(bào)表引擎。對(duì)于要使用程序碼處理報(bào)表是非常有用的,它可以自定義報(bào)表處理引擎。
?
property Errors: TStrings readonly;
?? 錯(cuò)誤清單,發(fā)生在一個(gè)或其它的進(jìn)程。
?
property FileName: String;
??? 定義報(bào)表的文件名稱;文件名會(huì)顯示在設(shè)計(jì)環(huán)境的窗口標(biāo)題中。
?
property PreviewPages: TfrxCustomPreviewPages readonly;
??? 定義一個(gè)連結(jié)到已完成的報(bào)表頁(yè)面。它可被使用在所有地方,例如打印、存盤及導(dǎo)出等。
?
property Pages[Index: Integer]: TfrxPage readonly;
??? 報(bào)表頁(yè)面列表,其中對(duì)話框類型也包括在列表中。
?
property PagesCount: Integer readonly;
? 報(bào)表的頁(yè)數(shù)。
property Script: TfsScript readonly;
? 連結(jié)報(bào)表的“TfsScript” 元件,經(jīng)由該連接,你可以為你的報(bào)表腳本語(yǔ)言加入變量、類型、函數(shù)以供以后調(diào)用。
property Style: TfrxStyle;
??? 報(bào)表式樣。
property Variables: TfrxVariables readonly;
??? 報(bào)表變量列表。
FastReport 引擎的相關(guān)屬性集合:
TfrxEngineOptions = class(TPersistent)
published
property ConvertNulls: Boolean default True;
轉(zhuǎn)換數(shù)據(jù)庫(kù)字段的 值至 或空字串 依字段型態(tài)而定 。
“Null” “0”, “False” ( )
property DoublePass: Boolean default False;
使報(bào)表進(jìn)行二次處理,第一次進(jìn)行資料搜集 例如報(bào)表總頁(yè)數(shù) ,第二次才實(shí)際進(jìn)行報(bào)
( )
表處理。
property MaxMemSize: Integer default 10;
配置報(bào)表頁(yè)面緩存(Cache)的最大內(nèi)存使用量(Mbytes),當(dāng)“UseFileCashe”屬
性等于“True” 時(shí)特別有用。假如在建立期間耗用太多內(nèi)存,已建立的報(bào)表緩存頁(yè)面
將會(huì)被寫入緩存文件,此屬性并不非常的精確,它只大約的決定內(nèi)存的限制。
property PrintIfEmpty: Boolean default True;
定義是否要打印空白報(bào)表(沒有打印資料的報(bào)表)。
property TempDir: String;
指定保存臨時(shí)文件的目錄。
property UseFileCache: Boolean default False;
定義產(chǎn)生的預(yù)覽報(bào)表是否緩存 到文件。 見 屬性
(Cache) ( “MaxMemSize” )
end;
報(bào)表預(yù)覽的相關(guān)屬性集合:
TfrxPreviewOptions = class(TPersistent)
published
property AllowEdit: Boolean default True;
允許或不允許編輯預(yù)覽窗口中的報(bào)表。
property Buttons: TfrxPreviewButtons;
預(yù)覽窗口中的可用按鈕集合。
TfrxPreviewButtons = setof TfrxPreviewButton; TfrxPreviewButton
= (pbPrint, pbLoad, pbSave, pbExport, pbZoom, pbFind, pbOutline,
pbPageSetup, pbTools, pbEdit, pbNavigator);
此屬性可用的值如下:
pbPrint - 打印
pbLoad - 載入文件
pbSave - 存報(bào)表到文件
pbExport - 導(dǎo)出
pbZoom - 顯示比例
pbFind - 搜尋
pbOutline - 選定報(bào)表邊框
pbPageSetup - 頁(yè)面設(shè)定
pbTools - 工具
pbEdit - 編輯
pbNavigator - 導(dǎo)航
上面的值你可以混合使用。
property DoubleBuffered: Boolean default True;
預(yù)覽窗口采用雙緩存區(qū)模式。假如啟用 預(yù)置值 ,畫面輸出時(shí)屏幕不會(huì)有閃爍的情形,
( )
但處理速度會(huì)稍微下降。
property Maximized: Boolean default True;
定義預(yù)覽窗口是否最大化。
property MDIChild: Boolean default False;
定義預(yù)覽窗口是否為MDIChild (給MDI 介面使用)。
property Modal: Boolean default True;
定義預(yù)覽窗口是否為Modal模示。
property OutlineVisible: Boolean default False;
定義是否顯示報(bào)表的大綱。
property OutlineWidth: Integer default 120;
定義報(bào)表大綱顯示的寬度。
property ShowCaptions: Boolean default False;
定義是否顯示按鈕的標(biāo)題。當(dāng)啟動(dòng)該屬性時(shí),你應(yīng)該限制Buttons 屬性所顯示按鈕
的個(gè)數(shù),因?yàn)樗械陌粹o無(wú)法顯示于同一畫面。
property Zoom: Extended;
預(yù)置的顯示百分比率。
property ZoomMode: TfrxZoomMode default zmDefault;
預(yù)置顯示模式。可用的值如下:
zmDefault - 顯示百分比率視“Zoom” 屬性而定
zmWholePage - 整頁(yè)模示
zmPageWidth - 頁(yè)寬
zmManyPages - 兩頁(yè)
end;
報(bào)表打印相關(guān)屬性的集合:
TfrxPrintOptions = class(TPersistent)
published
property Copies: Integer default 1;
預(yù)置的打印份數(shù)。
property Collate: Boolean default True;
不管校對(duì)份數(shù)。
property PageNumbers: String;
打印的頁(yè)碼。例如,“1,3,5-12,17-“ 。
property Printer: String;
打印機(jī)名稱。
property PrintPages: TfrxPrintPages default ppAll;
定義要打印的方式。可用的值如下:
ppAll – 全部
ppOdd – 奇數(shù)頁(yè)
ppEven – 偶數(shù)頁(yè)
property ShowDialog: Boolean default True;
是否顯示打印窗口。
end;
報(bào)表相關(guān)屬性的集合:
TfrxReportOptions = class(TPersistent)
published
property Author: String;
報(bào)表作者。
property CreateDate: TDateTime;
報(bào)表建立日期。
property Description: TStrings;
報(bào)表描述。
property Name: String;
報(bào)表名稱。
property LastChange: TDateTime;
報(bào)表最后修改日期。
property Password: String;
報(bào)表密碼。假如該屬性為空白,當(dāng)打開報(bào)表定義檔時(shí)需要輸入密碼。
property Picture: TPicture;
報(bào)表圖片。
property SilentMode: Boolean default False;
無(wú)聲 (Silent)方式。所有的錯(cuò)誤信息將被保存在“TfrxReport.Errors”屬
性,而不會(huì)在屏幕上顯示任何信息。
property VersionBuild: String;
property VersionMajor: String;
property VersionMinor: String;
property VersionRelease: String;
決定報(bào)表版本的屬性。
end;
下列的事件定義于 TfrxReport 元件:2
property OnAfterPrint: TfrxAfterPrintEvent;
發(fā)生在處理完每個(gè)報(bào)表物件之后(打印后)。
property OnBeforePrint: TfrxBeforePrintEvent;
發(fā)生在處理完每個(gè)報(bào)表物件之前(打印前)。
property OnClickObject: TfrxClickObjectEvent;
當(dāng)預(yù)覽一份報(bào)表時(shí),選取報(bào)表內(nèi)的物件時(shí)觸發(fā)該事件。
property OnGetValue: TfrxGetValueEvent;
當(dāng)啟動(dòng)一份報(bào)表,發(fā)現(xiàn)未定義的變量時(shí),該事件必須返回變量的值。
property OnManualBuild: TfrxManualBuildEvent;
當(dāng)開始打印報(bào)表,假如此事件被啟動(dòng),然后FastReport的引擎將被阻斷(不處理),
報(bào)表處理方法將交由程序員所寫的程序處理。
property OnMouseOverObject: TfrxMouseOverObjectEvent;
當(dāng)報(bào)表處于瀏覽窗口,且鼠標(biāo)指針移到該物件上時(shí)觸發(fā)此事件。
property OnUserFunction: TfrxUserFunctionEvent;
當(dāng)執(zhí)行報(bào)表的過程中,當(dāng)調(diào)用的函數(shù)不存在,請(qǐng)使用“AddFunction”方法提供自
定義函數(shù)。
TfrxDBDataset
TfrxUserDataset
數(shù)據(jù)存取元件。FastReport使用這些元件讀取及參考數(shù)據(jù)庫(kù)的字段,這兩個(gè)
元件都源于 “TfrxDataSet” 并繼承其大部分的功能。
TfrxUserDataSet元件允許構(gòu)建未連接到數(shù)據(jù)庫(kù)的報(bào)表,而由其它來(lái)源接收
數(shù)(據(jù)如:數(shù)列、文件等)。在此同時(shí),程序員僅需提供瀏覽此數(shù)據(jù)集的功能,資料
接收并非由此元件執(zhí)行,而是用其它的方法(例如,經(jīng)由
“TfrxReport.OnGetValue”事件)。
TfrxUserDataSet 元件有下列的屬性:
property RecNo: Integer readonly;
目前記錄編號(hào),首筆的記錄編號(hào)是“ ”
0
property Enabled: Boolean default True;
定義此元件是否可在designer里面使用。
property RangeBegin: TfrxRangeBegin default rbFirst;
數(shù)據(jù)導(dǎo)航(navigation)的起點(diǎn)。下列的值可以使用:
rbFirst – 從數(shù)據(jù)的第一筆記錄開始。
rbCurrent – 從當(dāng)前的記錄開始。
property RangeEnd: TfrxRangeEnd default reLast;
數(shù)據(jù)導(dǎo)航(navigation)的起點(diǎn)。下列的值可以使用:
reLast – 直到數(shù)據(jù)結(jié)束。
ReCurrent – 直到目前的記錄。
reCount – 依“RangeEndCount” 屬性而定。
property RangeEndCount: Integer;
數(shù)據(jù)集中的數(shù)據(jù)個(gè)數(shù),此功能只在“RangeEnd”屬性等于 reCount 有效。
property UserName: String;
符號(hào)名稱。在報(bào)表設(shè)計(jì)環(huán)境(Designer)下,將被顯示于DataSet 的下方。
property OnCheckEOF: TfrxCheckEOFEvent;
TfrxCheckEOFEvent=procedure(Sender:TObject;varEof:Boolean)
of object; 此事件在數(shù)據(jù)集的尾端時(shí),Eof參數(shù)將返回 True。
property OnFirst: TNotifyEvent;
數(shù)據(jù)集移至第一筆的位置時(shí),會(huì)觸發(fā)此事件。
property OnNext: TNotifyEvent;
數(shù)據(jù)集移至下一筆的位置時(shí),會(huì)觸發(fā)此事件。
property OnPrior: TNotifyEvent;
數(shù)據(jù)集移至上一筆的位置時(shí),會(huì)觸發(fā)此事件。
TfrxDBDataSet 元件用來(lái)連接以 TDataSet, TTable 及 TQuery 為基類的數(shù)
據(jù)庫(kù)元件,有關(guān)數(shù)據(jù)的導(dǎo)航及字段的參考都是自動(dòng)的,程序員不需特殊的設(shè)定。除
上述屬性外,該元件有下列的屬性:
property CloseDataSource: Boolean default False;
報(bào)表創(chuàng)建完成后,關(guān)閉數(shù)據(jù)庫(kù)。
property OpenDataSource: Boolean default True;
在報(bào)表創(chuàng)建之前打開數(shù)據(jù)庫(kù)。
property FieldAliases: TStrings;
數(shù)據(jù)集字段的符號(hào)名稱 別名 。
( )
property DataSet: TDataSet; property DataSource:
TDataSource;
連結(jié)至 TDataSet 或 TDataSource 類型的元件。
property OnClose: TNotifyEvent;
當(dāng)關(guān)閉數(shù)據(jù)集時(shí)觸發(fā)此事件。
property OnOpen: TNotifyEvent;
當(dāng)打開數(shù)據(jù)集時(shí)觸發(fā)此事件
TfrxDesigner
TfrxDesigner 元件是報(bào)表設(shè)計(jì)器,當(dāng)使用此元件,你的工程文件就可以使
用報(bào)表設(shè)計(jì)器,此元件它只包含一些報(bào)表設(shè)計(jì)器的設(shè)定,當(dāng)加入”frxDesign” 單
元到uses 清單中,就表明與報(bào)表設(shè)計(jì)器連接上了。
此元件包含下列的屬性:
property CloseQuery: Boolean default True;
定義結(jié)束設(shè)計(jì)報(bào)表是否詢問儲(chǔ)存報(bào)表之用。
property OpenDir: String;
打開報(bào)表的預(yù)置數(shù)據(jù)目錄。
property SaveDir: String;
儲(chǔ)存報(bào)表的預(yù)置數(shù)據(jù)目錄。
property Restrictions: TfrxDesignerRestrictions;
報(bào)表設(shè)計(jì)環(huán)境下,限制不同的報(bào)表操作標(biāo)識(shí) (flag),此標(biāo)識(shí)包含單一或混合數(shù)據(jù)
值:
drDontInsertObject – 禁止插入物件
drDontDeletePage – 禁止刪除頁(yè)面
drDontCreatePage – 禁止建立新的頁(yè)面
drDontChangePageOptions – 禁止修改頁(yè)面屬性
drDontCreateReport – 禁止建立新報(bào)表
drDontLoadReport – 禁止載入報(bào)表
drDontSaveReport – 禁止儲(chǔ)存報(bào)表
drDontPreviewReport – 禁止預(yù)覽報(bào)表
drDontEditVariables – 禁止編輯變量
drDontChangeReportOptions – 禁止修改報(bào)表屬性
property OnLoadReport: TfrxLoadReportEvent;
TfrxLoadReportEvent = function(Report: TfrxReport): Boolean of
object;
此事件發(fā)生在載入報(bào)表之時(shí)。利用此事件,你可以從數(shù)據(jù)庫(kù)載入報(bào)表。
property OnSaveReport: TfrxSaveReportEvent;
TfrxSaveReportEvent = function(Report: TfrxReport;
SaveAs:Boolean): Boolean of object;
此事件發(fā)生在儲(chǔ)存報(bào)表之時(shí)。利用此事件,你可以將報(bào)表儲(chǔ)存于數(shù)據(jù)庫(kù)中。
property OnShow: TNotifyEvent;
此事件發(fā)生在啟動(dòng)報(bào)表設(shè)計(jì)環(huán)境時(shí)。
TfrxPreview
此元件專供建立自定義報(bào)表合預(yù)覽窗口使用。
procedure AddPage;
加入空白頁(yè)面到報(bào)表末端。
procedure DeletePage;
刪除當(dāng)前頁(yè)。
procedure Print;
打印報(bào)表。
procedure LoadFromFile;
顯示文件載入窗口。
procedure LoadFromFile(FileName: String);
載入指定的文件。
procedure SaveToFile;
顯示文件儲(chǔ)存窗口。
procedure SaveToFile(FileName: String);
儲(chǔ)存文件到指定的文件名稱。
procedure Edit;
載入當(dāng)前頁(yè)至設(shè)計(jì)模式供編輯使用。
procedure Export(Filter: TfrxCustomExportFilter);
使用指定的導(dǎo)出過濾器導(dǎo)出報(bào)表。
procedure First;
第一頁(yè)。
procedure Next;
下一頁(yè)。
procedure Prior;
上一頁(yè)。
procedure Last;
最后一頁(yè)。
procedure PageSetupDlg;
顯示頁(yè)面設(shè)定窗口。
procedure Find;
顯示文字搜尋窗口。
procedure FindNext;
繼續(xù)找下一個(gè)。
procedure Cancel;
取消創(chuàng)建報(bào)表。
procedure Clear;
清除報(bào)表。
你可以使用下列屬性:
property PageCount: Integer readonly;
報(bào)表頁(yè)數(shù)。
property PageNo: Integer;
目前報(bào)表頁(yè)碼 起始值為 。要移至其它頁(yè)面,指定此屬性的值即可。
( 1)
property Tool: TfrxPreviewTool;
選取工具。
property Zoom: Extended;
顯示比例,“1” 代表 100% 。
property ZoomMode: TfrxZoomMode;
顯示模式,可以的顯示模式如下:
zmDefault – 預(yù)置值,顯示比例根據(jù)“Zoom” 屬性而定
zmWholePage – 整頁(yè)模式
zmPageWidth – 與頁(yè)面寬度相同
zmManyPages – 一屏顯示多頁(yè)
property OutlineVisible: Boolean;
是否顯示報(bào)表大綱 樹狀結(jié)構(gòu) 。
轉(zhuǎn)載于:https://blog.51cto.com/kaixinbuliao/892554
總結(jié)
以上是生活随笔為你收集整理的fastreport(A)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux文件夹的打开方式
- 下一篇: nat和静态映射