FastReport_程序員手冊(cè)范本_第1頁(yè)
FastReport_程序員手冊(cè)范本_第2頁(yè)
FastReport_程序員手冊(cè)范本_第3頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、FastReport 程序員手冊(cè)一、使用TfrxReport 組件工作1、加載并存儲(chǔ)報(bào)表默認(rèn)情況下,報(bào)表窗體同項(xiàng)目窗體構(gòu)存儲(chǔ)在同一個(gè)DFM文件中。多數(shù)情況下,無(wú)須再操作,因而你就不必采用特殊方法加載報(bào)表。如果你決定在文件中存儲(chǔ)報(bào)表窗體或者是數(shù)據(jù)庫(kù)的Blob字段(他提供了非常大的彈性,你能夠在非編譯程序中修改),你必須使用“ TfrxReport ”提供的加 載和存儲(chǔ)方法。function LoadFromFile(const FileName: String; ExceptionlfNotFound: Boolean = False): Boolean;從一個(gè)給定名字文件中加載報(bào)表。如果第二個(gè)

2、參數(shù)等于“ True”并且文件沒(méi)找到,那么他會(huì)觸發(fā)一個(gè)異常。如果文件加載成功,他返回“ True”。procedure LoadFromStream(Stream: TStream);從流中加載報(bào)表。procedure SaveToFile(const FileName: String);用特殊名稱文件存儲(chǔ)報(bào)表。procedure SaveToStream(Stream: TStream);把報(bào)表存在流中。例如:Pascal:frxReport1 .L oadFromFile('c:1.fr3'); frxReport1.SaveToFile('c:2.fr3'

3、);C+:frxReport1->LoadFromFile("c:1.fr3");frxReport1->SaveToFile("c:2.fr3");2. 設(shè)計(jì)報(bào)表通過(guò)“ TfrxReport.DesignReport ”方法調(diào)用報(bào)表設(shè)計(jì)器。你必須在你的項(xiàng)目中包含報(bào)表設(shè)計(jì)器(必要條件 是:要么使用“ TfrxDesigner ”組件,要么增加“ frxDesgn ”單元到 uses列表)“DesigReport ”方法接受兩個(gè)默認(rèn)參數(shù):procedure DesignReport(Modal: Boolean = True; MDIChild

4、: Boolean = False);Modal參數(shù)決定設(shè)計(jì)器是否被模態(tài),MDIChild參數(shù)允許把設(shè)計(jì)器窗體作為一個(gè)MDI子窗體。例如:frxReport1.DesignReport;3. 運(yùn)行報(bào)表應(yīng)用下面兩個(gè)“ TfrxReport ”方法中的一個(gè)啟動(dòng)報(bào)表:procedure ShowReport(ClearLastReport: Boolean = True);啟動(dòng)報(bào)表并在預(yù)覽窗體中顯示。如果“ ClearLastReport ”參數(shù)等于“ False ",報(bào)表將會(huì)增加先前的一個(gè) 報(bào)表結(jié)果,否則清除前一個(gè)報(bào)表結(jié)構(gòu)。function PrepareReport(ClearLast

5、Report: Boolean = True): Boolean;啟動(dòng)報(bào)表,沒(méi)有打開(kāi)預(yù)覽窗體,參數(shù)賦值與“ ShowReporf方法同名。如果報(bào)表構(gòu)造成功,他返回“ True”。多數(shù)情況下,使用第一種方法更為方便一些。在報(bào)表被構(gòu)造的同時(shí),他會(huì)立刻顯示一個(gè)預(yù)覽窗體。當(dāng)需要增加另一個(gè)報(bào)表到前一個(gè)報(bào)表中的時(shí)候,“ClearLastReport ”參數(shù)顯得方便些。(此類技術(shù)用于批量報(bào)表打印)。例如:frxReport1.ShowReport;4. 預(yù)覽報(bào)表使用兩種途徑顯示一個(gè)報(bào)表是可能的:兩者都是調(diào)用“TfrxReport.ShowReport ”方法(先前描述過(guò)了),或者使用“ TfrxReport

6、.ShowPreparedReport ”方法來(lái)幫助實(shí)現(xiàn)。在第二種情況下,報(bào)表構(gòu)造沒(méi)有被執(zhí)行,但顯示了一個(gè)完成的報(bào)表。也就是說(shuō),你要么在"PreparedReport ”方法幫助下構(gòu)造他,要么在構(gòu)造前從文件中加載報(bào)表(查看“加載/存儲(chǔ)完成的報(bào)表”)例如:Pascal:if frxReportl.PrepareReport thenfrxReportl.ShowPreparedReport;C+:if(frxReport1->PrepareReport(true)frxReport1->ShowPreparedReport();在這種情況下,報(bào)表構(gòu)造器先被完成了,并顯示在預(yù)

