原創(chuàng)|其它|編輯:郝浩|2012-08-31 15:39:49.000|閱讀 598 次
概述:學習報表設計前應當首先弄清楚VBMS系統(tǒng)與FastReport報表設計之間的關系。報表設計的目的是將VBMS數(shù)據(jù)庫(Firebird1.5)中的數(shù)據(jù)按照需要的視圖方式顯示、統(tǒng)計出來,并且可以打印、導出。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
在VBMS中使用FastReport設計報表應該掌握以下知識:
1、 熟悉SQL語言,為設計報表準備數(shù)據(jù)源。
2、 掌握VBMS的數(shù)據(jù)結構,可參考相關資料。
3、 掌握FastReport報表的設計使用方法。
體系結構
學習報表設計前應當首先弄清楚VBMS系統(tǒng)與FastReport報表設計之間的關系。報表設計的目的是將VBMS數(shù)據(jù)庫(Firebird1.5)中的數(shù)據(jù)按照需要的視圖方式顯示、統(tǒng)計出來,并且可以打印、導出。
VBMS數(shù)據(jù)庫與VBMS管理系統(tǒng)以及FastReport報表設計之間的關系是:
Firebird數(shù)據(jù)庫系統(tǒng)是報表的數(shù)據(jù)源,它存儲著客戶的業(yè)務數(shù)據(jù)。但該數(shù)據(jù)的存儲方式并不一定是客戶希望直接看到的。
VBMS管理系統(tǒng)是中間層,它負責連接Firebird數(shù)據(jù)庫和FastReport報表系統(tǒng),將數(shù)據(jù)庫信息(例如數(shù)據(jù)庫的位置)傳入到報表系統(tǒng)中供設計報表時使用。
FastReport報表系統(tǒng)是報表設計的主體,它負責接收或創(chuàng)建數(shù)據(jù)源,通過設計報表完成需要的功能。因此在VBMS管理系統(tǒng)的打印模塊中存在兩種數(shù)據(jù)源:一種是VBMS系統(tǒng)數(shù)據(jù)源,即在各模塊中將設計好的數(shù)據(jù)源傳入到打印模塊中。優(yōu)點是無須用戶干預使用方便,缺點是不夠靈活,更改數(shù)據(jù)源需要升級程序。例如各類單據(jù)的打印報表采用的就是系統(tǒng)數(shù)據(jù)源。另一種是自行設計數(shù)據(jù)源,功能強大但對用戶的要求較高。例如報表中心中的各類報表。
設計步驟
完成一張報表的設計主要包括以下幾個步驟:
1、確定報表的需求,查閱VBMS關于數(shù)據(jù)庫結構的文檔,確認該需求的所有內(nèi)容在VBMS中均有數(shù)據(jù)字段記錄(即VBMS必須記錄了相關數(shù)據(jù),否則報表設計無從談起)。
2、根據(jù)報表的需求,確定報表應該顯示的模式。例如:是簡單報表、主從報表或是分組報表等等。因為這涉及的自定義數(shù)據(jù)源時SQL語言的構成方式。
3、利用數(shù)據(jù)庫工具(例如:IBExpert),使用SQL語言嘗試獲取報表希望的數(shù)據(jù)集。這里有可能不能通過SQL語言一步到位獲取到希望的結果,但你仍可能通過FastReport報表系統(tǒng)對數(shù)據(jù)集進行二次加工。
4、在FastReport報表中自定義數(shù)據(jù)源(通過上步獲取的SQL語句),利用報表系統(tǒng)中提供的各種控件構造出希望的報表格式。
5、 對于設計好的報表進行測試。
基本概念及操作
基本概念
最主要的概念是FastReport報表的組成方式和控件主要用途,它一般包括以下方面:
*頁面(Page) --- 默認為Page1
與我們現(xiàn)實中使用的紙張相似。但它不僅僅指的是一張紙,而是用于我們設計報表的容器。打印出來可以是一張紙也可以是多張。頁面(Page)可以有多個(你可以新增頁面New Page),即可以有多個報表容器。利用這一點,你可以設計出復合報表(Composite Report)。
利用頁面設置可以定義大小、方向、邊界、打印方式、分欄等參數(shù)。這里不再詳述,只特別強調(diào)分欄的作用。你可以將頁面分成多欄,這樣打印時數(shù)據(jù)將按照從上到下,再從左往右的方式顯示。這就是我們通常說的分欄報表(Splite Report)。
*區(qū)域(Band)
FastReport將整個頁面劃分成若干個區(qū)域。而每個區(qū)域有著各自不同的功能,這些功能由FastReport自動加載。一個頁面中可以沒有區(qū)域,也可以只有其中的某些區(qū)域,這根據(jù)報表的需求而定。放置在頁面中的區(qū)域有范圍,落入?yún)^(qū)域范圍內(nèi)的控件(例如:TextObject)才具有區(qū)域的功能。
重要的區(qū)域包括:
#報表抬頭(ReportTitle)
僅在第一頁顯示在紙張的上部。一般用于打印報表的標題等信息。
#報表合計(ReprotSummary)
僅顯示在所有數(shù)據(jù)的最后末尾。一般用于打印統(tǒng)計信息等。
#頁首(PageHeader)
顯示在每頁的最上部。通過設置你可以讓它置于報表抬頭之上或者之下。一般用于打印頁眉信息等。
#頁腳(PageFooter)
顯示在每頁的最底部。一般用于打印頁序等信息。
#主數(shù)據(jù)(MasterData)
用于顯示數(shù)據(jù)源的數(shù)據(jù),是最重要的區(qū)域。在該區(qū)域中可以定義連接哪一個數(shù)據(jù)源,那么該數(shù)據(jù)源的數(shù)據(jù)將會按順序依次將記錄打印出。
數(shù)據(jù)區(qū)域還有明細數(shù)據(jù)(DetailData)等,一共支持6階數(shù)據(jù)。利用明細數(shù)據(jù)可以設計出主從報表、主-細-子細報表等。例如:各類單據(jù)的打印報表就是由單據(jù)頭(主數(shù)據(jù))和單據(jù)體(明細數(shù)據(jù))共同完成的。
在打印時,明細一級的數(shù)據(jù)是受上一級主數(shù)據(jù)的控制,因此需要進行相關設置。
#頭(Header)
顯示在所有數(shù)據(jù)源的最上部,僅打印一次。一般用于顯示相關摘要信息。
#尾(Footer)
顯示在所有數(shù)據(jù)源的最下部,僅打印一次。一般用于顯示所有數(shù)據(jù)的合計信息。
#欄首(ColumnHeader)
顯示在每頁數(shù)據(jù)源的上部,它在每頁均顯示。因此一般用于打印數(shù)據(jù)源字段的欄目信息。
#欄尾(ColumnHeader)
顯示在每頁數(shù)據(jù)源的下部,它在每頁均顯示。一般可用于統(tǒng)計顯示每頁數(shù)據(jù)的頁合計信息。
#群組首(GroupHeader)
用于顯示分組數(shù)據(jù),在每一個分組開始顯示。一般可用于顯示分組索引數(shù)據(jù)。例如:將商品檔案按商品分類分組顯示,在群組首你可以顯示商品分類名稱。利用群組首可以設計出分組報表,關鍵是數(shù)據(jù)源必須按分組索引的字段排序才能達到分組的效果。群組首可以有多個,即可以嵌套使用。
另外,可以設置讓分組索引數(shù)據(jù)在報表預覽時顯示在左側(cè)的樹型列表框(OutLine)中。
#群組尾(GroupFooter)
與群組首一一對應。一般用于顯示分組數(shù)據(jù)的統(tǒng)計信息。
#子(Child)
是一個獨立的區(qū)域。你可以設置子區(qū)域隸屬于上述區(qū)域中的任何一個。在打印時,打印完父區(qū)域后,子區(qū)域?qū)S打印。一般可用于打印裝飾線、調(diào)整高度或者打印子報表(SubReport)。
#重疊(overlay)
該區(qū)域內(nèi)包含的內(nèi)容將從頁的開始位置計算打印,而不受其他功能區(qū)域的影響。一般用于無法在其他功能區(qū)域打印的內(nèi)容的顯示。
*對話框(DialogPage)
你可以通過設計對話框完成對數(shù)據(jù)源進行動態(tài)控制的目的,這也是設計復雜報表的重要手段。
對話框主要通過各種輸入數(shù)據(jù)控件來接受客戶的查詢請求,因此可以學習幾種主要的控件。
#標簽(Label Control) --- 用于顯示文字信息。使用Caption屬性修改文字信息。
#文本編輯框(Edit Control) --- 用于接收用戶錄入的文字信息。使用Text屬性修改文字信息。
#按鈕(Button Control) --- 一般用于確定和取消。使用Caption屬性修改文字信息。
#多選框(CheckBox Control) --- 用于用戶對條件的選擇。使用Checked屬性確定是否。
#單選框(RadioButton Control) --- 用于用戶對條件的單一選擇。使用Checked屬性確定是否。
#下拉框(ComboBox Control) --- 用于用戶對多個數(shù)據(jù)列表的選擇。使用Text屬性修改當前文字信息,使用Items屬性填充列表信息。
#時間框(DateEdit Control) --- 用于用戶對時間的選擇。利用Date屬性改變時間。
*文本對象(Text Object)
這是FastReport報表中使用最頻繁的控件。可用它完成如下主要功能:
1. 顯示一般文字信息 --- 直接錄入即可。
2. 顯示數(shù)據(jù)字段信息 --- 一般格式:[數(shù)據(jù)源."字段名稱"]。
3. 顯示變量內(nèi)容 --- 一般格式:[<變量名>]。
4. 顯示裝飾線等。
文本對象可以進行文字對齊、格式轉(zhuǎn)化、文本著色、字體改變、畫邊框線等許多功能,這與MicrosoftWord中的操作有諸多相同特征。因此這里不再一一贅述。
《在文本對象中引用數(shù)據(jù)字段或者變量需要用中括號包含,而且引用變量名時還需要用尖括號包含,這樣系統(tǒng)就知道這是一個變量名稱而不是其他什么。》
*子報表(Subreport Object)
放置子報表后,系統(tǒng)會自動增加一個頁面,你可以在此頁面上設計需要的報表。系統(tǒng)在打印處理時,先按主報表打印,當碰到子報表時會自動轉(zhuǎn)入子報表的頁面進行打印處理,完成后繼續(xù)執(zhí)行主報表打印的工作,所以我們又稱之為嵌套報表。
設計子報表與主報表基本上相同,唯一的區(qū)別是有些功能區(qū)域不能在子報表中實現(xiàn),例如:報表抬頭、群組。
*交叉報表(DB cross-tab)
又稱動態(tài)報表,即可以實現(xiàn)橫向和縱向都不能確定時的報表。該報表的實現(xiàn)需要數(shù)據(jù)源按一定規(guī)格組織數(shù)據(jù)方能實現(xiàn)。
*數(shù)據(jù)感知控件(FIB Query)
利用該控件進行數(shù)據(jù)源的設計,可以完成設計SQL語句、測試結果、字段別名等工作。
《在FIBQuery控件的SQL屬性對話框中有一個QueryBuilder工具。利用該工具你可以查看到目前數(shù)據(jù)庫中所有的數(shù)據(jù)表以及數(shù)據(jù)字段信息。并且可以在工具中利用向?qū)Чδ?Model)可以更好的完成SQL語句的編制工作,并可以測試結果(Result)。不過這里列出的僅是數(shù)據(jù)表(Table),還有視圖(View)沒有列出。如果需要使用視圖或存儲過程(Procedure)可以查閱相關資料,F(xiàn)IBQuery同樣支持視圖和過程。
在FieldAlias屬性中,你還可以將所有數(shù)據(jù)字段名稱修改成中文名稱。
在Master屬性中,你可以定義本數(shù)據(jù)源隸屬于另外哪一個數(shù)據(jù)源(即受哪一個數(shù)據(jù)源控制)。
如果你在數(shù)據(jù)源的SQL語句中定義了變量,那么在Params屬性中,你可以設置這些變量的類型和值。》
FastReport報表系統(tǒng)中還包含了一些其他控件,這些控件大部分是用于裝飾報表的,比較容易理解,使用起來也比較簡單,這里也不再說明了。
基本操作
FastReport中的操作與MicrosoftWord中的操作非常相似,不再詳述。下面僅對一些常用功能及操作技巧進行提示。
*熱鍵
Arrow --- 在Object之間移動
Del --- 刪除一個Object
Enter --- 調(diào)出選擇的Object的編輯器
Shift+Arrow --- 改變Object的尺寸大小
Ctrl+Arrow --- 移動Object的位置
Alt+Arrow --- 移動選擇的Object到相鄰的Object的旁邊并且對齊
*鼠標
Left button --- 選擇、移動一個Object,對于多選的一組Object,可以拖動右下角的紅點同時改變所選的Object的尺寸大小
Right button --- 調(diào)出右鍵菜單
Shift+left button --- 多選Object
Ctrl+left button --- 按住Ctrl鍵不放用鼠標左鍵可以拖出一個虛線矩形框,釋放鼠標按鈕可以將該矩形框內(nèi)所有Object選中,然后使用left button將選中的Object移動到所需位置
Alt+left button --- 如果針對Text Object使用,將可以直接編輯內(nèi)容,無需彈出編輯窗
汽車業(yè)務管理系統(tǒng)(VBMS)使用FastReport設計報表(二)
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務必注明出處、不得修改原文相關鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:網(wǎng)絡轉(zhuǎn)載