7、覽窗體中。構(gòu)造一個(gè)龐大的報(bào)表可能要花費(fèi)很多時(shí)間,那就是為什么使用“ ShowReport'非等時(shí)同步方法會(huì)好于“PrepareReport/ShowPreparedReport ” 方法。你可以通過(guò)“ TfrxReport.PreviewOptions ” 屬的缺省值設(shè)定預(yù)覽參數(shù)值。(這句翻譯的不夠好,請(qǐng)參考原文)原文參考:In this case, report construction is finished first, and after that it is displayedin the preview window. Construction of a large rep

8、ort can takea lot of time, and that is why it is better to use the“ShowReport anisochronous ” method, thanthe “PrepareReport/ShowPreparedReport ” one. One can assignpreview settings by default via the“TfrxReport.PreviewOptions ” p roperty.SPAN5、打印報(bào)表大多數(shù)情況下,你可以從預(yù)覽窗體打印報(bào)表。要人工打印報(bào)表,你應(yīng)該使用“TfrxReport.Print

9、”方法 ,例如:frxReport1.LoadFromFile(.);frxReport1.PrepareReport;frxReport1.Print;同時(shí),你可以在顯示的打印對(duì)話框中設(shè)置打印參數(shù),你也可以使用默認(rèn)設(shè)定值。取消打印對(duì)話框,請(qǐng)參考“TfrxReport.PrintOptions”屬性幫助6. 載入并存儲(chǔ)報(bào)表這個(gè)功能可以在預(yù)覽窗口中執(zhí)行。也可以使用手工方法執(zhí)行,幫助參考“ TfrxReport.PreviewPages "方法:function LoadFromFile(const FileName: String; ExceptionlfNotFound: Boole

10、an = False):Boolean;procedure SaveToFile(const FileName: String);procedure LoadFromStream(Stream: TStream);procedure SaveToStream(Stream: TStream);賦值和參數(shù)化類似與 TfrxReport相應(yīng)的方法。文件包含了完成的報(bào)表,默認(rèn)情況下以“FP3為擴(kuò)展名。例如:Pascal:frxReport1.PreviewPages. LoadFromFile('c:1.fp3');frxReport1.ShowPreparedReport;C+:f

11、rxReport1->PreviewPages->LoadFromFile("c:1.fp3");frxReport1->ShowPreparedReport();注意,完成的報(bào)表加載完畢后,預(yù)覽方法是通過(guò)“ShowPreparedReport”方法執(zhí)行的。7. 導(dǎo)岀報(bào)表他可以從預(yù)覽窗口中執(zhí)行。也可以手動(dòng)操作,通過(guò)“ FfrxReport.Export ”方法,及這個(gè)方法中的參數(shù),你可以導(dǎo)岀你想要導(dǎo)岀的文件類型:frxReport1.Export(frxHTMLExport1);導(dǎo)岀過(guò)濾組件必須是有效的(你必須把他們放到你項(xiàng)目中的窗體上)并調(diào)整正確。The

12、 export filter component must be available (you must put it on the form of your project) andbe adjusted correctly.8. 創(chuàng)建自定義預(yù)覽窗體FastReport在標(biāo)準(zhǔn)的預(yù)覽窗口中顯示報(bào)表。如果因?yàn)槟承┰蚨贿m合你,你可以創(chuàng)建一個(gè)自定義預(yù)覽窗體。為了這個(gè)目的,需要設(shè)計(jì)FastReport組件面板中的“ TfrxReport "組件。要顯示報(bào)表,TfrxReport.Preview方法應(yīng)該連接到這個(gè)組件。在使用TfrxPreview 組件的時(shí)候,有兩個(gè)典型的問(wèn)題。他不會(huì)處理按

13、鍵(箭頭,PgUp PgDown等等)和鼠標(biāo)滾輪(如果有的話)。要讓 TfrxPreview 同按鍵工作,設(shè)置焦點(diǎn)給他(他是可以做到的,例如,在窗體的OnShow事件句柄中)frxPreview.SetFocus;要讓TfrxPreview 同鼠標(biāo)滾輪工作,你必須創(chuàng)建OnMouseWhee事件句柄,并且調(diào)用TfrxPreview.MouseWheelScroll 方法。procedure TForm1.FormMouseWheel(Sender: TObject; Shift: TShiftState;WheelDelta: Integer; MousePos: TPoint; var Han

14、dled: Boolean);beginfrxPreview1.MouseWheelScroll(WheelDelta);end;9. 建立復(fù)合報(bào)表(批量打印)在某些情況下,需要立刻組織幾個(gè)報(bào)表打印,或者在一個(gè)打印預(yù)覽窗體中封裝并呈現(xiàn)幾個(gè)報(bào)表。要執(zhí)行這些,在FastReport中有些工具能夠允許建立一個(gè)新的報(bào)表附加在一個(gè)已經(jīng)存在的報(bào)表上。“TfrxReport.PrepareReport ”方法中有一個(gè)選項(xiàng)“ ClearLasReport ”布爾類型參數(shù),默認(rèn)情況下他等于True,這個(gè)參數(shù)定義了是否有必要在建立報(bào)表時(shí)清除前一個(gè)報(bào)表。下面的方法展示了如何從兩個(gè)報(bào)表中建立一個(gè)批量報(bào)表:Pascal

15、:frxReport1 .L oadFromFile('1.fr3');frxReport1.PrepareReport;frxReport1 .L oadFromFile('2.fr3');frxReportl.PrepareReport(False);frxReportl.ShowPreparedReport;C+:frxReport1->LoadFromFile("1.fr3");frxReport1->PrepareReport(true);frxReport1->LoadFromFile("2.fr3&q

16、uot;);frxReport1->PrepareReport(false);frxReport1->ShowPreparedReport();我們加載并建立第一個(gè)報(bào)表,但并沒(méi)有顯示他。然后我們加載第二個(gè)報(bào)表到同一個(gè)TfrxReport對(duì)象,并使用“ ClearLastReport ”參數(shù),讓他等于False。這就允許第二個(gè)報(bào)表附加在先前建立的報(bào)表之后。接下來(lái),我們?cè)陬A(yù)覽窗口中顯示一個(gè)完成的報(bào)表。9.1復(fù)合報(bào)表中的頁(yè)數(shù)你可以使用“ Page,, “Page#', “TotalPages ”和“ TotalPages# ”系統(tǒng)變量顯示頁(yè)數(shù)或總頁(yè)數(shù), 在復(fù)合報(bào)表中,這些變量以下

17、面的方式工作:Page -當(dāng)前報(bào)表頁(yè)數(shù)Page# -批量報(bào)表頁(yè)數(shù)TotalPages -當(dāng)前報(bào)表總頁(yè)數(shù)(報(bào)表必須兩遍)Totalpages# -批量報(bào)表總頁(yè)數(shù)9.2合并符合報(bào)表頁(yè)數(shù)正如上面所說(shuō)的,報(bào)表設(shè)計(jì)頁(yè)中的“ PrintOnPrevousPage ”方法讓你在打印報(bào)表的時(shí)候使用前一頁(yè) 的剩余空間接合報(bào)表。在復(fù)合報(bào)表中,允許你在前一個(gè)報(bào)表的最后一頁(yè)的剩余空間創(chuàng)建一個(gè)新的報(bào)表。要執(zhí)行這個(gè),要使能每一個(gè)連續(xù)報(bào)表的第一個(gè)設(shè)計(jì)頁(yè)“ PrintOnPreviousePage ”屬性SPAN10.交互報(bào)表在交互報(bào)表中,你可以在預(yù)覽窗口定義任意報(bào)表對(duì)象的鼠標(biāo)單擊反應(yīng)。例如,一個(gè)用戶能夠單擊數(shù)據(jù)線,結(jié)果運(yùn)行

18、一個(gè)帶有選擇線的明細(xì)數(shù)據(jù)。任何報(bào)表都能交互。要執(zhí)行他,你僅僅需要?jiǎng)?chuàng)建TfrxReport.OnClickObject事件句柄。下面代碼是這個(gè)事件句柄的示例:Pascal: procedure TForm1.frxReport1ClickObject(Page: TfrxPage; View: TfrxView;Button: TMouseButton; Shift: TShiftState; var Modified: Boolean);beginif View.Name = 'Memo1' thenShowMessage('Memo1 contents:' +

19、 #13#10 + TfrxMemoView(View).Text);if View.Name = 'Memo2' thenbeginTfrxMemoView(View).Text := lnputBox('Edit', 'Edit Memo2 text:',TfrxMemoView(View).Text);Modified := True;end;end;C+:void _fastcall TForm1:frxReport1ClickObject(TfrxView *Sender,TMouseButton Button, TShiftState

20、 Shift, bool & Modified)TfrxMemoView * Memo;if(Memo = dynamic_cast <TfrxMemoView *> (Sender)if(Memo->Name = "Memol")ShowMessage("Memo1 contents:nr" + Memo->Text);if(Memo->Name = "Memo2")Memo->Text = InputBox("Edit", "Edit Memo2 text:

21、", Memo->Text); Modified = true;在對(duì)象的單擊事件句柄上,你可以做如下事情:-修改一個(gè)對(duì)象或頁(yè)的容,傳遞句柄(結(jié)果,被修改的將被特殊標(biāo)記,因此修改的容應(yīng)該引起重視);在此例中,點(diǎn)擊名字為 memoir象的結(jié)果顯示這個(gè)對(duì)象容的消息。當(dāng)點(diǎn)擊memo2是顯示一個(gè)對(duì)話框,這個(gè)對(duì)象的容可能被修改。設(shè)置 Modified標(biāo)志為True,允許保持和顯示變更同樣的方法,單擊事件可以被定義成不同的響應(yīng)。例如,運(yùn)行一個(gè)新報(bào)表。如下注釋是必要的。在FastReport3 版本中,一個(gè)報(bào)表組件可以在一個(gè)預(yù)覽窗口中顯示唯一的報(bào)表(不像FastReport2.x 版本)。那就

22、是為什么一個(gè)報(bào)表預(yù)覽窗也會(huì)在分開(kāi)的對(duì)象中運(yùn)行一個(gè)報(bào)表,或者是同一個(gè) 對(duì)象,但當(dāng)前報(bào)表必須被抹除。關(guān)于給終端用戶一個(gè)可單擊對(duì)象提示定位,在預(yù)覽窗口中,鼠標(biāo)經(jīng)過(guò)一個(gè)可單擊對(duì)象的時(shí)候,我們可以修改鼠標(biāo)的光標(biāo)。要做到這些,在報(bào)表設(shè)計(jì)器上選擇一個(gè)要設(shè)計(jì)的對(duì)象并設(shè)置他的cursor屬性為不同于 crDefault 的某個(gè)值。更多的細(xì)節(jié)涉及到定義的單擊對(duì)象。在簡(jiǎn)單報(bào)表中,可以依照對(duì)象的名字或他的容來(lái)定義。然而,這就不 能更多的執(zhí)行可修改的事例。例如,一個(gè)明細(xì)報(bào)表應(yīng)當(dāng)在一個(gè)數(shù)據(jù)選擇行被創(chuàng)建。一個(gè)用戶單擊了容為12的memo1M象。數(shù)據(jù)行讓這個(gè)對(duì)象參考什么?那就是為什么你應(yīng)當(dāng)知道 主鍵了,主鍵用于明確的標(biāo)識(shí)這一

23、行。FastReport能夠賦值一個(gè)字串,包含任意數(shù)據(jù)(在我們的事例主鍵數(shù)據(jù)中),對(duì)于每個(gè)報(bào)表對(duì)象,這個(gè)字串存儲(chǔ)在TagStr屬性中。讓我們來(lái)通過(guò)一個(gè)報(bào)表的例子來(lái)舉例說(shuō)明,這個(gè)報(bào)表包含在FastReportDemo.exe-'Simple list'示例中。這是一個(gè)公司的客戶列表,包含諸如客戶名稱,地址,聯(lián)系人等數(shù)據(jù)。數(shù)據(jù)源是來(lái)自DBDEMO演示數(shù)據(jù)庫(kù)的Customer.db表。這個(gè)表有一個(gè)主鍵,CustN0字段,他沒(méi)有出現(xiàn)在報(bào)表中。我們的任務(wù)是終止他通過(guò)參考單擊完成報(bào)表上的任意對(duì)象記錄他,這就意味著要獲取主鍵的值,要執(zhí)行此項(xiàng)操作,就要為所有對(duì)象的TagStr屬性加入值,依賴于

24、主數(shù)據(jù)欄:Customers."CustNo"在報(bào)表建立期間,使用相同的方法計(jì)算 TagStr屬性容,同時(shí)計(jì)算文本對(duì)象的容;這就意味著變量值會(huì)替代 所有變量的位置。變量細(xì)節(jié)使用方括號(hào)括起來(lái)。那就是為什么行值是'1005','2112'等類似值了。在報(bào)表建立后,包含 TagStr屬性對(duì)象的類型取決與主數(shù)據(jù)欄。一個(gè)簡(jiǎn)單的從字串到整形的轉(zhuǎn)換就會(huì)提供給我們一個(gè)主鍵的值,這也是所需記錄能夠找到的主鍵。如果主鍵是復(fù)合的(包含多個(gè)字段),TagStr屬性的容可能是如下值:Table1."Field1"Table1."Field

25、2"在構(gòu)造一個(gè)報(bào)表完成后,TagStr屬性包含“ 1000;1 ”類型值,此值不同比相同要好。11.從代碼中存取報(bào)表對(duì)象報(bào)表對(duì)象(例如:report page, band, memo-object )是不能在你的代碼中直接存取的。這就意味著你不 能通過(guò)名字尋址對(duì)象。例如,當(dāng)你在你的窗體上尋址一個(gè)按鈕。要尋址一個(gè)對(duì)象,在TfrxReport.FindObject方法中找到幫助:Pascal:varMemo1: TfrxMemoView;Memo1 := frxReport1.FindObject('Memo1') as TfrxMemoView;C+:TfrxMemoV

26、iew * Memo =dynamic_cast <TfrxMemoView *> (frxReport1->FindObject("Memo1");然后,你就能夠?qū)ぶ穼?duì)象的屬性和方法。你也使用"TfrxReport.Pages ”屬性尋址報(bào)表頁(yè)。Pascal: varPagel: TfrxReportPage;Pagel := frxReport1.Pages1 as TfrxReportPage;C+:TfrxReportPage * Pagel = dynamic_cast <TfrxReportPage *> (frxRepo

27、rt1->Pages1);12.從代碼中創(chuàng)建報(bào)表作為一項(xiàng)規(guī)則,你將在設(shè)計(jì)器中創(chuàng)建多數(shù)報(bào)表。然而,在某些情況下(例如,當(dāng)報(bào)表窗體未知的時(shí)候),使用代碼手工創(chuàng)建一個(gè)報(bào)表是是十分必要的。想要手工創(chuàng)建一個(gè)報(bào)表,你需要執(zhí)行下面的順序步驟:-清除報(bào)表組件-添加數(shù)據(jù)源-添加數(shù)據(jù)頁(yè)-添加報(bào)表頁(yè)-添加欄頁(yè)-設(shè)置欄屬性,接著把他們同數(shù)據(jù)相連-在每個(gè)欄上加入對(duì)象-設(shè)置對(duì)象屬性,接著把他們同數(shù)據(jù)相連讓我們來(lái)檢查一下創(chuàng)建一個(gè)簡(jiǎn)單報(bào)表的類型列表。假設(shè)我們擁有如下組件:frxReport1: TfrxReport andfrxDBDataSet1: TfrxDBDataSet(最后一個(gè)連接至 U DBDEMO數(shù) 據(jù),

28、Customer.db表)。我們的報(bào)表將包含一個(gè)帶有報(bào)表標(biāo)題和主數(shù)據(jù)欄的頁(yè)。在報(bào)表標(biāo)題欄上有一個(gè)帶有“Hellow FastReport ”文本的對(duì)象,主數(shù)據(jù)欄包含一個(gè)帶有連接到“CustNo"字段的對(duì)象。Pascal:varDataPage: TfrxDataPage;Page: TfrxReportPage;Band: TfrxBand;DataBand: TfrxMasterData;Memo: TfrxMemoView;清除報(bào)表frxReportl.Clear;為報(bào)表添加數(shù)據(jù)集到可存取的列表中添加"Data"頁(yè)DataPage := TfrxDataPag

29、e.Create(frxReport1);添加頁(yè)P(yáng)age := TfrxReportPage.Create(frxReport1);創(chuàng)建唯一名稱Page.CreateUniqueName;設(shè)置默認(rèn)字段大小,紙和打印方向Page.SetDefaults;修改紙方向Page.Orientation := poLandscape;添加一個(gè)報(bào)表標(biāo)題欄Band := TfrxReportTitle.Create(Page);Band.CreateUniqueName; it is sufficient to set the ?Top? coordinate and height for a band b

30、oth coordinates are in pixels Band.Top := 0;Band.Height := 20;為標(biāo)題欄添加一個(gè)對(duì)象Memo := TfrxMemoView.Create(Band);Memo.CreateUniqueName;Memo.Text := 'Hello FastReport!'Memo.Height := 20;這個(gè)對(duì)象將伸展坐標(biāo)到欄的寬度Memo.Align := baWidth;添加主數(shù)據(jù)欄DataBand := TfrxMasterData.Create(Page);DataBand.CreateUniqueName;DataBa

31、nd.DataSet := frxDBDataSet1;頂端的調(diào)整應(yīng)當(dāng)比先前加入欄的頂部+高度大一些DataBand.Top := 100;DataBand.Height := 20;在主數(shù)據(jù)欄上添加一個(gè)對(duì)象Memo := TfrxMemoView.Create(DataBand);Memo.CreateUniqueName;連接數(shù)據(jù)Memo.DataSet := frxDBDataSet1;Memo.DataField := 'CustNo:Memo.SetBounds(0, 0, 100, 20);調(diào)整文本到右側(cè)的對(duì)象邊緣Memo.HAlign := haRight;顯示報(bào)表frx

32、Report1.ShowReport;C+:TfrxDataPage * DataPage;TfrxReportPage * Page;TfrxBand * Band;TfrxMasterData * DataBand;TfrxMemoView * Memo;/清除報(bào)表 frxReport1->Clear();/在報(bào)表上添加一個(gè)數(shù)據(jù)集到數(shù)據(jù)集存取列表frxReport1->DataSets->Add(frxDBDataset1);/添加“數(shù)據(jù)”頁(yè)DataPage = new TfrxDataPage(frxReportl);/添加一頁(yè)P(yáng)age = new TfrxReport

33、Page(frxReport1);/創(chuàng)建一個(gè)不重復(fù)的名稱Page->CreateUniqueName();/設(shè)置域大小,紙和默認(rèn)的打印方向Page->SetDefaults();/修改紙的打印方向Page->Orientation = poLandscape;/增加一個(gè)報(bào)表標(biāo)題欄Band = new TfrxReportTitle(Page);Band->CreateUniqueName();/為欄充分設(shè)置頂部坐標(biāo)和高度/在像素上包含坐標(biāo)Band->Top = 0;Band->Height = 20;/在報(bào)表標(biāo)題欄加入一個(gè)對(duì)象Memo = new TfrxM

34、emoView(Band);Memo->CreateUniqueName();Memo->Text = "Hello FastReport!"Memo->Height = 20;/此對(duì)象將會(huì)被按照欄的寬度延展Memo->Align = baWidth;/添加主數(shù)據(jù)欄DataBand = new TfrxMasterData(Page);DataBand->CreateUniqueName();DataBand->DataSet = frxDBDataset1;/頂部坐標(biāo)應(yīng)該大于前邊添加欄的頂部坐標(biāo)+高度DataBand->Top =

35、 100;DataBand->Height = 20;/主數(shù)據(jù)上加入一個(gè)對(duì)象Memo = new TfrxMemoView(DataBand);Memo->CreateUniqueName();/連接到數(shù)據(jù)Memo->DataSet = frxDBDataset1;Memo->DataField = "CustNo"Memo->SetBounds(0, 0, 100, 20);/調(diào)整文本到右側(cè)對(duì)象的空白Memo->HAIign = haRight;/ 顯示報(bào)表frxReport1->ShowReport(true);讓我們來(lái)解釋一些細(xì)節(jié):所有在報(bào)表中使用的數(shù)據(jù)集都必須添加到數(shù)據(jù)源列表中,在我們示例中,是用 這一行執(zhí)行的。否則,報(bào)表就不會(huì)工作。數(shù)據(jù)頁(yè)對(duì)于插入部數(shù)據(jù)集是必要的,例如TfrxADOTable。這些數(shù)據(jù)集只能放在數(shù)據(jù)頁(yè)。調(diào)用Page.SetDefaults 不是必須的,因?yàn)樵谶@個(gè)案例中頁(yè) A4紙?jiān)O(shè)置和頁(yè)邊距都是 0毫米。默認(rèn)值 設(shè)置10毫米頁(yè)邊距,并捕獲打印機(jī)頁(yè)大小和對(duì)齊方式。在增加欄到頁(yè)面的同時(shí),你要確認(rèn)他們沒(méi)有互相重疊在一起。要執(zhí)行他,頂部和高度的坐標(biāo)是相似的。總是要在設(shè)計(jì)器中定位相同的位置的。對(duì)象的坐標(biāo)和大小是以像素為單位的,因?yàn)樗袑?duì)象的left. T

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論